[Bese-devel] Problems compiling 0.2.0 with CMUCL

Marco Baringer mb at bese.it
Thu Mar 25 23:43:11 UTC 2004


On Giovedì, mar 25, 2004, at 22:32 Europe/Rome, Jan Rychter wrote:

> Ok, the continuing saga of problems.

we need a name for this soap opera.

> I've gotten past the problems with acl-compat on CMUCL (notably it
> having a strange way of loading gray-streams which fails and it
> redefining without-package-locks).

i think rudi fixed that in a recent enough acl-compat, i seem to recall 
talking to him about that exact issue.

> I am now at a stage when yaclml and ucw compile and load
> fine.

yippy! were there any specific changes you needed to make to yoclml or 
ucw? are there some hints i should put into the docs?

> ucw.mod-lisp also compiles fine, but when I try to load it, I get:
>
> Attempt to modify the locked package COMMON-LISP, by redefining 
> function
> STREAM
>    [Condition of type LISP::PACKAGE-LOCKED-ERROR]

ok, this is a mistake. the class mod-lisp-message has a slot named 
stream (the stream connected to apache) with an accessor named stream. 
we don't use that accessor, so it could just as well be removed.

> Attempting to continue unlocking the package (option [1]) results in:
>
>
> Execution of a form compiled with errors:

this is, afaict, a cmucl odity. basically this is the same problem we 
had with the standard-whatever classes. the other thing to note is that 
when you get an "Execution of a form compiled with errors" it's the 
compiliation pass which has failed, you need to retry compiling that 
file to see what the real error is.

Anyway, sometimes (i can't seem to understand when) CMUCL wants class 
definitions to be loaded before it can compile code which uses the 
accessor defined in the defclass form. In this particular case we have 
the method print-object which uses the raw-url accessor defined in a 
defclass in that same file. attempting to compile the file without 
loading it first gives this error. you have two (or three) options: 1) 
move the defclass form into an eval-when or another file, 2) use 
(slot-value object 'raw-url) as opposed to (raw-url object) and 3) talk 
to some people who know cmucl better than I and see whats really going 
on.

hope this helps.
--
Marco
Ring the bells that still can ring.
Forget the perfect offering.
There is a crack in everything.
That's how the light gets in.
	-Leonard Cohen





More information about the bese-devel mailing list