[gambit-list] Riaxpander on Gambit

Álvaro Castro-Castilla alvaro.castro.castilla at gmail.com
Sun Jul 7 15:36:17 EDT 2013


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:

> https://lists.gnu.org/archive/html/chicken-users/2008-04/msg00013.html





> > Very nice! Thanks Matt

> > What are the main differences between this expander and Psyntax or
Alexpander?





        Álvaro Castro-Castilla    --    a at fourthbit.com
          Dedicated to the Craft of Software: Turning Ideas into Reality

 <http://fourthbit.com>



On Sat, Jul 6, 2013 at 7:16 AM, Matt Hastie <matthastie at gmail.com> wrote:

> Hello Gambit People,
>
> I've been hacking away at riaxpander, and now have it at the point where
> it runs in native gambit. It can compile Alex Shinn's matchable library and
> run the matchable unit tests - that's the net testing thus far!
>
> Credit here goes to Taylor R. Campbell, for creating such a very nice and
> powerful expander. My contribution was to:
>
> - extract riaxpander-gambit.scm from the tmp directory on Campbell's
> website,
> - vandalize the source to support case sensitivity (lower case all
> macrology patterns),
> - figure out the problems that prohibit gambit compile-file from working,
> - add some dark meat from the chicken to support loading of macros in
> compiled source, and
> - add a cond-expand classifier that works when syntax-case appears in a
> non-evaluated feature clause.
>
> Line numbers and decent error messages are inoperative at this time. I
> also haven't examined which scheme flavor the macrologies define. I'm not
> certain how much gambitism is there. My personal plan is to keep hacking
> away towards r7rs and/or a module system (r7rs define-library) ... but
> these are indeed lofty goals. I am already out of my depth, deep in the
> lambdas.
>
> Source code is in:
>
> https://github.com/matthastie/riaxpander
>
> Kind Regards,
> Matt Hastie.
>
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20130707/4f4f4f6a/attachment.htm>


More information about the Gambit-list mailing list