[Prev][Next][Index][Thread]
CL-HTTP 37.7 (MAC 1.6.1, ACL 0.4.1)
CL-HTTP 37.7 (MAC 1.6.1, ACL 0.4.1)
CL-HTTP version 37.7 is now available from the home page and FTP site.
http://www.ai.mit.edu/projects/iiip/doc/cl-http/home-page.html
ftp://ftp.ai.mit.edu/pub/users/jcma/cl-http/
The current release is available for:
* MAC running under MCL 3.0 (and MCL 2.0.1 with the usual caveats).
* Lisp Machine under Symbolics Genera 8.3 (also Open Genera 1.0)
* UNIX under Allegro Common Lisp 4.2 (First Alphatest Release). Please
report bugs, problems, or suggestions to bug-acl-cl-http@ai.mit.edu
The new release includes a number of fixes, performance enhancements,
extensions, and some new documentation.
Most importantly, it provides a defined, documented interface for writing Lisp
response functions. Using the documented interface and exported symbols will
ensure that your code continues to work across releases even as the underlying
implementation evolves. Whenever a defined interface is unavailable or
inadequate for a task, the issue should be aired on www-cl@ai.mit.edu.
The license for the CL-HTTP distribution has been revised and moved to
http:http;-license-.text.
We want to here what people are doing or would like to do with CL-HTTP so that
we can better understand the needs of the user community.
The more significant features include:
* Server Interface 1.0 provides a defined interface for writing
response functions. This is an interface specification inspired by CGI
but more attuned to the needs of Lisp.
* Common Gateway Interface 1.1 provides the information needed for
scripting interfaces on the MAC (e.g., AppleScript, Perl) and UNIX,
but this standard is not very useful for the Lisp programmer.
* Documentation on writing response functions explains all the
interfaces needed to write response functions for computed URLS, form
processing and search urls. See: /cl-http/response-functions.html
* Documentation enumerating a number of heuristics for how to make
your lisp code for CL-HTTP response functions run fast. Suggestions,
refinements, and prioritizations are a relevant topic for discussion
on www-cl. See:/cl-http/efficiency.html
* Bugs related to operation on ports other than 80 or multiple ports
have been fixed. The function http:set-standard-http-port can now be
used to set the standard port on which the server will listen. This
must be invoked after http:reset-server-local-host-variables in your
server configuration file (see the examples in
http:examples;configuration.lisp).
* The #U reader macro now uses the standard port when completing
relative URLs. The #U reader macro now accepts an alternate syntax of
the form: #U("/cl-http/response-functions.html" :host
"Host.Domain":port 8000), where host and port would default to the
values of local-host and the standard port.
* The Mailto and File URLs are now parsed by the URL package.
* The Web related standards have been updated in http:standards;
* Portability enhancements will make additional port smoother.
* Lazy header parsing improves the response time for the server.
* Several classes of AppleTalk errors are now detected on the MAC and
more meaningful error reports provided.
* A number of network conditions have been exported for use in the
http package (not yet available in the ACL port). These include:
BAD-CONNECTION-STATE
CONNECTION-CLOSED
CONNECTION-ERROR
CONNECTION-LOST
CONNECTION-REFUSED
DOMAIN-RESOLVER-ERROR
HOST-NOT-RESPONDING
HOST-STOPPED-RESPONDING
LOCAL-NETWORK-ERROR
NETWORK-ERROR
NETWORK-PARSE-ERROR
NETWORK-RESOURCES-EXHAUSTED
PROTOCOL-TIMEOUT
REMOTE-NETWORK-ERROR
UNKNOWN-ADDRESS
UNKNOWN-HOST-NAME
A bug has been identified in the Lisp Machine and MAC versions of the basic
client whereby the client fails to read URLs completely. This occurs because
many HTTP servers close the connection by issuing a TCP reset to the client.
Many TCP implementation assume a more graceful end to a transaction, and so,
both the Lisp Machine and the MAC TCP implementations flush the input buffer
when they receive the tcp reset. If the client has not already completed
reading the input buffer, a tcp-connection-reset error is signalled when the
client next tries to read from the TCP input buffer. Apple and MIT are working
on a solution to this problem.