Posted by: leppie | August 2, 2007

IronLisp progress

I have made quite remarkable progress in the last week or so. So far I have implemented most of LSharp’s defined functions and language constructs, and have added a few.


  • Some functions
  • Macro support
  • Closure support
  • Tests


  • Simple class support
  • Compilation & Source level step debugging


  • No Cons class, IEnumerable replaces it

Here is a sample of some working code:

(defclass foo
  (= arg (prl "in ctr")) ;define field with init expression
  (= bar (fn (a) (prl a )) ) ;define method taking 1 arg

(= myfoo (new foo)) ;init new foo

(bar myfoo "hello world") ;call
(prl ?) ;print previous result
(prl (arg myfoo)) ;print myfoo.arg


  1. Hey leppie,

    I’m not a Lisp programmer, but I’ve been trying to learn Erlang for the past 2 weeks.

    I’d like to attempt (and I truly mean “attempt”) to implement IronErlang.

    It think it would be awesome, not to mention easier for this functional programming newbie, if I tried to implement it side-by-side with IronLisp.

    Anyway, just wanted to say nice work, and I can’t wait to see IronLisp grow.

    *Patiently watches for signs of IronLisp source code*


  2. Hey leppie.

    I have question.. if you do this:
    (defclass foo1
    (= bar (fn (a) (prl a )) ) ;define method taking 1 arg

    (defclass foo2
    (= bar (fn (a) (prl a )) ) ;define method taking 1 arg

    (defun bar (x) (prl x))

    How do you resolve the correct method?

  3. I havent got around to that yet 🙂 But the ‘rule’ states the following order:

    – local scope
    – parent scope
    – global scope

    The DLR does offer complete scope control, I just havent got around to using it properly.

    At the moment, I am focusing more on the actual IL output (which is really impressive), trying to minimize runtime interpreted code.

  4. Excellent – I look forward to monkeying around with it!

  5. This is great news. Are you going to open the project up to other developers? I would love to start working with the source code to see how you are using the DLR.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s


%d bloggers like this: