GNU bug report logs - #64526
30.0.50; jit-compilation and multiple function definitions

Previous Next

Package: emacs;

Reported by: Stefan Monnier <monnier <at> iro.umontreal.ca>

Date: Sat, 8 Jul 2023 01:43:02 UTC

Severity: normal

Found in version 30.0.50

Full log


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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Andrea Corallo <acorallo <at> gnu.org>
Cc: 64526 <at> debbugs.gnu.org
Subject: Re: bug#64526: 30.0.50; jit-compilation and multiple function
 definitions
Date: Mon, 10 Jul 2023 05:38:11 -0400
>> Package: Emacs
>> Version: 30.0.50
>>
>>
>> Say you have a file ~/tmp/foo.el:
>>
>>     ;;  -*- lexical-binding: t; -*-
>>     (defun sm-foo1 (a) (list a 1))
>>     (defun sm-foo1 (a) (list a 2))
>>
>> which you byte-compile into ~/tmp/foo.elc, and then you do:
>>
>>     emacs -Q -l ~/tmp/foo
>>     M-: (sm-foo1 'a) RET
>>
>> you'll usually get `(a 2)` (and that's what we expect).  But if you enable
>> native compilation and erase the `eln-cache` before trying it out you
>> may get `(a 1)` because when the `.eln` file is reloaded on top of the
>> `.elc` definitions, `comp--late-register-subr` will skip the second
>> definition :-(
>
> Hi Stefan,
>
> are we sure about this? Is this reproducible?

Yes, the above recipe reproduces it on my machine at least.


        Stefan





This bug report was last modified 2 years and 72 days ago.

Previous Next


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