Porting Emacs to CL Attempts
This page is not for emacsen and half-emacs clones, but attempts trying to exactly porting Emacs to CL
Attempts
- hemlocks's elisp attempt
- clocc's elisp attempt
- pupcraft's elisp attempt
- Lessons learned:
- 1. The development of emacs mirrors the complexity of the development of the modern computer. Thus, hacks to enable extremely low baud rate, C macros sprinkled everywhere to enable "efficiency" when C compilers did not support inlining, and lovecraftian x windows support.
- 2. The emacs community does not really care about the benefits of emacs being written in CL.
- 3. Common Lisp users rely heavily on Emacs + Slime. Common Lisp Users would love emacs to be written in CL, but the emacs community at large couldn't care less. in fact, Richard Stallman actively hates Common Lisp users due to their association with Symbolics. This is a systematic force slowly killing off Common Lisp users.
- 4. Emacs is an absolute beast, and porting directly in one go to CL would be impossible. Therefore the seemingly only way to port Emacs directly is to embed ECL (embeddable common lisp) in Emacs and incrementally compile the emacs C source code from C into Common Lisp via ECL and a custom C macro parser/compiler, gradually replacing all the C functions with ECL callbacks written in Common Lisp. This is where the project gives up. Writing a custom C macro parser and interpreter, C refactoring tool, a lisp to pycparser bridge, and standards-compliant Common Lisp runtime for ANSI C and related standard libraries in order to run Emacs in Common Lisp seems to be the correct solution, but it was just too hard. Maybe a future soul will find this knowledge useful, but they would have to be incredibly strong and capable.
Related links