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

reply via email to



[Prev in Thread] Current Thread [Next in Thread]