emacs-devel
[Top][All Lists]
Advanced

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

Re: Why have a #if .... #else .... #endif construct in Emacs Lisp, when


From: Lynn Winebarger
Subject: Re: Why have a #if .... #else .... #endif construct in Emacs Lisp, when we could make the existing code DTRT unchanged?
Date: Tue, 5 Sep 2023 07:26:01 -0400

On Mon, Sep 4, 2023, 8:30 PM Richard Stallman <rms@gnu.org> wrote:
[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > How about making the byte compiler recognize the construct

  >  (if (< emacs-major-version NUMBER) ...)

  > and do this optimization on it?

People seem not to have considered this seriously, but I have not seen
any serious discussion of a drawback.  What flaw or drawback do people
see in it?  It should optimize the existing the existing code with no
change at all.  Isn't that just perfect?


Since byte-compiled files are not versioned, emacs-major-version is not really a constant, so constant-folding isn't correct.
For example, loading a file in version 29 that was byte-compiled by version 28 (or earlier) may not be the same as byte-compiling the file with version 29.

Lynn



reply via email to

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