This repository has been archived by the owner on Oct 6, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNEWS
541 lines (389 loc) · 18.2 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
NEWS for Guile-WWW
See the end for copying conditions.
- 2.36 | 2012-11-22
- portability fixes
- import some procs explicitly (Guile 1.4.x)
Guile 1.4.x does not implicitly provide, e.g., SRFI 13.
- use appropriate u8 i/o procs
The "compiler" (har har) build-aux/guile-baux/mm, in cahoots w/
the configure script, now tries to DTRT for various versions of
Guile. Precisely:
1.4.x -- custom procs based on ‘read-char’ / ‘display’
1.8 -- uniform-vector-{read!,write} (the "normal" case)
2.x -- custom procs based on those in ‘(ice-9 binary-ports)’
With this change, "make check" under Guile 2.0.6 no longer
displays any deprecation warnings. Any that you might encounter
(for any Guile) is now considered a bug; please report it.
- avoid ‘\n’ in sed ‘s’ RHS (FreeBSD)
This was a problem in the "make check" prep (test harness).
- less "values outside ‘call-with-values’ context"
Another case was found, but this was internal. Perhaps others
lurk -- why doesn't Someone just do a formal audit already?!
- bootstrap tools upgrade
- GNU Automake 1.12.5
- Guile-BAUX 20121120.1242.e233fad
- 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
- 2.32 | 2011-07-08
- bugfix: make (www cgi) work (again) with GET request method
- 2.31 | 2011-05-29
- bugfix: "make uninstall" now does a complete job
- improvements to "make check"
- do in-tree partial install; use that for ‘%load-path’
- bugfix: re-order ‘%load-extensions’ to prioritize "" over ".scm"
- examples/wily-guile also uses in-tree partial install
- 2.30 | 2011-02-12
- portability fix for Guile 1.9.14 (among others, probably)
- 2.29 | 2011-01-24
- portability fix: don't assume ‘(set! (P OBJ) V)’ returns ‘V’
- allow ‘big-dishing-loop’ to set ‘modlisp-ish’ reply style
- drop "experimental" from modlisp documentation
- add "make check" support
- use Guile-BAUX for doc maintenance, module munging
- 2.28 | 2010-06-22
- new home page: http://www.nongnu.org/guile-www/
- doc fix: variables now included in index (e.g., ‘CRLF’)
- new EXPERIMENTAL modlisp support
- ‘make-big-dishing-loop’ takes keyword arg #:style
- ‘mouthpiece’ takes optional arg ‘style’
- new module: (www server-utils modlisp)
- new (www server-utils answer) procs
- flat-length
- tree-flat-length!
- string<-tree
- string<-headers
- MARKED FOR REMOVAL 2011-12-31
- proc ‘(www server-utils answer) string<-header-components’
- 2.27 | 2010-02-02
- improve portability: don't use `return-it'
- dropped (see entries for NEWS 2.24, 2.23)
- module: (www data content-type)
- (www data http-status) data structure: *http-status*-META
- (www data http-status) data structure: *http-status*
- `make-big-dishing-loop' keyword arg: #:GET-upath
- maintenance uses GNU Autoconf 2.65
- 2.26 | 2009-06-29
- bugfixes to (www server-utils filesystem) procs
- access-forbidden?-proc: allow "filename is "docroot" for
- cleanup-filename: handle edge cases more consistently
- configure option dropped: --disable-shsub
- 2.25 | 2009-05-28
- changes to (www cgi)
- bugfix: parse cookies using comma as inter-cookie delim
- bugfix: query-string no longer masks form-data
- new proc: cgi:cookie-names
- new support for ‘uploads-lazy’ (file contents management) style
- new module: (www server-utils form-2-form)
- new (www server-utils cookies) proc: simple-parse-cookies
- new (www server-utils parse-request) procs
- hqf<-upath
- alist<-query
- read-body
- documentation spiffed
- distribution includes guile-www.pdf
- maintenance uses GNU Autoconf 2.63, GNU Automake 1.11
- 2.24 | 2009-01-27
- new module: (www data mime-types)
- new (www data http-status) proc: http-status-string
- new entries for alist ‘*content-type-by-filename-extension*’
- svg => image/svg+xml
- css => text/css
- MARKED FOR REMOVAL 2009-12-31
- module (www data content-type)
- data structures in module (www data http-status)
- *http-status*
- *http-status*-META
- 2.23 | 2008-05-28
- in (www data content-type), ‘xml’ maps to "application/xml"
- changes to (www server-utils big-dishing-loop)
- MARKED FOR REMOVAL 2009-12-31: make-big-dishing-loop #:GET-upath
- ‘make-big-dishing-loop’ options @findex'd in manual
- new ‘make-big-dishing-loop’ option: #:method-handlers
- new proc: named-socket
- changes to (www server-utils answer)
- ‘mouthpiece’ commands @findex'd in manual
- new ‘mouthpiece’ command: #:inhibit-content!
- new (www http) proc: http:connect
- 2.22 | 2008-04-20
- bug-report address updated (see output of ./configure --help)
- mouthpiece #:send-reply now also takes ‘shutdown’ "how arg" CLOSE
- maintenance uses GNU Autoconf 2.62, GNU Automake 1.10.1
- public repo: http://www.gnuovla.org/wip/ (guile-www)
- 2.21 | 2007-10-04
- license now GPLv3+ (see COPYING)
- bugfix: mouthpiece #:set-reply-status:success updates status box
- maintenance uses GNU Autoconf 2.61
- 2.20 | 2007-05-16
- bugfix for examples/wily-guile: add correct dir to %load-path
- (www cgi) proc deleted: cgi:make-cookie (notice given in version 2.14)
- distribution includes docs in HTML
- 2.19 | 2007-05-14
- pre-install felicity
- modules "compiled" (har har) at "make" time
- new convenience wrapper program: examples/wily-guile
- 2.18 | 2007-02-16
- new ‘(www server-utils answer) mouthpiece’ command: #:add-direct-writer
- new module: (www utcsec)
- 2.17 | 2007-02-01
- log-http-response-proc sets output port to be line-buffered
- new proc in (www server-utils big-dishing-loop): echo-upath
- changes to make-big-dishing-loop
- bugfix: #:socket-setup works (crippling typo corrected)
- for #:concurrency #f, no longer close port when done
- for #:concurrency non-#f, "parent" calls #:parent-finish proc
- unless #:need-input-port, "child" does ‘shutdown 2’ on the socket
- maintenance uses Autoconf 2.60
- 2.16 | 2006-07-14
- make-big-dishing-loop accepts keyword arg #:concurrency
- 2.15 | 2006-04-26
- bugfix: don't include Host twice (http:head, http:get, http:post-form)
- maintenance uses Automake 1.9.6 and Texinfo 4.8
- 2.14 | 2006-02-19
- (www cgi) now handles unset HTTP_ACCEPT
- additions to module (www server-utils answer)
- string: CRLF
- procedure: fs
- procedure: walk-tree
- procedure: string<-header-components
- ‘mouthpiece’ #:add-header now also takes boolean NAME
- new module: (www server-utils cookies)
- 2.13 | 2005-08-17
- for speed, use ‘read-string!/partial’ in (www cgi) and (www http)
- 2.12 | 2005-06-09
- new proc in (www cgi): cgi:nv-pairs
- contrib/*-check files mentioned in ChangeLog
- 2.11 | 2005-05-09
- big-dishing-loop macros moved to (module) top-level
- FSF street address updated in copyright notices
- 2.10 | 2005-04-17
- changes to (www cgi)
- cgi:values now maintains same order as in submitted form
- cgi:init now resets all internal state (suitable for fastcgi)
- new configure option: --disable-shsub
- new module: (www server-utils cgi-prep)
- 2.9 | 2005-01-25
- www:http-head-get can discard all but the alist portion of the msg obj
- 2.8 | 2004-11-20
- new proc in (www main): www:http-head-get
- 2.7 | 2004-10-21
- new proc in (www http): http:head
- 2.6 | 2004-07-15
- cgi:make-cookie now accepts keywords for ‘name’ and ‘value’ args
- bugfix: http:request handles missing response status-line TEXT as ""
- 2.5 | 2004-03-11
- new proc in (www server-utils parse-request): skip-headers
- new ‘(www server-utils answer) mouthpiece’ command: #:add-formatted
- new module: (www server-utils big-dishing-loop)
- 2.4 | 2004-03-01
- changes to (www server-utils answer) proc ‘mouthpiece’
- bugfix in #:rechunk-content (fencepost error)
- #:send-reply sets 2nd position in status-box to content-length
- new module: (www server-utils log)
- 2.3 | 2004-02-29
- new module: (www server-utils parse-request)
- new module: (www server-utils filesystem)
- new module: (www server-utils answer)
- new module: (www data http-status)
- new module: (www data content-type)
- 2.2 | 2004-01-24
- bug fix: ‘cgi:uploads’ now handles "multipart/mixed" content properly
- bug fix: ‘cgi:uploads’ now deletes cell as documented
- doc fix: ‘cgi:getenv’ w/ key ‘http-accept-types’ => list of strings
- new feature: proc ‘http:post-form’ now also handles "file uploads"
- installation change: .scm files are punified (whitespace/comments removed)
- 2.1 | 2004-01-15
- doc fix: ‘cgi:getenv’ doc was missing
- new module: (www url-coding)
- proc ‘cgi:init’ performance improvement (env var lazy init)
- 2.0 | 2004-01-13
- incompatible API changes
- cgi:make-cookie no longer accepts #&-style keywords (#:-style ok)
- non-procedures no longer exported
- for cgi-FOO (22 vars), read access now through proc ‘cgi:getenv’
- no longer provided: http:version, http:user-agent
- installation dir change
- configure script determines $(GUILE_SITE)
- modules installed as $(GUILE_SITE)/www/*.scm
- module catalog updated on "make install" (if supported by system)
- doc methodology/content improvements
- 1.1.1ttn5 | 2003-02-15
- bug fix: http:request now extracts content-length info properly
- 1.1.1ttn4 | 2003-02-12
- bug fix: http:get now uses ‘Host’ header in the http request
- bug fix: examples/wwwcat handles non-#f ‘program-arguments’ values
- 1.1.1ttn3 | 2002-12-03
- new proc in (www http): http:post-form
- 1.1.1ttn2 | 2002-10-20
- for CGI scripts, handle SERVER_SOFTWARE that omits "/version" info
- 1.1.1ttn1 | 2002-10-05
- for CGI scripts, HTTP_ACCEPT parsing now also handles ", "
- 1.1.1 | 2002-04-26
- new CGI cookies support by Aaron VanDevender
- miscellaneous distribution news
- new subdir examples/
- example program "wwwcat" no longer installed on "make install"
- INSTALL now explains which files are copied where on "make install"
- 1.0.1 | 2001-11-18
- fixed documentation bug that prevented guile-www.info from loading
- 1.0 | 2001-11-16
Copyright (C) 2010, 2011, 2012 Thien-Thi Nguyen
Copying and distribution of this file, with or without modification,
are permitted provided the copyright notice and this notice are preserved.
Local Variables:
mode: outline
outline-regexp: "\\([ ][ ]\\)*- "
End: