guile-devel
[Top][All Lists]
Advanced

[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





reply via email to

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