Subject: bug#68668: 30.0.50; Invalid hash table test: tab-bar--auto-width-hash-test

From: Andrea Corallo <[email-masked]>
Date: Wed, 31 Jan 2024 05:13:49 -0500

Andrea Corallo <[email-masked]> writes:

> Andrea Corallo <[email-masked]> writes:
>
>> john muhl <[email-masked]> writes:
>>
>>> Eli Zaretskii <[email-masked]> writes:
>>>
>>>>> From: Mekeor Melire <[email-masked]>
>>>>> Date: Mon, 29 Jan 2024 22:53:45 +0000
>>>>>
>>>>> Hello, I just wanted to share a work-around for this bug, even though it
>>>>> is probably bad for performance:
>>>>>
>>>>> 	(setopt native-comp-enable-subr-trampolines nil)
>>>>
>>>> Can someone please post a recipe for reproducing this?  Does this
>>>> happen if you say "make bootstrap"?
>>>
>>> This most reliable way to reproduce it for me is:
>>>
>>>   git clone https://git.savannah.gnu.org/git/emacs.git
>>>   cd emacs
>>>   make bootstrap
>>>   make test/src/keymap-tests.log
>>>
>>> It reproduces on 32 & 64bit systems, x86_64, armv7l and aarch64.
>>> The problem first shows up with keymap-tests in 54d3de64e19.
>>> Attached is the keymap-tests.log.
>>
>> I can reproduce this recipe, smells of some some function being moked
>> that the native compiler needs in order to work.  I'll try to have a
>> look.
>>
>>   Andrea
>
> Okay investigation in progress, here a minimal reproducer:
>
> (describe-buffer-bindings (current-buffer))
> (comp-trampoline-compile 'message)
>
> What is going on is that for some reason after calling
> 'describe-buffer-bindings' an hash table with
> 'tab-bar--auto-width-hash-test' as test is leaked into the compilation
> environment.
>
> As this is passed to the spawned process we fail as there
> 'tab-bar--auto-width-hash-test' is not defined.
>
>   Andrea

Okay something very wierd hash related is going on here:

If I evaluate:

(progn
  (describe-buffer-bindings (current-buffer))
  (require 'comp)
  (make-comp-data-container))

I get

#s(comp-data-container nil #s(hash-table test tab-bar--auto-width-hash-test))

In place of the expected

#s(comp-data-container nil #s(hash-table test comp-imm-equal-test))

Adding Mattias in Cc.

Thanks

  Andrea