Subject: bug#46256: [feature/native-comp] AOT eln files ignored if run from build tree

From: Andrea Corallo <[email-masked]>
Date: Sat, 06 Mar 2021 19:31:44 +0000

Andy Moreton <[email-masked]> writes:

> On Sat 06 Mar 2021, Eli Zaretskii wrote:
>
>>> From: Andy Moreton <[email-masked]>
>>> Date: Sat, 06 Mar 2021 12:09:30 +0000
>>> 
>>> >> Thus the ABI hash should also include `system-configuration-features'.
>>> >
>>> > Which of the features you think might affect the ABI?  I reviewed them
>>> > a couple of days ago and didn't find any I could convince myself
>>> > should affect that, but maybe I missed something.
>>> 
>>> As a reasonably recent example, adding bignum support by default added
>>> "GMP" to `system-configuration-features' when rebuilding after pulling
>>> upstream changes, without the user changing the configure command line
>>> saved in `system-configuration-options'.
>>
>> AFAIU, such changes only affect *.eln files if we add new primitives
>> to Emacs or change existing primitives, and those changes are already
>> captured by the ABI hash.  Right?
>
> Perhaps you are right, but we need some input from Andrea on whether
> these changes affect the ABI.

Eli is correct.  I think we can define the ABI as:

1- the list of all primitives and their signatures.

2- the eln load mechanism we implement.

3- low level details of how Lisp objects are represented in case these
   are directly manipulated by opencoded code (ATM integer and conses).

1 is accounted automatically in the `comp-abi-hash' computation.  For 2
and 3 we are responsible to manually bump a new `comp-abi-hash'
(leveraging ABI_VERSION).  So yeah I think we should be fine ATM.

Thanks

  Andrea