|
From: | Nicolas Bértolo |
Subject: | bug#41242: Port feature/native-comp to Windows - Determine the emacs root dir... |
Date: | Sat, 30 May 2020 10:23:55 -0300 |
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. - 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. - 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. - 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(). Thanks, Nico.
0001-Determine-the-emacs-root-dir-only-when-necessary.patch
Description: Binary data
0002-Do-not-call-gensym-too-early-when-loading-a-dump-fil.patch
Description: Binary data
0003-Fix-loading-of-libgccjit.dll-while-dumping-in-Window.patch
Description: Binary data
0004-Use-Windows-allocation-APIs-for-delayed_comp_unit_di.patch
Description: Binary data
[Prev in Thread] | Current Thread | [Next in Thread] |