[Top][All Lists]

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

bug#20862: 25.0.50; 32-bit Emacs configured --with-wide-int miscompiles

From: Paul Eggert
Subject: bug#20862: 25.0.50; 32-bit Emacs configured --with-wide-int miscompiles CL
Date: Sat, 27 Jun 2015 08:56:30 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0

Eli Zaretskii wrote:
I think the *.elc files should be reproducible, yes.  Otherwise, it's
hard to know if there's some subtle problem in the byte compiler or
its support routines.

The simplest fix would be to initialize cl--gensym-counter to 0, as is done in Common Lisp, so that Emacs generates reproducible output. However, the documentation for cl-gensym says this:

(Internally, the variable @code{cl--gensym-counter} holds the counter
used to generate names.  It is incremented after each use.  In Common
Lisp this is initialized with 0, but this package initializes it with
a random time-dependent value to avoid trouble when two files that
each used @code{cl-gensym} in their compilation are loaded together.
Uninterned symbols become interned when the compiler writes them out
to a file and the Emacs loader loads them, so their names have to be
treated a bit more carefully than in Common Lisp where uninterned
symbols remain uninterned after loading.)

This passage is dismaying, as it suggests that it's a matter of luck as to whether trouble is avoided when two files that each used cl-gensym are loaded together. I guess the trouble that's avoided is the usual issue with macro capture. (Maybe we should file another bug report for this....)

reply via email to

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