From: Christophe R. <cs...@ca...> - 2003-04-10 12:27:54
|
Hi, Firstly, let me just thank you for being able to announce another milestone in the ability of clisp to act as host Lisp for SBCL's build. Compilation of the 289 files now proceeds to completion, before the linking ("genesis") phase dies shortly after startup with an error that I don't yet understand. To get this far, I had to turn off complex uses of the pretty printer, I'm afraid; it's all too easy to trigger assertion errors or crash the system (and I haven't yet had any luck in distilling this to a small test case, more's the pity). Apart from fixing some portability issues in sbcl's code base, there was one other major problem that I think is an issue in CLISP; I've worked around it for now, but you should know about it. At the toplevel, do (defstruct foo a) (defmethod make-load-form ((x foo) &optional env) (make-load-form-saving-slots x :environment env)) and put in a file, say foo.lisp: (defvar *foo* '#S(FOO :A BAR)) Compile and load the file, and observe that *FOO* is correctly initialized to a FOO structure whose A slot contains the symbol BAR. So far, so good. Now, again at the toplevel, continuing the session, do: (makunbound '*foo*) (defconstant bar 1) and recompile and reload foo.lisp. Now I observe that *FOO* is bound to #S(FOO :A 1) and not to #S(FOO :A BAR), which I believe is incorrect behaviour. Cheers, Christophe -- http://www-jcsu.jesus.cam.ac.uk/~csr21/ +44 1223 510 299/+44 7729 383 757 (set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b))) (defvar b "~&Just another Lisp hacker~%") (pprint #36rJesusCollegeCambridge) |