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

From: Andrea Corallo <[email-masked]>
Date: Fri, 05 Mar 2021 22:25:17 +0000

Eli Zaretskii <[email-masked]> writes:

>> From: Andrea Corallo <[email-masked]>
>> Cc: [email-masked], [email-masked]
>> Date: Fri, 05 Mar 2021 19:22:34 +0000
>> 
>> Eli Zaretskii <[email-masked]> writes:
>> 
>> > Where do I find instructions to create a reproducer?
>> 
>> What we have as a doc is directly in the docstring of
>> `comp-libgccjit-reproducer', I guess we could improve it.
>> 
>> Essentially having it bound to t while compiling produces a C file
>> deposed where the .eln target directory.
>> 
>> This file ELNFILENAME_libgccjit_repro.c can be just compiled linking
>> against libgccjit to obtain the reproducer.
>> 
>> libgccjit should never segfault so if this crashes is clearly a bug.
>
> Thanks, will do.
>
> One more question: does our code arrange for libgccjit to free
> heap-allocated buffers that Emacs allocates, or vice versa (libgccjit
> allocates memory that Emacs then frees)?

No, in libgccjit we always copy the input buffers as soon as they are
passed, and only these copies are used and handled inside libgccjit
afterwards.

> And do we arrange for any
> callbacks from libgccjit, i.e. does libgccjit call functions
> implemented in Emacs?

No, libgccjit does not offer callbacks at its interface, all is simply
syncronous.

For these two reasons the reproducer (if produced) is typically a good
reproducer to debug in isolation any libgccjit issue.

Thanks

  Andrea