Subject: Re: bug#41242: Port feature/native-comp to Windows - Determine the emacs root dir...

From: Andrea Corallo <[email-masked]>
Date: Sat, 30 May 2020 14:51:10 +0000

Nicolas Bértolo <[email-masked]> writes:

> I have found a few bugs in Windows.
> Patches attached (they are in my repo too).
>
> - It is still a good idea to avoid the call to getenv("emacs_dir"), if only for
>   performance reasons.

I guess this should then go into master right?  Probably also others
likes to review it, in case should not be discussed in this thread.

> - We can't use "gensym" for register_native_comp_unit() because the dynamic
>   library may not have been loaded yet when loading a dump file.

The code LGTM, I just think instead of make_fixum you could use make_int
to have some more room (not sure how much is realistic this scenario but
comes for free).

> - Commit `f5dceed09a8234548d5b3acb76d443569533cab9` "* lisp/loadup.el: Use new
>   'native-comp-available-p'." causes load_gccjit_if_necessary() to be called in
>   temacs. This didn't work because because term/w32-win.el had not been loaded
>   yet. In particular, we need `dynamic-library-alist` to be defined to know the
>   name of the libgccjit DLL. I have defined this in syms_of_emacs(). This
>   definition should be active only while dumping.

I'll look into.

> - This last bug is kinda confusing. I'm not sure about my diagnosis. The list
>   `delayed_comp_unit_disposal_list` has nodes allocated with xmalloc(). It seems
>   that these blocks allocated with xmalloc() get GC'd or they get corrupted
>   somehow and thus they don't survive until Emacs is about to close, which is
>   when we need the list. I solved it by allocating the data and nodes with
>   HeapAlloc().

I think this issue deserves to be precisely understood.

Thanks

  Andrea

-- 
[email-masked]