Thanks for the link Matt. I think I read it a long time ago. I care mostly about syntax-rules, because that's what you will find more often when using
I wonder how does Riaxpander perform regarding:
- error reporting. Does it give useful information for the macro developer / macro user?
- you say it compiles macros; does this mean that loading a module that contained syntax-rules-defined macros, it will then expand any code using them?
I forgot to CC the thread. This was the conversation:
> Well,
> That's a big question!
> I'm no expert on macro expansion, but from my reading I understand the following:
> Psyntax is Dyvbig's r6rs macro expander coup d'etat. It provides the implementation of syntax-case for r6rs from chez scheme. Use of this expander effectively turns any scheme into a dialect of Chez. It is also a large implementation, I'm not aware of how it is implemented internally.
> Riaxpander is a syntactic closure / explicit renaming expander that has support for syntax-rules by expressing syntax-rules in terms of the simpler expanders. It is conceptually most similar to blackhole, which is also a syntactic closure / explicit renaming expander that has a macro system and build system incorporated.
> Alexpander is an implementation of syntax-rules in r5rs - simple.
> If you're interested in more detail without having your mind blown reading source, Alex Shinn wrote an excellent comparative analysis in this thread:
> > Very nice! Thanks Matt
> > What are the main differences between this expander and Psyntax or Alexpander?