summaryrefslogtreecommitdiff
path: root/module/language/ecmascript/compile-ghil.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-02-21 20:07:57 +0100
committerAndy Wingo <wingo@pobox.com>2009-02-21 20:28:29 +0100
commitaec8febc4621e87d9c3c1a10341ead00f784ff7f (patch)
tree3e414df090af0515c9a642b08503f62253e7c34b /module/language/ecmascript/compile-ghil.scm
parent594d9d4c482d91ccfbc474ec193baadde6ab11f7 (diff)
downloadguile-aec8febc4621e87d9c3c1a10341ead00f784ff7f.tar.gz
compile ecmascript's parser. yay! instant load-time!
* module/language/ghil/compile-glil.scm (codegen): If there are more than 255 arguments, make a list and use apply instead of calling directly. * module/language/Makefile.am: Now we can compile parse.scm. Yay! * module/language/scheme/compile-ghil.scm: Add a note. * module/language/ecmascript/compile-ghil.scm: Add a note.
Diffstat (limited to 'module/language/ecmascript/compile-ghil.scm')
-rw-r--r--module/language/ecmascript/compile-ghil.scm2
1 files changed, 2 insertions, 0 deletions
diff --git a/module/language/ecmascript/compile-ghil.scm b/module/language/ecmascript/compile-ghil.scm
index e6c590096..a1aa11a68 100644
--- a/module/language/ecmascript/compile-ghil.scm
+++ b/module/language/ecmascript/compile-ghil.scm
@@ -46,6 +46,8 @@
(@implv ,e ,l ,sym)
,args))
+;; The purpose, you ask? To avoid non-tail recursion when expanding a
+;; long pmatch sequence.
(define-macro (ormatch x . clauses)
(let ((X (gensym)))
`(let ((,X ,x))