GithubHelp home page GithubHelp logo

kiennq / commercial-emacs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from commercial-emacs/commercial-emacs

0.0 1.0 0.0 283.2 MB

"Evil will always triumph, because good is dumb." -- Spaceballs (1987)

Home Page: https://shmelpa.commandlinesystems.com

License: GNU General Public License v3.0

Shell 0.19% JavaScript 0.08% Ruby 0.11% C++ 0.62% Scheme 0.01% Python 0.06% Perl 0.15% C 21.28% PHP 0.04% Emacs Lisp 76.37% Erlang 0.01% Objective-C 0.85% Java 0.01% Lua 0.01% Smalltalk 0.06% Fortran 0.01% Tcl 0.01% Go 0.01% Ada 0.05% Prolog 0.09%

commercial-emacs's Introduction

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

โ€” 2021 Maintainer of GNU Emacs, who then proceeded to keep talking.

Frequently Anticipated Questions

Why?

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

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?

  1. Install Rust library:
git clone --depth 1 --branch 0.6.3alpha6 \
  https://github.com/commercial-emacs/tree-sitter.git
make -C tree-sitter install
  1. Upon success the user is instructed to update PKG_CONFIG_PATH in his shell rc file.

  2. Start a new shell and 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. โ†ฉ

commercial-emacs's People

Contributors

acinnes avatar albinus avatar andreacorallo avatar andreas-schwab avatar belanger avatar dgutov avatar dmantipov avatar drmirror avatar eggert avatar eli-zaretskii avatar jave avatar joaotavora avatar larsmagne avatar lektu avatar leoliu avatar link0ff avatar loveshack avatar mattiase avatar mituharu avatar monnier avatar npostavs avatar paveljanik avatar phst avatar rgmorris avatar sam-s avatar skangas avatar snogglethorpe avatar tsdh avatar wohler avatar yamaoka avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.