Emacs finally met Haskell
I've thought that "Emacs is an angel, EmacsLisp is an evil, though." It's dirty and I hate it personally. Who should be the next to the angel? Of course, it's Haskell!
Haskell and C have a high affinity each other. It's easy to call C code from Haskell and vice versa. So we might be able to write extensions in Haskell using C functions as interfaces.
To accomplish my goal below, I decided to bring uemacs as its base, cause it's a minimal Emacs and seemed easier to customize than GNU Emacs the hell.
- Extent Emacs with Haskell
- Get rid of all legacy code and bring modern atmosphere
There's no specific way of implementation. However, there're some references which might help us:
Reference | Description |
---|---|
emacs.c | An entrypoint. |
lisp.h | Fundamental definitions for GNU Emacs Lisp interpreter. |
lread.h | Lisp parsing and input streams. |
cmds.h | Simple built-in editing commands. |
eval.c | Evaluator for GNU Emacs Lisp interpreter. |
Reference | Description |
---|---|
main.c | An entrypoint. |
eval.c | Evaluator for .emacsrc . |
names.c | Name to function binding table. I intend to provide these functions for Haskell and use them in extensions. |
startup | execute the startup file |
dofile | yank a file into a buffer and execute it |
dobuf | execute the contents of the buffer pointed to by the passed BP |
Any contributions are welcomed. The author is not a Haskell professional so please give me any advice. Also, he's not a native English tongue. Supports like profreding are also appreciated.