[postmodern-devel] postmodern patch for CMUCL
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/
Thanks! Will be applied as soon as I can get a secure shell running somewhere. Cheers, Marijn
participants (2)
-
Marijn Haverbeke
-
Ryszard Szopa