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.

Missing:

  • Some functions
  • Macro support
  • Closure support
  • Tests

New:

  • Simple class support
  • Compilation & Source level step debugging

Different:

  • 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 myfoo.bar()
(prl ?) ;print previous result
(prl (arg myfoo)) ;print myfoo.arg
Advertisements

Responses

  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 xacc.wordpress.com for signs of IronLisp source code*

    Goodluck!

  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:

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s

Categories

%d bloggers like this: