[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bug in syncase

From: Neil Jerram
Subject: Re: bug in syncase
Date: 04 Dec 2002 20:54:38 +0000
User-agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7

>>>>> "Carl" == Carl R Witty <address@hidden> writes:

    Carl> Emacs does not do memoization during eval; macros are
    Carl> re-evaluated every time they are encountered.  However, if
    Carl> you byte-compile a function (typically by byte-compiling an
    Carl> entire file at install time, although it's also possible to
    Carl> byte-compile an individual function at run time), macros are
    Carl> expanded during the byte-compilation process.

Many thanks for this.

    Carl> This means that Emacs Lisp code which is to run correctly
    Carl> both interpreted and compiled must be insensitive to when or
    Carl> how often macro expansion is done; such code -- which
    Carl> includes virtually all distributed Emacs Lisp code, I would
    Carl> think -- would also work if macro expansion were memoized.

A persuasive constraint to have ... except only for the interactive
development angle ...

    Carl> The interactive development process would be different,
    Carl> though; for a complete clone of Emacs, including the
    Carl> development process, you would want to have an eval that
    Carl> does no memoization and some sort of separate compilation
    Carl> phase.

I don't quite understand.  By `interactive development process', do
you mean what a user does with `C-x C-e', or something more specific
to the core Emacs developers?

If the former, I don't see how you reach your conclusion.  What if you
redefine a macro that was in use by a byte-compiled function?  It
seems to me that what you need to handle this scenario is a
recompilation protocol.  How does a non-memoizing eval and separate
compilation help?


reply via email to

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