Sunday, July 29, 2007

Back from Vacation and Names

Most of last week I was on vacation. The rest of the week, I've spent a little time digging into ToyScript and filling out the framework I'll need for implementing lisp on the DLR. More about that later. I've temporarily decided to call this project SiliconLisp. This roughly follows the convention of naming dynamic languages for the CLR as Iron-. I've just changed the element it's made out of. Actually, I was originally going to call it CarbonLisp, but I didn't want to confuse this with the Mac windowing library Carbon. I may go with CarbonLisp anyway. If you have a suggestion for the name, please leave me a comment.


geekiac said...

What happened to SiliconLisp? I wonder how difficult it would be to port Clojure to the DLR?

Eric Rochester said...

SiliconLisp is still around, except I've gone back to calling it CarbonLisp. I haven't made a lot of progress on it, though. I blame that partially on Clojure ;). And I'm up in the air about whether CarbonLisp will target the DLR or compile directly to the CLR.

Clojure on the DLR? I've thought about it some. Rick originally was targetting both Java and .NET.

The primary thing that's kept me from actually doing anything about Clojure on .NET is that the Java implementation is still pretty new. I'd wait for the original to be a little more mature before I started a forked implemented.

It is an interesting thought, though....

claus_brod said...

BTW, there are/were quite a number of attempts to build Lisp on top of the CLR or DLR - I'm trying to keep track of them at

While my personal favorite is a standards-compliant Common Lisp on top of the CLR, Clojure on the CLR/DLR is also quite an attractive idea, indeed!

Do you plan on making CarbonLisp a (subset of) Common Lisp? Would it always compile code before executing it, or also run in interpreter fashion?

Eric Rochester said...

I haven't played with it a lot, and people on the Clojure mailing list have recently complained that it's substantially slower than the JVM version, but I've run Clojure on .NET with ikvm.

My goal with CarbonLisp was for it be a standards-compliant Common Lisp. Eventually, I wanted to support a full range of execution modes: interpreted, compiled a la Common Lisp, and compiled a la .NET (to assemblies). At some point, I wanted to have some way to generate an assembly from an ASDF package.

Big plans. It's easy to get overwhelmed. ;)