I'm confused about an eval-when in cl-info.lisp with GCL



>>>>> "James" == James Amundson <amundson@users.sourceforge.net> writes:

    James> I'm confused about some behavior I see in cl-info.lisp under GCL.
    James> cl-info.lisp contains the following snippet:
    James> ----------------------------------------------------------------
    James> (eval-when (compile eval)
    James>   (defmacro while (test &body body)
    James>     `(loop while ,test do ,@ body))
    James>   #+nil
    James>   (defmacro f (op x y)
    James>     `(,op (the fixnum ,x) (the fixnum ,y))))
    James> ----------------------------------------------------------------

Does changing it to (compile load eval) make a difference?
 
Is nregex sufficiently fast with gcl on a moderately slow PC?  nregex
calls the compiler at runtime, and gcl has one of the slowest
compilers out there.

When I tested this long ago, Clisp's relative slowness in regex
matching was compensated for by its very fast compiler.  CMUCL ran the
matcher quite fast, but compiling the regex was rather slow.
However CMUCL was (just!) fast enough on a 300 MHz sparc that it
wasn't too annoying.  Clisp was essentially instantaneous on that
same sparc.

Perhaps nregex should be replaced with cl-ppcre, which is known to run
very fast with clisp and cmucl.  Don't know about gcl.  (But not for
the imminent release, of course.)

Ray