Daniel Kraft
fb66a47a8e
Implemented prog1, prog2, dotimes, dolist control structures.
...
* module/language/elisp/README: Document it and some further ideas written down.
* module/language/elisp/compile-tree-il.scm: Implement prog1, dolist.
* module/language/elisp/runtime/macro-slot.scm: prog2 and dotimes.
* test-suite/tests/elisp-compiler.test: Test prog1, prog2, dotimes, dolist.
2009-07-20 20:52:00 +02:00
Daniel Kraft
570c12aca7
Return correct value for setq form.
...
* module/language/elisp/compile-tree-il.scm: Fix implementation of setq.
* test-suite/tests/elisp-compiler.test: Check for value of setq form.
2009-07-18 17:58:01 +02:00
Daniel Kraft
9b5ff6a6e1
Implemented real quotation (added support for backquotation).
...
* module/language/elisp/README: Document that.
* module/language/elisp/compile-tree-il.scm: Implement backquote.
* test-suite/tests/elisp-compiler.test: Test quotation and backquotes.
2009-07-18 17:32:59 +02:00
Daniel Kraft
74c009dadc
Implemented macros in elisp compiler.
...
* module/language/elisp/README: Document it.
* module/language/elisp/compile-tree-il.scm: Implement defmacro and expansion.
* module/language/elisp/runtime/macro-slot.scm: New module to keep definitions.
* test-suite/Makefile.am: Add elisp-compiler.test to list of tests.
* test-suite/tests/elisp-compiler.test: Basic macro tests.
2009-07-16 15:23:38 +02:00
Daniel Kraft
de9f26b5f0
Implemented defconst, defvar, defun special forms for elisp.
...
* module/language/elisp/README: Document this.
* module/language/elisp/compile-tree-il.scm: Implement defconst/defvar/defun.
2009-07-14 21:18:07 +02:00
Daniel Kraft
1e018f6c67
Some bug fixes on the way and mainly implemented some built-ins (arithmetic).
...
* module/language/elisp/README: Document changes.
* module/language/elisp/compile-tree-il.scm: Bug fixes to fluid-creation.
* module/language/elisp/runtime.scm: Some helping definitions for built-ins.
* module/language/elisp/runtime/function-slot.scm: Defined artihmetic built-ins.
2009-07-13 18:35:57 +02:00
Daniel Kraft
f28de79197
Automatically create fluids when necessary.
...
* module/language/elisp/README: Document that.
* module/language/elisp/compile-tree-il.scm: Create fluids when necessary.
* module/language/elisp/runtime/function-slot.scm: Fix module name.
2009-07-13 17:26:07 +02:00
Daniel Kraft
cef997e82a
Fixed lambda expressions and implemented function calls using the basic list notation.
...
* module/language/elisp/README: Document that.
* module/language/elisp/compile-tree-il.scm: Implement function calls.
2009-07-13 16:51:05 +02:00
Daniel Kraft
50abfe7649
Lambda expressions in elisp, but not yet function calls.
...
* module/language/elisp/README: Document this.
* module/language/elisp/compile-tree-il.scm: Implement lambda expressions.
2009-07-13 15:43:53 +02:00
Daniel Kraft
3a4b86357e
Implemented let and let* in elisp.
...
* module/language/elisp/README: Document it.
* module/language/elisp/compile-tree-il.scm: Implement let and let*.
2009-07-07 19:38:25 +02:00
Daniel Kraft
d221c18bc0
Implemented while construct in elisp.
...
* module/language/elisp/README: Document this.
* module/language/elisp/compile-tree-il.scm: Implement while construct.
2009-07-07 17:26:22 +02:00
Daniel Kraft
344927c3f8
Implemented fluid-based variable references and setting using setq.
...
* module/language/elisp/README: Document this.
* module/language/elisp/compile-tree-il.scm: Implement variable references, setq
* module/language/elisp/runtime.scm: New file for runtime definitions.
* module/language/elisp/runtime/function-slot.scm: Ditto.
* module/language/elisp/runtime/value-slot.scm: Ditto.
2009-07-03 23:00:12 +02:00
Daniel Kraft
fdfb36de84
Implemented elisp's or form.
...
* module/language/elisp/README: Document this.
* module/language/elisp/compile-tree-il.scm: Implement or.
2009-07-02 21:22:25 +02:00
Daniel Kraft
a431673924
For elisp's (cond ...) and (condition) forms without body, return the condition as value.
...
* compile-tree-il.scm: Fix compilation of (cond ...) for bodyless conditions.
2009-07-02 21:10:38 +02:00
Daniel Kraft
4530432e01
Added make-nil instruction to VM and use it for Emacs' nil in the compiler.
...
* doc/ref/vm.texi: Document new instruction.
* libguile/vm-i-system.c: Add it to the VM.
* module/language/assembly.scm: Compile (const %nil) to (make-nil) assembly.
* module/language/glil/decompile-assembly.scm: Handle (make-nil)
* module/language/elisp/compile-tree-il.scm: Use (const %nil) for nil.
2009-06-29 13:16:27 +02:00
Daniel Kraft
51248e6e25
First code for elisp compilation, handling a very limited set of operations (but not really usable yet).
...
* module/language/elisp/README: New file containing some notes.
* module/language/elisp/compile-tree-il.scm: New file with compilation code.
* module/language/elisp/spec.scm: Updated language definition.
2009-06-09 21:37:13 +02:00