update 28 native full aot in root folder; remove cruft
update emacs src archive for with-native-comp
freshen with-native-comp folder from emacs-28 branch
Dumping ground for my builds of Emacs for windows.
Thanks for for your support in testing emacs-28 (and these packages for Windows, especially)!
All of the builds distributed here now include some type of support for native compilation, either when libgccjit and gcc are findable on your system or (for distributed libraries) using pre-compiled (Aleady JITed) versions which are included.
The with-native-compilation folder mirrors the files as you will find them on GNU's "alpha" FTP site. See README-windows-binaries for more information on the files included with Emacs binary release packages for Windows.
I use this repository to distribute the binaries to testing environments. This means that, while I'm working on packaging a new version (e.g. when we come to pretest #2), the the files in the "with-native-compilation" folder may new and unsusual bugs compared to those you find published at alpha.gnu.org
. Also, files will appear here slightly before they are pushed to GNU FTP sites.
In order for native compilation to function in a "Just In Time" (JIT) manner, you must have a working MSYS instalation with libgccjit
and gcc
installed. Additionally, you need to place the MSYS bin folder (for me C:\msys2\mingw64\bin
) in your windows PATH
before starting Emacs. As an alternative to fiddling with PATH
, I'm told it works to copy libgccjit
to your Emacs bin
folder.
It is possible, however, to load and run "pre-natively compiled" verions. Emacs will select and load a ELC file if one is available, or will otherwise load byte-code (if that is available), or else load the source EL file. This is true even when Emacs cannot generate new natively compiled packages.
The "root" folder of this repository contains nearly the same set of installer/zip/executables as above. However, these were created with the NATIVE_FULL_AOT=1
option to make
, enabling creation of pre-natively compiled (ELN) files for all of the provided elisp packages.
The patch applied to the "nt" build scripts is also available, as is a build log and snapshots of Emacs and dependancy (MinGW64 package) sources. The file signing.log.asc
contains sha1 sums and other information to help verify the authenticity of copies.
If you redistribute these binaries please take care to also re-share the Emacs and dependancy sources (emacs-28-*src.zip
) and otherwise comply with the terms of the GPL.
I've recently added an emacs-29 folder created from the Emacs master branch. This too includes support for native-comp (again, assuming a working MSYS2 install with it's bin folder in the windows path).
I have stopped creating any binaries with support for native compilation disabled.
I've created a blog post describing the process I'm following. This is s stepping stone toward patching the related documentation (and perhaps, eventually, the process).
You can retreive my PGP public key from Savannah, here:
https://savannah.nongnu.org/people/viewgpg.php?user_id=191776
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.