[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

defsystem



I thought this would be a nice test case to see how good Common Lisp is
for making portable code, so I tried it out.

It looks as if the function COMPILE-IF-NEEDED needs to have a
declaration, saying (DECLARE (SPECIAL SYSTEM COMPILED-MODULES)) in it,
in order to work properly.  Does your CL implementation work without
such a declaration?  If so, you might want to check into that, since it
oughtn't, if I'm not mistaken.

It would also be nice to put in (DECLARE (IGNORE LEVEL)) in the
functions PRINT-SYSTEM and PRINT-MODULE, just to suppress the compiler
warnings.

There are a few places that manipulate pathnames by using concatenate to
append a file name to a directory name.  That'll work OK with the PRIME
file system (and Symbolics's file system), but it won't with several
others, because syntaxes vary.  It should use the pathname manipulation
functions in CL.

I tried running it on a simple case.  It signalled an error, trying to
find the file-write-date of a bin file that didn't exist yet, because
the source file (which I had just created) had never been compiled.
This appears to be our bug; file-write-date is supposed to return NIL
"if it cannot be determined".  After I fixed this, compile-system,
load-system, and show-system appeared to work properly.