<div dir="ltr"><div><span style="font-family:arial,sans-serif;font-size:13px">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 </span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px">I wonder how does Riaxpander perform regarding:</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">- error reporting. Does it give useful information for the macro developer / macro user?</span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px">- 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?</span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">I forgot to CC the thread. This was the conversation:</span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br>
</span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">> Well,</span><div style="font-family:arial,sans-serif;font-size:13px">
<br></div><div style="font-family:arial,sans-serif;font-size:13px">> That's a big question!</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
> I'm no expert on macro expansion, but from my reading I understand the following:</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
> 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.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">> 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.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">> Alexpander is an implementation of syntax-rules in r5rs - simple.</div><div style="font-family:arial,sans-serif;font-size:13px">
<br></div><div style="font-family:arial,sans-serif;font-size:13px">> If you're interested in more detail without having your mind blown reading source, Alex Shinn wrote an excellent comparative analysis in this thread:</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">> <a href="https://lists.gnu.org/archive/html/chicken-users/2008-04/msg00013.html" target="_blank">https://lists.gnu.org/archive/html/chicken-users/2008-04/msg00013.html</a></div>
</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br>
</span></div><span style="font-family:arial,sans-serif;font-size:13px"><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div>> > Very nice! Thanks Matt</span><div style="font-family:arial,sans-serif;font-size:13px">
<br></div><div style="font-family:arial,sans-serif;font-size:13px">> > What are the main differences between this expander and Psyntax or Alexpander?</div><div style="font-family:arial,sans-serif;font-size:13px"><br>
</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div></div><div class="gmail_extra"><br clear="all"><div><div dir="ltr"><br><br><span style="font-family:verdana,sans-serif"> <font size="1">Álvaro Castro-Castilla</font></span><span style="font-family:verdana,sans-serif;font-size:x-small"> -- <a href="mailto:a@fourthbit.com" target="_blank">a@fourthbit.com</a></span><span style="font-family:verdana,sans-serif"><font size="1"><br>
</font></span><span style="font-family:verdana,sans-serif"><font size="1">Dedicated to the Craft of Software: Turning Ideas into Reality</font></span><br clear="all">
<span style="font-family:verdana,sans-serif"></span><div><span style="font-family:verdana,sans-serif"><font size="1"><br>
</font></span></div><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><div><span style="font-family:verdana,sans-serif"><font size="1"><a href="http://fourthbit.com" target="_blank"><img src="https://s3.amazonaws.com/fourthbit-main/logo_inverted.png"></a><br>
<br>
</font></span></div></blockquote></div></div>
<br><br><div class="gmail_quote">On Sat, Jul 6, 2013 at 7:16 AM, Matt Hastie <span dir="ltr"><<a href="mailto:matthastie@gmail.com" target="_blank">matthastie@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello Gambit People,<br>
<br>
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!<br>
<br>
Credit here goes to Taylor R. Campbell, for creating such a very nice and powerful expander. My contribution was to:<br>
<br>
- extract riaxpander-gambit.scm from the tmp directory on Campbell's website,<br>
- vandalize the source to support case sensitivity (lower case all macrology patterns),<br>
- figure out the problems that prohibit gambit compile-file from working,<br>
- add some dark meat from the chicken to support loading of macros in compiled source, and<br>
- add a cond-expand classifier that works when syntax-case appears in a non-evaluated feature clause.<br>
<br>
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.<br>
<br>
Source code is in:<br>
<br>
<a href="https://github.com/matthastie/riaxpander" target="_blank">https://github.com/matthastie/riaxpander</a><br>
<br>
Kind Regards,<br>
Matt Hastie.<br>
<br>
_______________________________________________<br>
Gambit-list mailing list<br>
<a href="mailto:Gambit-list@iro.umontreal.ca">Gambit-list@iro.umontreal.ca</a><br>
<a href="https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list" target="_blank">https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list</a><br>
</blockquote></div><br></div>