Path to this page:
Subject: CVS commit: pkgsrc/devel/guile-www
From: Greg Troxel
Date: 2012-11-07 01:50:06
Message id: 20121107005006.797B4175DD@cvs.netbsd.org
Log Message:
Update to 2.35.
- 2.35 | 2012-11-06
- support for "make installcheck"
This does "make check" at its core, so the same env vars apply.
Obviously, you should do "make install" first for sane results.
- âreceive-responseâ spec takes thunk for âcustomâ handling
This means that instead of using:
(list 'custom (values P1 P2 P3 P4))
to construct a âreceive-responseâ spec, you can use:
(list 'custom (lambda () (values P1 P2 P3 P4)))
In fact, this is now the preferred way, as support for using
âvaluesâ directly is now deemed a misfeature and marked for
eventual removal (see below).
- tested against Guile 2.0.6
There are some deprecation warnings, however.
- MARKED FOR REMOVAL
- 2013-05-15 support for values in âreceive-responseâ spec
Out of an explicit âcall-with-valuesâ context, Guile 2.x will
silently discard all values but the first if the continuation
expects one value only (the common case).
(cons 0 (values 1 2)) => (0 . 1)
Thus, the âreceive-responseâ spec constructed by:
(list 'custom (values P1 P2 P3 P4))
fails to preserve P2, P3, P4 (w/ Guile 2.x). See above for
thunk support, the future-proof way to specify âcustomâ procs.
- bootstrap tools upgrade
- GNU Autoconf 2.69
- GNU Automake 1.12.4
- Guile-BAUX 20121026.1208.c21074a
- 2.34 | 2012-03-29
- bug fix: unbotch âupath->filename-procâ
- bug fix: unbotch âlog-http-response-procâ
In Guile-WWW 2.33 (2012-02-29), these procs were changed to use
(ice-9 optargs), but the change was botched.
- bug fix: â(www http) http:post-formâ reserves â#\&â \
and â#\=â
That is, in the absense of upload specs, the urlencoding for the
key names and values now also includes ampersand and equal sign,
as those used to delimit pairs and separate key and value within
a pair, respectively.
- bug fix: âurl-coding:encodeâ outputs two hex digits for 0-15
Previously, octets 0 through 15 were output as "%0" through
"%f", respectively. Now, they are "%00" through \
"%0f".
- portability fix: big dishing loop handles #f âsockaddr:pathâ
For Unix domain sockets, some Guile versions have âsockaddr:pathâ
sometimes return the empty string, others â#fâ.
- â(www url) url:parseâ can handle IPv6 addresses
Handling doesn't imply validation, however. For example:
(url:host (url:parse "http://fool@[::ffff:bogus.0.2.1]:42/foo"))
=> "[::ffff:bogus.0.2.1]"
- â(... answer) hqf<-upathâ more efficient
The char-set computation has been moved to load-time.
- â(... cookies) simple-parse-cookiesâ takes optional arg SEP
By default, tokens are â#\,â (comma)-separated. You can use SEP
to specify another character, e.g., â#\;â (semicolon).
- new â(www cgi) cgi:initâ option: cookies-split-on-semicolon
If the server provides the CGI script with a "Netscape style"
(i.e., old and deprecated) set of cookies, you can use this
option to split them.
- â(www cgi) cgi:getenvâ recognizes some more "idiomatic" names
The following keys now are recognized by âcgi:getenvâ (that is,
they no longer signal "unrecognized key" error): âserver-nameâ,
âserver-softwareâ, âserver-protocolâ, \
âauth-typeâ, âhttp-acceptâ.
Also, the manual now marks those keys that either are aliases,
or return parts of the associated value, of these idiomatic names.
- new (... parse-request) proc: receive-request
This uses the same underlying machinery as âreceive-responseâ
from (www http), and thus sports the same features.
Additionally, there is a new ârequestâ type with five accessor
procs: request-{method,upath,protocol-version,headers,body} and
the new predicate ârequest?â.
- new (... log) proc: string<-sockaddr
This formats AF_UNIX or AF_INET addresses (including port).
- new (... answer) proc: compose-response
This is a stripped down variant of âmouthpieceâ. It uses the
same underlying machinery as âsend-requestâ from (www http) and
thus sports the same features.
- MARKED FOR REMOVAL
- 2012-12-31 module (www main)
- 2012-12-31 (www url) procs
- url:address
- url:unknown
- 2013-02-28 (... parse-request) procs
- read-first-line
- read-headers
- skip-headers
- read-body
- 2013-02-28 (www http) procs
- http:head
- http:get
- test suite expanded
Previously, there was just one test. Now, there are several,
and they are in directory v/ (for "validation", "verification",
"vouchsafed", and so on).
- doc license upgraded to GNU FDL 1.3
- maintenance uses Guile-BAUX 20120309.1509.1c4bb92
- 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
wish.
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
fluid, entirely.
- (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
Files: