Re: SBCL/CVS HEAD support for arglist functionality

Bob Rogers <[email protected]> Sun, 2 Nov 2003 23:37:17 -0500
Newsgroups gmane.lisp.ilisp.devel
Message-ID <[email protected]>
   From: Hannu Koivisto <[email protected]>
   Date: Mon, 03 Nov 2003 01:37:22 +0200

   Bob Rogers <[email protected]> writes:

   > It still works in ilisp HEAD with SBCL 0.8.4, after cursory testing, but
   > it doesn't recompile cleanly if you just do "M-x ilisp-recompile-inits",
   > since recompiling them doesn't reload the new binaries, and so sbcl.lisp

   Heh, I've actually never tried to use ilisp-recompile-inits before
   launching the listener.  This certainly needs to be fixed.

I did it afterwards, but without flushing the old binaries.

   I get the impression that this worked for you earlier.  I wonder
   how that can be, since sbcl.lisp used the-function-if-defined and
   friends and they are in cl-ilisp.lisp.

It's kinda hokey.  If you don't have binaries lying around, i.e. in a
fresh installation or CVS checkout, invoking (e.g.) M-x sbcl loads the
appropriate *.lisp sources, so the current versions are available to the
interpreter during M-x ilisp-recompile-inits.  So it's hackish, but not
too hackish, and does avoid having to think very hard about
bootstrapping.

   > doesn't have the new maybe-function definition.  If it were up to me, I
   > would make the sbcl.lisp change do more at runtime, or add reader
   > conditionalization for old vs. new behavior, but other possibilities

   Had I had extra time, I would have rewritten the whole mess.  Note
   that find-src.lisp is broken as well.

Not surprised.

   I probably would have reorganized things between it and
   implementation specific modules a bit.  I would also have replaced
   the-function-if-defined and friends with something more usable.
   Anyway.  I don't see how reader conditionalizing would buy anything
   in this case, it would just pollute *features*.  In general, I try to
   avoid reader conditionalization.  Use of it easily leads to
   abominations like mk-defsystem.

Hmm.  mk-defsystem doesn't seem bad at all to me, but that's probably
from having had to write portable Lisp before CLtL, never mind ANSI.  In
particular, reader conditionalization avoids abominations like
the-function-if-defined.  But of course, both are matters of taste.

   > include moving maybe-function to sbcl.lisp (with eval-when) and having

   The reason I put it in cl-ilisp.lisp was that I thought it might be
   useful elsewhere.  This was of course just speculation.  And it
   indeed assumes that cl-ilisp.lisp is loaded before the
   implementation specific module.

Both are good speculations/assumptions, they just didn't work from my
particular state.

   > ilisp-recompile-inits load after compilation (which is probably a good
   > thing to do anyway).  Opinions?

   Yeah, I agree this is probably a good thing in any case.

   -- 
   Hannu

OK, so what I'll do is commit your patch as-is, then maybe worry about
cleaning up ilisp-recompile-inits later, and worry about the other
issues not at all.

   Thanks,

					-- Bob Rogers
					   http://rgrjr.dyndns.org/


-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/