GNU bug report logs -
#42691
28.0.50; eval-and-compile
Previous Next
Reported by: Helmut Eller <eller.helmut <at> gmail.com>
Date: Mon, 3 Aug 2020 07:58:02 UTC
Severity: normal
Tags: notabug
Found in version 28.0.50
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
On Mon, Aug 03 2020, Andreas Schwab wrote:
> On Aug 03 2020, Helmut Eller wrote:
>
>> Compiling this example:
>>
>> (require 'cl-lib)
>> (cl-macrolet ((foo () '123))
>> (eval-and-compile (foo)))
>>
>> with
>>
>> emacs -Q --batch -f batch-byte-compile bug.el
>>
>> prints:
>>
>> In toplevel form:
>> bug.el:2:1: Error: Symbol’s function definition is void: foo
>>
>> I think when compiling eval-and-compile the macro-environment is not
>> passed along properly.
>
> Only the body of eval-and-compile is evaluated at that point. If you
> want to modify the environment of the evaluation, you need to move that
> modification inside the eval-and-compile form.
Are you saying this is not a bug in eval-and-compile?
The docstring of eval-and-compile says eval-and-compile is like progn,
except that the body it is evaluated at compile-time too. If it is
supposed to work like progn, then the environment should be defined as
for progn.
Helmut
This bug report was last modified 3 years and 305 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.