chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] alexpander egg


From: John Cowan
Subject: [Chicken-users] alexpander egg
Date: Mon, 19 Oct 2009 16:16:30 -0400
User-agent: Mutt/1.5.13 (2006-08-11)

I intend to port the alexpander egg to Chicken 4, or rather to port
alexpander to Chicken 4, because the new egg will be based on upstream
version 1.65 rather than 1.58.  Because there is no longer a macro
processing hook in Chicken 4, this egg will be strictly for run-time use,
for people who want to safely and correctly expand syntax-rules macros
in their own compilers or interpreters or other code walkers.

The result of alexpander expansion contains only variable references,
procedure calls, begin (without internal definitions), define (only the
simple form), delay, if, lambda (with only one body expression), LETREC
(with only one body expression), quote, and set!

Also, there are syntax-rules definitions of numerous non-R5RS macros.
I don't want to clutter up the module with these, so I'll make them
into a big quoted list and expose the list as extra-macros or the like.
If you want them, you can prepend them to the code to be expanded.

I currently intend only to support the entry points documented in the
source code (but not, unfortunately, in the egg):  alexpander-repl,
expand-program, expand-top-level-forms, and expand-top-level-forms!,
plus the utility procedures null-store and null-loc-n and the value
null-output.

If anyone has Chicken 3 programs that use alexpander at run time, and
require any other entry points to be exported, please let me know.

-- 
John Cowan    address@hidden    http://ccil.org/~cowan
Nobody expects the RESTifarian Inquisition!  Our chief weapon is
surprise ... surprise and tedium  ... tedium and surprise ....
Our two weapons are tedium and surprise ... and ruthless disregard
for unpleasant facts....  Our three weapons are tedium, surprise, and
ruthless disregard ... and an almost fanatical devotion to Roy Fielding....




reply via email to

[Prev in Thread] Current Thread [Next in Thread]