10 Dec 2009 chalst   » (Master)

Guile's eval
wingo posts a meta-circular evaluator for Guile. I've not time now, but I want to take a closer look at the code.

I have two thoughts about eval for guile:

  1. It can be good to write the target scheme in such a way that it can allocate all of its closures on the stack, as scheme48->prescheme does. This is a nontrivial transformation, but it means that (i) you don't need to worry about TCO, since tail calls are achieved by popping the stack, and so (ii) you can use pretty, dimwitted ceval-like code without trouble, and (iii) it's a stretch to call this an interpreter, but since you only need source-to-source transformation, it's higher level than what we usually mean by compilation. Dan Friedman has written up some relevant stuff on the transformations needed to do this.
  2. More generally, is there any interest in rearchitecting the elisp bytecode so that it fits the Guile VM?
Cf. let's bytecode it!: message by wingo to guile-devel, April 2008.

Latest blog entries     Older blog entries

New Advogato Features

FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!