[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
eval-when and eval-case issues.
From: |
Rob Browning |
Subject: |
eval-when and eval-case issues. |
Date: |
29 May 2001 19:37:32 -0500 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 |
Eval-case seems to only be used in boot-9. I'm presuming it's not
really intended for general consumption and that eval-when is what
we're planning to be the general mechanism. However, we can't just
get rid of eval-case altogether, since eval-when doesn't really do the
same thing.
With respect to eval-when, we have to decide what its syntax and
semantics should be. The behavior of our existing version is
documented here http://www.scheme.com/csug/system.html#g2256, and it
supports the eval-when "situations" of compile, load, and eval.
However, Marius mentioned that perhaps we should support a more
common-lisp like eval-when. If so, then it supports
:compile-toplevel, :load-toplevel, and :execute, and has a fairly
complicated set of rules for how and when these keywords affect
loading, compiling, etc.
The reason I bring this issue up is because I'm now at the point with
my compiler test harness that I need to be able to communicate with
pssyntax.ss about what state it's in (compile vs non-compile state),
when I'm calling it for pre-compilation macro-expansion.
The question is, what do we want? The easiest thing is probably to
try to just continue integrating our existing implementation since
otherwise we may have to do a lot of monkeying around with
pssyntax.ss. So I'm tempted to advocate that as at least a short term
approach.
Oh, and one thing that might be nice is some way to "unexport" things.
One of these days it might be nice to make boot-9, at the end of the
file, put all of its non-public bindings into an boot-9 module, and
then unexport all the non-public ones.
--
Rob Browning <address@hidden> PGP=E80E0D04F521A094 532B97F5D64E3930
- eval-when and eval-case issues.,
Rob Browning <=