[pypy-dev] scheme interpreter [status report]

Jakub Gustak jgustak at gmail.com
Thu Jul 26 19:37:59 CEST 2007


Some more info.

> We have working simple macros. They are hygienic and referentially transparent.

r5rs states that if macro introduces new binding, it should be renamed
to avoid conflicts with other identifiers. In our case we create
syntactic closure like described in:
http://people.csail.mit.edu/people/jhbrown/scheme/macroslides04.pdf

ExecutionContext.sput() (creating new binding) checks if it deals with
syntactic closure or not, and depending on that binds location in
proper context.

W_Transformer can be called with quoted expression as argument, then
appropriate template will expand and then expanded expression will be
evaluated.

This way of evaluation will surely cause problems with recursive
macros, so it is not recommended.
__
Jakub



More information about the Pypy-dev mailing list