GNU bug report logs - #78818
31.0.50; Missing lexical-binding cookies when compiling trampolines

Previous Next

Package: emacs;

Reported by: Daniel Mendler <mail <at> daniel-mendler.de>

Date: Tue, 17 Jun 2025 18:39:02 UTC

Severity: normal

Found in version 31.0.50

To reply to this bug, email your comments to 78818 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#78818; Package emacs. (Tue, 17 Jun 2025 18:39:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Daniel Mendler <mail <at> daniel-mendler.de>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 17 Jun 2025 18:39:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Daniel Mendler <mail <at> daniel-mendler.de>
To: bug-gnu-emacs <at> gnu.org
Subject: 31.0.50; Missing lexical-binding cookies when compiling trampolines
Date: Tue, 17 Jun 2025 20:38:20 +0200
In the *Native-compile-Log* I see the following messages on a newly
compiled Emacs 31 from the current Emacs master branch:

Warning (files): Missing ‘lexical-binding’ cookie in "/tmp/emacs-int-comp-subr--trampoline-72756e2d686f6f6b73_run_hooks_0-ZQkOM2.el".
You can add one with ‘M-x elisp-enable-lexical-binding RET’.
See ‘(elisp)Selecting Lisp Dialect’ and ‘(elisp)Converting to Lexical Binding’
for more information.
Compiling $HOME/.config/emacs/eln-cache/31.0.50-45ab2aa9/subr--trampoline-72756e2d686f6f6b73_run_hooks_0.eln...

In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.49, cairo version 1.18.4) of 2025-06-17 built on host
Windowing system distributor 'The X.Org Foundation', version 11.0.12101016
System Description: Debian GNU/Linux 13 (trixie)

Configured using:
 'configure --prefix=$HOME/.local/share/emacs
 --without-compress-install --with-tree-sitter --with-native-compilation
 --with-dbus --without-selinux --without-threads --disable-gc-mark-trace
 --without-gsettings --without-gpm --with-cairo --with-cairo-xcb
 --with-xinput2 --with-x-toolkit=gtk3 --without-toolkit-scroll-bars'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ JPEG LIBOTF LIBSYSTEMD
LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP
SOUND SQLITE3 TIFF TREE_SITTER WEBP X11 XDBE XIM XINERAMA XINPUT2 XPM
XRANDR GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: LIMPLE




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78818; Package emacs. (Wed, 18 Jun 2025 11:42:02 GMT) Full text and rfc822 format available.

Message #8 received at 78818 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Daniel Mendler <mail <at> daniel-mendler.de>
Cc: 78818 <at> debbugs.gnu.org
Subject: Re: bug#78818: 31.0.50;
 Missing lexical-binding cookies when compiling trampolines
Date: Wed, 18 Jun 2025 14:41:30 +0300
> Date: Tue, 17 Jun 2025 20:38:20 +0200
> From:  Daniel Mendler via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> In the *Native-compile-Log* I see the following messages on a newly
> compiled Emacs 31 from the current Emacs master branch:
> 
> Warning (files): Missing ‘lexical-binding’ cookie in "/tmp/emacs-int-comp-subr--trampoline-72756e2d686f6f6b73_run_hooks_0-ZQkOM2.el".
> You can add one with ‘M-x elisp-enable-lexical-binding RET’.
> See ‘(elisp)Selecting Lisp Dialect’ and ‘(elisp)Converting to Lexical Binding’
> for more information.
> Compiling $HOME/.config/emacs/eln-cache/31.0.50-45ab2aa9/subr--trampoline-72756e2d686f6f6b73_run_hooks_0.eln...

Please show a recipe to reproduce this problem starting from "emacs -Q".
Or at least figure out and tell here compilation of what ELisp file
triggered this message (it sounds like it's part of your init
configuration?).  I started "emacs -Q", but didn't see any such
messages that I could use as a starting point for investigation.

Or, if I'm missing something, could you suggest how to investigate
this given the information you provided above?

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78818; Package emacs. (Wed, 18 Jun 2025 11:53:01 GMT) Full text and rfc822 format available.

Message #11 received at 78818 <at> debbugs.gnu.org (full text, mbox):

From: Daniel Mendler <mail <at> daniel-mendler.de>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Andrea Corallo <acorallo <at> gnu.org>, 78818 <at> debbugs.gnu.org
Subject: Re: bug#78818: 31.0.50; Missing lexical-binding cookies when
 compiling trampolines
Date: Wed, 18 Jun 2025 13:52:42 +0200
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Date: Tue, 17 Jun 2025 20:38:20 +0200
>> From:  Daniel Mendler via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>> 
>> In the *Native-compile-Log* I see the following messages on a newly
>> compiled Emacs 31 from the current Emacs master branch:
>> 
>> Warning (files): Missing ‘lexical-binding’ cookie in "/tmp/emacs-int-comp-subr--trampoline-72756e2d686f6f6b73_run_hooks_0-ZQkOM2.el".
>> You can add one with ‘M-x elisp-enable-lexical-binding RET’.
>> See ‘(elisp)Selecting Lisp Dialect’ and ‘(elisp)Converting to Lexical Binding’
>> for more information.
>> Compiling $HOME/.config/emacs/eln-cache/31.0.50-45ab2aa9/subr--trampoline-72756e2d686f6f6b73_run_hooks_0.eln...
>
> Please show a recipe to reproduce this problem starting from "emacs -Q".
> Or at least figure out and tell here compilation of what ELisp file
> triggered this message (it sounds like it's part of your init
> configuration?).  I started "emacs -Q", but didn't see any such
> messages that I could use as a starting point for investigation.
>
> Or, if I'm missing something, could you suggest how to investigate
> this given the information you provided above?

The trampoline .el file is generated by `comp--final' in comp.el. I
found this by grepping for `emacs-int-comp'. The generated Elisp file
doesn't include a `lexical-binding' cookie, which seems to trigger the
warning. As far as I understand the trampolines are generated if native
subrs are advised in the configuration.

Daniel




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78818; Package emacs. (Wed, 18 Jun 2025 12:16:02 GMT) Full text and rfc822 format available.

Message #14 received at 78818 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Daniel Mendler <mail <at> daniel-mendler.de>
Cc: acorallo <at> gnu.org, 78818 <at> debbugs.gnu.org
Subject: Re: bug#78818: 31.0.50; Missing lexical-binding cookies when
 compiling trampolines
Date: Wed, 18 Jun 2025 15:14:51 +0300
> From: Daniel Mendler <mail <at> daniel-mendler.de>
> Cc: 78818 <at> debbugs.gnu.org, Andrea Corallo <acorallo <at> gnu.org>
> Date: Wed, 18 Jun 2025 13:52:42 +0200
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> >> Date: Tue, 17 Jun 2025 20:38:20 +0200
> >> From:  Daniel Mendler via "Bug reports for GNU Emacs,
> >>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> >> 
> >> In the *Native-compile-Log* I see the following messages on a newly
> >> compiled Emacs 31 from the current Emacs master branch:
> >> 
> >> Warning (files): Missing ‘lexical-binding’ cookie in "/tmp/emacs-int-comp-subr--trampoline-72756e2d686f6f6b73_run_hooks_0-ZQkOM2.el".
> >> You can add one with ‘M-x elisp-enable-lexical-binding RET’.
> >> See ‘(elisp)Selecting Lisp Dialect’ and ‘(elisp)Converting to Lexical Binding’
> >> for more information.
> >> Compiling $HOME/.config/emacs/eln-cache/31.0.50-45ab2aa9/subr--trampoline-72756e2d686f6f6b73_run_hooks_0.eln...
> >
> > Please show a recipe to reproduce this problem starting from "emacs -Q".
> > Or at least figure out and tell here compilation of what ELisp file
> > triggered this message (it sounds like it's part of your init
> > configuration?).  I started "emacs -Q", but didn't see any such
> > messages that I could use as a starting point for investigation.
> >
> > Or, if I'm missing something, could you suggest how to investigate
> > this given the information you provided above?
> 
> The trampoline .el file is generated by `comp--final' in comp.el. I
> found this by grepping for `emacs-int-comp'. The generated Elisp file
> doesn't include a `lexical-binding' cookie, which seems to trigger the
> warning. As far as I understand the trampolines are generated if native
> subrs are advised in the configuration.

Thanks.  We insert the lexical-binding cookie in
comp--run-async-workers, but maybe trampoline compilation doesn't use
that?

Andrea, any suggestions?




This bug report was last modified 1 day ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.