[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.