emacs 28.1-2 (64-bit only, TEST)
Sat Apr 16 14:31:51 GMT 2022
The following packages have been uploaded to the Cygwin distribution as test
Emacs is a powerful, customizable, self-documenting, modeless text editor.
Emacs contains special code editing features, a scripting language (elisp), and
the capability to read mail, news, and more without leaving the editor.
This is the same as emacs-28.1-1, but it is built with the native compilation
feature (explained below). If you want to test this, create a file
with one line, which is the absolute path to ~/.emacs.d/eln-cache. For example,
on my system I have:
$ cat /var/lib/rebase/userpath.d/kbrown
If more than one user will be using Emacs on your system, create a file like
this for each user.
Here is a brief explanation of native compilation:
Many of the editing commands used in Emacs are defined in elisp libraries (*.el
files). To make Emacs run faster, these libraries are usually compiled to
architecture-independent *.elc files, containing "byte-code" representations of
the functions in the original files. These byte-code functions are interpreted
by the Emacs "byte-code interpreter" when they are called.
Native compilation takes this one step further by using gcc to compile the elisp
libraries to native shared libraries (like DLLs, but with an extension .eln
instead of .dll). This results in a substantial speed-up of Emacs.
Some of the .eln files are created at build time. These are installed in a
subdirectory of /usr/lib/emacs/<version>/native-lisp. Others are created as
needed and are stored by default in a subdirectory of ~/.emacs.d/eln-cache.
(You can change this default, but then you also have to make the corresponding
change to /var/lib/rebase/userpath.d/<username>.)
The first few times you run Emacs, it might seem slow to start. This is because
it is compiling the elisp libraries that are needed for your init file (usually
.emacs). For the same reason, you might see occasional pauses the first time
you use a command. But otherwise you should see a noticeable speed-up of Emacs.
To prevent fork failures, the .eln files need to be rebased occasionally, for
the reasons explained here:
This is handled by autorebase every time you run setup (which you should do with
no Cygwin processes running). But it is not currently done when new .eln files
are created. If you ever see a fork failure whose error message refers to a
.eln file, you should be able to fix it by exiting emacs and issuing the command
find ~/.emacs.d/eln-cache -name '*.eln' | rebase -O -T -
provided you have created the file /var/lib/rebase/userpath.d/<username> as
instructed above. Alternatively, stop all Cygwin processes and run setup.
I don't expect this to happen often, but please make a bug report to the mailing
list if it does happen. I'd also like to get feedback from people who try the
test release for a month or so and don't have any rebase problems.
More information about the Cygwin-announce