[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: syntax-locally-bound-identifiers, local-eval
From: |
Mark H Weaver |
Subject: |
Re: syntax-locally-bound-identifiers, local-eval |
Date: |
Fri, 20 Jan 2012 15:00:29 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux) |
There's another thing that really should be fixed, for the sake of
preserving our ability to change the implementation `local-eval' in the
future.
Since (the-environment) can be included in code compiled to disk, the
lexical environment objects that it returns are effectively now part of
our ABI. As it is now, if we want to change the representation, we'll
be in for a lot of headaches to support lexical environments produced by
older code.
The fix is simple: Simply change the representation of the lexical
environment object to contain only a single field: a procedure that
takes an expression (and optional keyword arguments) and does the
equivalent of `local-eval' or `local-compile'. (The keyword arguments
should specify whether or not to compile, and the compile options).
Then, `local-eval' and `local-compile', when applied to a lexical
environment object, should simply call the embedded procedure.
Thanks,
Mark
Re: syntax-locally-bound-identifiers, local-eval, Ludovic Courtès, 2012/01/21