Emacs should be Emacs Lisp (esbel) is the idea that we should move as much as reasonable out of the C/Rust core and into lisp. This makes it easier inspect and modify the runtime. The only reason something should be in core is either
- Low level access - the core needs access to memory layout, sys calls, and other details that should not be exposed to lisp.
- Abstraction level - the details in function could be exposed in lisp, but doing so would break an abstraction boundary and make it difficult to change the implementation later
- Performance - sometimes functions just need to be written in a low level language. Just because something runs faster in the core doesn’t automatically justify putting it there. The performance of the function must be bottleneck.
- car-less-than-car
- regexp-quote
- mapcan