[Openmcl-devel] 0.13.x vs. 0.14.x

Sven Van Caekenberghe sven at beta9.be
Mon Jan 5 09:04:06 UTC 2004


On 05 Jan 2004, at 07:52, Gary Byers wrote:
>
> On Sun, 4 Jan 2004, Raffael Cavallaro wrote:
>>
>> On Jan 4, 2004, at 7:13 PM, Gary Byers wrote:
>>
>>> Recent versions of of paserve use asdf (and are conditionalized for
>>> :openmcl-native-threads).  AFAIK, those recent versions are only
>>> available via CVS; see
>>> <http://sourceforge.net/projects/portableaserve>.
>>
>> Thanks. After loading paserve, and example.cl, I get the following
>> error:
>>
>> ? (aserve-example::start-server :port 2001 :chunking nil)
>>> Error in process listener(1): value NIL is not of the expected type
>> FIXNUM.
>>> While executing: CCL::%SHARED-INITIALIZE
>>> Type :POP to abort.
>> Type :? for other options.
>> 1 > ?
>>
>
> Sourceforge's CVS server seems to be acting up at the moment, and the
> couple-of-months-old version of paserve that I have didn't define the
> class ACL-COMPAT.SOCKET::SERVER-SOCKET.  From what I can tell from the
> Web CVS interface, the PORT slot of an ACL-COMPAT.SOCKET::SERVER-SOCKET
> has a :TYPE of FIXNUM, and the backtrace you sent indicates that it's
> being passed explicitly as NIL.
>
> The function MAKE-SOCKET (in acl-compat/mcl/acl-socket-openmcl.lisp)
> accepts a :PORT argument (defaulting its value to NIL) and tries to
> make an instance of a SERVER-SOCKET with this :PORT.  NET.ASERVE:START
> doesn't pass a :PORT argument to MAKE-SOCKET (it passes :LOCAL-PORT);
> so MAKE-SOCKET tries to pass :PORT NIL (as we see.)  Signaling a
> type error at this point is probably better than failing in some more
> obscure way a little later.

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"))))

I would think this is related to the bug I reported earlier.

>
>> 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!

> Some of these changes seem to have been made just before the holidays;
> that's certainly my excuse for bugs in 0.14-031220 ...

Sven




More information about the Openmcl-devel mailing list