[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Guile-WWW 2.33 available
Guile-WWW 2.33 available
Wed, 29 Feb 2012 15:19:25 +0100
Big news is HTTP 1.1 cozying. Better late than never.
Focus is client-side at the moment; future releases will
turn to server utils.
Please also see the new "patronage" link, below.
This is the Guile WWW library, a set of Guile Scheme
modules to facilitate HTTP, URL and CGI programming.
- 2.33 | 2012-02-29
- distribution now .tar.xz
If you have GNU tar, you can use "tar xf" and it will DTRT.
If not, you can use "xz -dc TARBALL | tar xf -" to unpack.
- configure no longer checks for some widely-available modules
The modules ‘(ice-9 and-let-star)’, ‘(ice-9 rdelim)’ and
‘(ice-9 regex)’ have been widely-available since Guile 1.4.x.
- configure uses SNUGGLE for cross-Guile portability
SNUGGLE is Free Software: <http://www.gnuvola.org/software/>.
It provides ‘build-aux/snuggle.m4’, which is more amicable than
the various ‘guile.m4’ in the wild.
- dropped ‘(www server-utils answer) string<-header-components’
This was pre-announced below in Guile-WWW 2.28 (2010-06-22).
- changes to (www http)
- bug fix: ‘http:request’ sends message body as-is
This procedure used to erroneously send ‘CRLF’ after each string
specified in BODY. Now, it sends BODY only.
- ‘http:status-ok?’ also accepts numeric arg
E.g., ‘(http:status-ok? 200)’ and ‘(http:status-ok? "200")’
both return ‘#t’.
- ‘http:request’ also accepts a symbolic method
Of course, a string is still acceptable. Additionally, it is
now an error if ‘method’ is neither string nor symbol.
- new procs: ‘send-request’, ‘receive-response’
These give (www http) a more asynchronous feel; it is now
possible to implement pipelining, connection re-use, etc.
Support for "chunked" transfer encoding and other HTTP 1.1 bits
is built-in, although you can explicitly downgrade to 1.0 if you
Other features: (optional) caller-directed i/o to reduce data
motion; support for ‘u8vector’ body (see example in the docs);
support for custom body type; caller-specifiable header-name
normalization; procedure names w/o "http:" prefix :-D.
- message field types now documented
The message object returned by ‘receive-response’ has a numeric
status-code and header names normalized by the caller.
In contrast, for backward compatability, the message object
returned by ‘http:request’ has a string status-code and
lower-case header names.
(Header names are symbolic in any case.)
- new fluid: protocol-version
This affects how ‘http:request’ calls ‘send-request’ internally.
It also impacts ‘http:get’, ‘http:head’, and ‘http:post-form’,
which call ‘http:request’.
The default value is ‘(1 . 0)’, i.e., HTTP 1.0. The idea is to
support backward compatability out of the box, but allow users
to experimentally do:
(set-fluid! protocol-version '(1 . 1))
without having to modify their current code. (New code
should use ‘send-request’ and ‘receive-response’ directly.)
This is a transitional feature of Guile-WWW 2.x; 3.x will
drop ‘http:request’ (et al) along with the need for this
- (www cgi) recognizes ‘application/x-www-form-urlencoded’ better
Before, Content-Type recognition was over-constrained, failing
to handle parameters (usually of the form "; charset=...").
Things are now more relaxed.
- documentation now explicitly UTF-8
This has no immediate impact, but if you regenerate the .info,
it may be possible that the makeinfo you use will generate nicer
quotes, e.g., ‘foo’ instead of `foo'. Time will tell.
- maintenance: Autoconf 2.68, Automake 1.11.3, Guile-BAUX 20111227
- Guile-WWW 2.33 available,
Thien-Thi Nguyen <=