[postmodern-devel] postmodern patch for CMUCL

Ryszard Szopa ryszard.szopa at gmail.com
Wed Sep 5 14:15:01 UTC 2007


Hi,

I wanted to see how submarine works under CMUCL, and it failed all the
tests. It turned out, however, that the blame is on the side of
Postmodern: it couldn't connect to the database, and also failed all
its tests. The problem was that in some place it was trying to compare
with >= a number and nil.

With some effort I managed to find the guilty piece of code. It was
read-ascii-string in communicate.lisp. In that function, if
byte-length is not nil, it is compared with bytes-read. Byte-length,
however, was declared as fixnum. This probably caused CMUCL to
optimized it away as not-NIL in any conditional expressions (imagine
my surpise when evaluating

(when byte-length (break "bytes-read: ~A byte-length: ~A" bytes-read
byte-length))

threw a break and showed byte-length to be nil :))

Also, binding the utf-8 stuff in package.lisp was indeed an awful
hack... It's been a long time since I've used grep on source code to
find who calls a function (yeah, slime is addicting;).

Now Postmodern passes on CMUCL all its tests except two, table and
transaction. I'll take a look at them if I have time.

Cheers,

    -- Richard

-- 
http://szopa.tasak.gda.pl/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cmucl_bugfix.patch
Type: text/x-patch
Size: 5594 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/postmodern-devel/attachments/20070905/cbbe396f/attachment.bin>


More information about the postmodern-devel mailing list