[Openmcl-devel] 0.13.x vs. 0.14.x
gb at clozure.com
Mon Jan 5 10:23:50 UTC 2004
On Mon, 5 Jan 2004, Sven Van Caekenberghe wrote:
> A quick fix seems to be to comment out the :type spec in
> acl-compat/mcl/acl-socket-openmcl.lisp works:
> (defclass server-socket ()
> ((socket :initarg :socket :reader socket
> :initform (error "No value supplied for socket"))
> (port ;; :type fixnum
> :initarg :port
> :reader port
> :initform (error "No value supplied for port"))))
That would prevent the type error; it's not clear if anything might
depend on the server-socket having a valid PORT slot. (The
PRINT-OBJECT method for SERVER-SOCKET does; it doesn't appear that
anything more critical in that file does, but I haven't looked at
other files yet.) It might be preferable to fix the MAKE-SOCKET
function a little further down in the file.
> I would think this is related to the bug I reported earlier.
I actually suspected that as well, but was mistaken.
In this case, an initarg (:PORT) was explicitly provided with a NIL
value, and the slot in question had a :TYPE of fixnum.
The bug you reported earlier (which is fixed in CVS, BTW) occurred
when no initarg was provided and an initform was; rather than
type-checking the initform, it typechecked a similarly-named local
variable whose value would always be NIL in that situation.
> >> Note that I get the same error if I execute:
> >> (aserve-example::start-server :port 2001)
> >> that is, without the suggested :chunking nil, so I think the error has
> >> nothing to do with the suggestion in INSTALL.lisp that start-server be
> >> called with :chunking nil under openmcl.
> > Someone seems to have added chunking support for openmcl recently.
> > The CVS checkin comment notes that they accepted a speed loss in
> > doing so; in my model of things, that seems to defeat one of the
> > main purposes of using chunked transfer encoding.
> That troubles me as well - performance loss is never good, and
> openmcl+paserve was quite fast *and* reliable!
As I read the code, the primary reason for the SERVER-SOCKET class to
exist is to enable its ACCEPT-CONNECTION method to wrap a chunking layer
around the stream that the underlying socket's method returns. This
seems to happen unconditionally; if so, that's probably a good argument
for doing http chunking at a lower level.
> > Some of these changes seem to have been made just before the holidays;
> > that's certainly my excuse for bugs in 0.14-031220 ...
More information about the Openmcl-devel