From: Christophe R. <cs...@ca...> - 2002-03-08 17:25:00
|
On Fri, Mar 08, 2002 at 11:47:11AM -0500, Raymond Toy wrote: > Of course, SBCL doesn't really have this problem because it can > build itself easily, right? :-) Heh. We're working on it. :) And actually the opportunity to reply under this thread is too tempting, despite the fact that it's only tangentially related... since clisp 2.28 has been released, I took the opportunity to see what would happen when I tried compiling it; as it happens, it dies in aliencomp because of the non-BOA-constructor for alien-type and local-alien-info -- it warns about treating bits and type respectively as specials. I don't know how to fix this; there's one call to make-local-alien-info which would need fixing, but I couldn't actually find _any_ to make-alien-type, which causes all sorts of alarm bells to ring as it usually means I'm missing something :) That said, and tying this into the thread of compiler performance, I have implemented yet another compiler pessimization (possibly). This one, however, might be more welcome than most, as I have ripped out the evil code from hell in src/compiler/assem.lisp. With the attached patch (incidentally also including my fix to the thing I whined about earlier today) sbcl builds (in CMUCL), passes tests, and is in the process of building itself again... of course, I don't actually claim to understand fully what the magical symbol-macrolet stuff was meant to be doing, and I have also removed at least one layer of protection, so I would like to make it clear that this patch also causes alarm bells to start ringing. I would like to submit this, but please test it to see (a) if it works and (b) if the performance degradation (if any) is acceptable. I haven't measured it, but it doesn't look like it's noticeably increasing the time this (second) compilation is taking, but this is very subjective as I am simultaneously working on some relativistic calculations... Cheers, Christophe -- Jesus College, Cambridge, CB5 8BL +44 1223 510 299 http://www-jcsu.jesus.cam.ac.uk/~csr21/ (defun pling-dollar (str schar arg) (first (last +))) (make-dispatch-macro-character #\! t) (set-dispatch-macro-character #\! #\$ #'pling-dollar) |