I've been working on a new model of macros for Racket. The new model
provides a simple account of scope, makes reasoning about macros
easier, and simplifies the implementation of the macro expander while
fixing bugs (e.g., submodules in Typed Racket).

You can read more about the model here:

  http://www.cs.utah.edu/~mflatt/scope-sets-5/

Section 3 includes a download link and a report on how current packages
fare with the new expander:

  http://www.cs.utah.edu/~mflatt/scope-sets-5/implementation.html

As that report shows, most libraries and packages work as-is, but not
all of them work --- and that's counting only code that's registered at
the package catalog.

Unfortunately, we can't support multiple macro languages and keep all
old libraries working unmodified. The change is at the level of syntax
objects and scope representation, which is part of the foundation for
supporting multiple languages, and all Racket languages have to agree
on that part.

Although my experience with the new expander has been positive, I don't
think anyone else has worked with it seriously, yet. Give it a try if
you have time. Otherwise, be prepared for me to come back in a few
weeks and lobby for moving to a new macro expander.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to