3

GitHub - commercial-emacs/commercial-emacs: "Evil will always triumph, beca...

 1 year ago
source link: https://github.com/commercial-emacs/commercial-emacs
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Talking never moves anything in Emacs, never did, never will.

— 2021 Maintainer of GNU Emacs, who then proceeded to keep talking.

Frequently Anticipated Questions

This is the oft ideated, never sublimated "forge" repository for emacs. As it is hosted on a site using non-free software, the work herein is not the official GNU Emacs source, and does not entreat the FSF to enforce its license.

How to build?

git clone https://github.com/commercial-emacs/commercial-emacs.git
cd commercial-emacs
./autogen.sh
./configure --prefix=$HOME/.local
make -j4
src/emacs

The make logic remains broken in the sense that frequently, incompatible artifacts from a previous build do not get rebuilt. Preceding the above with,

git clean -dfX

rebuilds from scratch.

How often are you merging commits from GNU?

Roughly every hour.

How has the code diverged thus far?

How can I try tree-sitter highlighting?

Install Rust library:

git clone --depth 1 --branch 0.6.3alpha5 \
  https://github.com/commercial-emacs/tree-sitter.git
make -C tree-sitter install
pkg-config --exact-version=0.6.3alpha5 tree-sitter || echo not found

Then build emacs:

./autogen.sh
./configure --prefix=$HOME/.local --with-tree-sitter
make -j4
ldd src/emacs | grep -q tree-sitter || echo not found
make test/src/tree-sitter-tests
src/emacs -Q --eval \
  "(custom-set-variables '(font-lock-support-mode 'tree-sitter-lock-mode))" \
  --visit src/xdisp.c

What is a moving garbage collector?

Moving collectors relocate Lisp values in memory, in contrast to the GNU Emacs collector, which upon allocating say a cons cell, will let it remain at its birth address in perpetuity.

GNU Emacs's non-moving collector has been unfairly maligned as antiquated, generally by undergraduates who just implemented a toy moving collector for their PL class. They might be surprised to know that the Boehm paper on which Emacs's collector is based was published twenty years after Cheney's paper on moving collection.

But one thing moving collectors can do that non-moving ones can't is generational sequestration, that is, keeping the youngest cohort of Lisp values separated from older ones. This allows fast, intermediary cycles which only scan the "nursery" generation (the rationale being old objects are very likely to still be referenced). A non-moving collector must traverse the full set on each cycle since its allocations are interleaved. This is why Emacs bros are as eager to raise collection thresholds as motherboard jockeys are to overclock their BIOS.

Isn't this xemacs all over again?

Ah, but if it could reach those heights. If by some miracle it did, the choices for the FSF are the same as before: enlist RMS to embark on a coding frenzy that achieves feature parity, grant myself commit rights, or continue not noticing me. If my history of user acquisition is any indication, the last outcome is most likely.

[1] By Yuan Fu and oldosfan.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK