LFE History

Skip to first unread message

Duncan McGreggor

May 25, 2014, 10:37:53 PM5/25/14
to lisp-flavo...@googlegroups.com
Hey Robert,

I just added this section of the docs site:

At the very bottom, I mention that you'd been working on LFE since March of 2008, even though the first commit was in August. I thought I'd heard you say that before, but I can't remember ...

Is that correct?

Follow-up question: what was the initial impetus behind creating LFE? You mention in your blog post the following:

"Lisp has such a simple and powerful syntax so how could I not do it."

Was that a summary of your motivation (i.e., an interesting/fun problem)?



Robert Virding

May 28, 2014, 5:44:25 PM5/28/14
to lisp-flavo...@googlegroups.com
The earliest work is actually from 2007 but this was toying with parsing and implementing a lisp and was more a preamble to LFE. The real work with LFE didn't start until 2008. The earliest LFE files I can find are from March 2008. Originally I wasn't using github, or any other vcs for that matter, and just kept the separate versions as copies of the directory tree.

There were a number of reasons why I started with LFE:

- I was an old lisper and I was interested in implementing a lisp.
- I wanted to implement it in Erlang and see how a lisp that ran on, and together with, Erlang would look. A goal was always to make a lisp which was specially designed for running on the BEAM and able to fully interact with Erlang/OTP.
- I wanted to experiment with compiling another language on top of Erlang. So it was also an experiment in generating Core erlang and plugging it into the backend of the Erlang compiler.
- I was not working with programming/Erlang at the time so I was looking for some interesting programming projects that were not too large to do in my spare time.
- I like implementing languages.
- I also thought it would be a fun problem to solve. It contains many different parts and is quite open ended.

That's more or less it,


Duncan McGreggor

May 28, 2014, 5:58:48 PM5/28/14
to lisp-flavo...@googlegroups.com
This brought the hugest smile to my face, Robert -- thanks for sharing! What a great way to end the work day :-D

It makes me excited to get home and do some LFE. Any LFE :-)

Also: heads up on the twitterverse... in-coming tweets!


You received this message because you are subscribed to the Google Groups "Lisp Flavoured Erlang" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lisp-flavoured-e...@googlegroups.com.
To post to this group, send email to lisp-flavo...@googlegroups.com.
Visit this group at http://groups.google.com/group/lisp-flavoured-erlang.
For more options, visit https://groups.google.com/d/optout.

Duncan McGreggor

Jun 6, 2015, 6:00:22 PM6/6/15
to lisp-flavo...@googlegroups.com
Following up on this thread from last year, Robert just mentioned this tidbit on Hacker News (https://news.ycombinator.com/item?id=9666594):

" The "Flavoured" in the name comes from that I had earlier implemented a Lisp machines flavors system on another lisp, with an english spelling thrown in as a joke."

Tell us more, Robert! I have so many questions :-)

 * Were you using an LMI Lambda?
 * If it wasn't a Symbolics machine, then it probably wasn't ZetaLisp ... so you were using the Maclisp-derived Lisp for the Lambda?
 * Was there no OO add-on for the dialect you were using? (was this before Flavors had been ported to LML?)

This is like finding a long-lost cousin of LFE :-)


Robert Virding

Jun 7, 2015, 11:55:36 AM6/7/15
to lisp-flavo...@googlegroups.com, dun...@mcgreggor.org
No, it was other way around. I was using PSL (Portable Standard Lisp) from Utah which was quite a good lisp implementation running on UNIX, amongst other systems. I had heard about Flavors and thought it would be interesting, and fun, to see if I could implement it on PSL. I managed to get hold of the lisp-machine flavors documentation and got going.

Flavors was an extremely feature-filled system, someone had really gone to town with it. It had multiple inheritance, mix-in flavors, before and after handlers and wrapper macros. Also a set of rules describing which were to be called and when. It was wonderful. Fortunately Flavors had a few features which made it easier, for example there was an explicit 'send' function so I didn't need to hack PSL itself.

All in all it worked but I never really had a proper use-case. Unfortunately I think the code has disappeared, at least I haven't been able to find it. It would almost be doable on LFE except for updating object state, you would have to modify it to return the new object instead. Or use processes but then they may be a little heavy.

If anyone knows of a Lisp-machine for sale I am interested, seriously.

Reply all
Reply to author
0 new messages