[pypy-dev] scheme interpreter [status report]

Jakub Gustak jgustak at gmail.com
Fri Jul 20 11:39:28 CEST 2007


What's on with scheme interpreter:

Nice progress during post EuroPython sprint, see:
http://codespeak.net/pipermail/pypy-dev/2007q3/003919.html

And after the sprint:

(define (fun <args>) <body>) syntactic sugar added to lambda definitions.

(begin ...), (letrec ...) added. This leads to small changes in ExecutionContext

(set-car! <pair>), (set-cdr! <pair>) added. Careful, it is possible to
create circural list, and crash interpreter when it will try to
display such list.

Added quasi-quotations. Code is not so straightforward. Maybe it can
be done differently.

W_Identifier and W_Symbol are now W_Symbol.
All symbols are created by symbol(name) function, which stores all
symbols in global W_Symbol.obarray dictionary or returns existing one.
It makes comparing symbols trivial.


Next step is to implement macros.

There was also plan to move some some of the syntax checking to parser:
e.g. (if test then else) to get parsed directly to MacroIf(test, then, else).
The problem is, that this syntax can change in scheme on runtime:
e.g. (define if #t)
so it doesn't make much sense.

And later adding main primitive procedures will make scheme
interpreter quite usable.

Cheers,
Jakub



More information about the Pypy-dev mailing list