emacs-devel
[Top][All Lists]
Advanced

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

Re: [Emacs-diffs] master c75eb10: Don't change byte-compile-delete-error


From: Johan Bockgård
Subject: Re: [Emacs-diffs] master c75eb10: Don't change byte-compile-delete-errors at runtime (Bug#27340)
Date: Thu, 29 Jun 2017 22:09:19 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

Noam Postavsky <address@hidden> writes:

> On Thu, Jun 29, 2017 at 3:25 PM, Johan Bockgård <address@hidden> wrote:
>
>> This is wrong. declaim has run-time effects, just like defvar etc. The
>> compile-time side effect is that it ALSO affects the compilation of the
>> remainder of the current file.
>>
>> http://www.lispworks.com/documentation/HyperSpec/Body/03_bcaa.htm
>
> So you don't think this statement allows to omit run-time effects?
>
>     It is not specified whether definitions made available in the
>     compilation environment are available in the evaluation
>     environment, nor is it specified whether they are available in
>     subsequent compilation units or subsequent invocations of the
>     compiler.

No, evaluation environment != run-time environment.(*)

The Hyperspec says that:

1. [declaim should] make definitions available both in the compilation
   and run-time environments.
2. It is not specified whether definitions [...]
   a) are available in the evaluation environment,
   b) in subsequent compilation units or subsequent invocations of the
      compiler.
3. compile-time side effects happen only [..] at top level.


(*) evaluation environment n. a [kind of] run-time environment in which
    macro expanders and code specified by eval-when to be evaluated are
    evaluated. All evaluations initiated by the compiler take place in
    the evaluation environment.



reply via email to

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