[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