mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-11 14:21:10 +02:00
|
||
---|---|---|
.. | ||
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 * set, symbol-value, makunbound, boundp functions * fset, symbol-function, fmakunbound, fboundp * 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 * more general built-ins * funcall and apply functions * advice? * defsubst and inlining * recursive macros * anonymous macros Other ideas and things to think about: * %nil vs. #f/'() handling in Guile * lexical-let and/or optional lexical binding as extensions * compiler options for all lexical binding, no void checks Extensions over original elisp: * (guile-ref module symbol) construct to build a (@ module symbol) from elisp * flet and flet*