mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-11 22:31:12 +02:00
* module/language/elisp/README: Document the changes. * module/language/elisp/compile-tree-il.scm: Implement unwind-protect. * module/language/elisp/runtime/function-slot.scm: throw as built-in. * test-suite/tests/elisp-compiler.test: Test unwind-protect. |
||
---|---|---|
.. | ||
runtime | ||
bindings.scm | ||
compile-tree-il.scm | ||
README | ||
runtime.scm | ||
spec.scm |
Guile's Emacs Lisp compiler =========================== This is more or less a lot of work in progress. Here are some notes as well as status information. Already implemented: * progn, prog1, prog2 * if, cond, when, unless * not, and, or * referencing and setting (setq) variables * while, dotimes, dolist * catch, throw, unwind-protect * let, let* * lambda expressions, function calls using list notation * some built-ins (mainly numbers/arithmetic) * defconst, defvar, defun * macros * quotation and backquotation with unquote/unquote-splicing Especially still missing: * real elisp reader instead of Scheme's * set, makunbound, boundp functions * more general built-ins * funcall and apply functions * fset & friends, defalias functions * advice? * defsubst and inlining * need fluids for function bindings? * recursive macros * anonymous macros Other ideas and things to think about: * %nil vs. #f/'() handling in Guile * flet, lexical-let and/or optional lexical binding as extensions Extensions over original elisp: * (guile-ref module symbol) construct to build a (@ module symbol) from elisp