1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-11 22:31:12 +02:00
guile/module/language/elisp
Daniel Kraft 33da12eeff Added guile-ref extension construct, change throw implementation to easier one using a built-in function and implement unwind-protect.
* 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.
2009-07-22 12:50:56 +02:00
..
runtime Added guile-ref extension construct, change throw implementation to easier one using a built-in function and implement unwind-protect. 2009-07-22 12:50:56 +02:00
bindings.scm Don't ensure fluids all over the place but scan for variables needed and ensure just before the compiled code all those. 2009-07-21 16:45:10 +02:00
compile-tree-il.scm Added guile-ref extension construct, change throw implementation to easier one using a built-in function and implement unwind-protect. 2009-07-22 12:50:56 +02:00
README Added guile-ref extension construct, change throw implementation to easier one using a built-in function and implement unwind-protect. 2009-07-22 12:50:56 +02:00
runtime.scm Implemented some important list built-ins. 2009-07-18 20:10:24 +02:00
spec.scm Merge branch 'master' of git://git.savannah.gnu.org/guile into elisp 2009-06-27 20:07:11 +02:00

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