guile-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]