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
Thanks! Will be applied as soon as I can get a secure shell running somewhere.
Cheers, Marijn
postmodern-devel@common-lisp.net