-*- Text -*-
* Portability to MCL (Brian Mastenbrook)
* Workaround for Unicode-enabled SBCL (Brian Mastenbrook)
New in 0.9
* Portability to multiple lisps:
- SBCL, as before
- OpenMCL, threaded handlers only
- Allegro, threaded handlers only
- Armed Bear Common Lisp, threaded handlers only
- CMUCL, serve-event only
- CLISP, serve-event only
- LispWorks, threaded (from Jochen Schmidt, based on Portable AServe)
In particular the CLISP support is a bit of a hack; timeouts are still
notably missing, and you must run (araneida:host-serve-events) after
you're done running start-listener on all of your listeners.
(Brian Mastenbrook, Jochen Schmidt)
* SERVE-EVENT fixes so that non-Araneida fd handlers can be
added/removed during request handling. More than slightly kludgey,
and less than entirely thread-safe, but this can be blamed mostly on
the nature of serve-event. (Brian again, and Luis Oliveira)
New in 0.85
* Fix URL encoding for characters 0 to F (Fare Rideau)
* Add :www-authenticate keyword to request-send-headers, and
:extra-http-headers for other stranger headers that it still doesn't
know (Brian Mastenbrook)
* Clean up some of the HTML outputting stuff (impetus from Fare, but
actual code not his fault; as far as I can see anyway)
New in 0.84
* Important bug fix: conditional request support had the sense of the
"changed?" test backwards. An upgrade is recommended for anyone
using this.
* Some notes on HTTP caching added to documentation
* New generic function LISTENING-P to detect whether an http-listener
is active
New in 0.83
* Clear up RESPONSE-SENT so that it works as described.
* Convenient support for conditional GET requests: the new keyword
argument :CONDITIONAL T to REQUEST-SEND-HEADERS will cause it to
compare the last-modified date in the response with the
if-modified-since date in the request, sending a 304 response
and then signalling RESPONSE-SENT when appropriate.
* REDIRECT-HANDLER may now take a relative urlstring for :LOCATION,
which is merged against the handler's base url
* Cleared up a lot (but not all) of the compilation warnings and
style-warnings
New in 0.82
* SLIME integration: the SLIME debugger can now be used to debug
errors that occur in handlers. This is controlled by the
* New variable *RESTART-ON-HANDLER-ERRORS*, which replaces the
badly-named *BREAK-ON-HANDLER-ERRORS*. It can contain a function
which is run on handler errors to provide an alternative debugger
interface
New in 0.81
* Fix for bug in doc/example.lisp: long-site-name doesn't (as I had
claimed) necessarily have to return FQDN, and only did that on my
machine because I had leftover bits of Debian common-lisp-controller
it was looking at. Thanks to Vincent Arkesteijn
* Export REQUEST-UNHANDLED-PART, which is the rightmost part of the
urlstring: what would have been in the second parameter of an
old-style handler
* STATIC-FILE-HANDLER coped badly with requests for ".../doc" when
".../doc/" is a directory. Now issues redirect
New in 0.80
* New HTTP-LISTENER abstraction drastically improves the threaded
variant of Araneida, and also replaces a lot of older ad-hocky code
and global variables. The following are at least obsolete, and may
not even exist any more
- The 'server' stuff: export-server etc
- *root-handler*
- install-{thread,serve-event}-handlers, remove-handlers
* Raising HTTP errors from handlers is now accomplished in a far
cleaner fashion, by signalling CL conditions. (This also means that
parent handlers may handle these conditions to provide e.g. custom
404 pages). A condition exists for each 4xx and 5xx HTTP response code
* Add REFRESH header to REQUEST-SEND-HEADERS; sends the not-quite-HTTP
'Refresh: ' header (really, not part of HTTP/1.0 or 1.1: it appears to
have been a Netscape extension)
* Fix packaging problem in 0.72
New in 0.72
* Experimental HTTP/0.9 support. Requests with no Host: header are served
as though they were for *DEFAULT-SERVER*, and REQUEST-SEND-HEADERS is
a no-op when (< (REQUEST-HTTP-VERSION R) 1)
* Fix bug in a FORMAT string spotted by new SBCL
New in 0.71 : bugfixes
* static-file-handler no longer calls peek-char, to avoid a bug in
SBCL <0.8.3.
* new variable *break-on-handler-errors* controls whether errors encountered
during a request read or response (almost any code in Araneida,
including request parsing, dispatch, etc) cause a break into the
debugger or not
* Incompatible change: html-stream has new and experimental behaviour
if you put a function in the tree: it invokes the function, passing the
output stream as its only parameter. This is experimental and I
hope it won't affect anyone much - does anyone currently print function
objects in their html streams?
* Added LINK to the list of empty elements
* New prettier implementation of body-params which goes about twice as
fast (thanks to Zach Beane)
* Minor docn updates
New in 0.70
* Experimental MP support, only on SBCL with #+sb-threads configured
* Dead code cleanup: removed package aliases HTTPSRV and HTTP-SERVER
and references to them
* HTTP header parsing code is slightly less consy
* MERGE-URL fix
* Now uses SB-BSD-SOCKETS; DB-SOCKETS no longer required
New in 0.69
* All-new handler model, with prototype documentation - unpolished,
but should be enough to get started.
* Default handlers REDIRECT-HANDLER and FILE-REQUEST-HANDLER - see
relevant source files for details
* Examples are no longer included, as they're all terrifically out of
date
* (Actually, they were missed out of the last version too, but it
was accidental that time)
* This is essentially a beta for 0.7, which will have bug fixes (if
anyone sends bug reports) and better examples.
New in 0.63
* SEND-FILE (and thus FILE-REQUEST-HANDLER) test explicitly and return 404
for wild pathnames.
New in 0.62
* URL merging bug fixes
New in 0.61 (relative to 0.6)
* now depends on SPLIT-SEQUENCE package (available the same place you
found this)
* Socket error handling change: STREAM-ERROR is assumed to be due to the
peer going away, and not worth calling the error handler for
* Bug fixed: now correctly handles folded lines in the HTTP header
* New function REQUEST-COOKIE
* FTP protocol "support" in url functions
* Fix broken base64 decoder
New in 0.54 - Thu, 28 Jun 2001
* Araneida is now a cCLan package
* Araneida 0.52 (unreleased) and later also work with SBCL - in fact,
most of the testing these days is done with SBCL. Has been used on
Linux i386 and Alpha; would be interested to receive success/failure
reports (and especially patches) from users on other platforms.
New in 0.51 - Sun Jan 7 02:31:10 GMT 2001
* better support for conditional GET and If-Modified-Since headers
* some speed improvements to the sexp-to-HTML convertor
* new pattern-based sexp rewriting engine, so that you can for example
write
(define-page
((merge-url *araneida-url* "/rewritten")
:patterns example-patterns
:changed-time (get-universal-time))
'(page
(title "foo")
(body (h1 "title") (p "hello " (red "red") " world")))))
and have it transformed into HTML in a fairly arbitrary (and more
general than CSS) fashion. See example 6 in main.lisp for details (including the
definiton of the rewriting patterns) and /rewritten for the output