[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Emacs Lisp revived
From: |
Daniel Kraft |
Subject: |
Emacs Lisp revived |
Date: |
Tue, 09 Jun 2009 22:07:30 +0200 |
User-agent: |
Thunderbird 2.0.0.0 (X11/20070425) |
Hi all,
I finally started real work on implementing the elisp compiler and just
pushed a first start-off code to branch elisp. It is however not yet
usable for anything, but also already has some very few things done.
Some important points I'd like to mention and welcome comments:
1) In implementing all those special forms like progn, prog1, if, while,
... I think it is best to translate a basic set directly to TreeIL via
the compiler, but also implement some (where that's reasonably possible)
simply as elisp macros (or even some things as functions). What do you
think about this plan?
2) It seems that elisp uses nil as false value (and does not have a
dedicated false); so the question raises, should be then always use #f
for nil, or maybe TreeIL's void? But some experiments show that void is
rather interpreted as true:
tree-il@(guile-user)> (if (void) (const 1) (const 2))
1
scheme@(guile-user)> (if (if #f 0) 1 2)
1
Not related, but I came across it: (if (begin) 1 2) gives an error,
don't know if that's expected.
I think I remember already reading some discussion about this topic in
general for Guile's elisp support; so what should we do here? My code
so far uses #f as nil, BTW.
3) I still haven't got building lexical constructs in TreeIL working
(and I figure that named-lets for compiling the while-construct are even
more interesting), but will hopefully manage to do so soon...
Yours,
Daniel
- Emacs Lisp revived,
Daniel Kraft <=