Thanks for your replies.<div>Some months ago, there was a very interesting propopsal by Per, which was motivated by the conversations Mikael and I had with him regarding Blackhole. His position was that with a simple addition to Gambit's code, benefits for the define-macro system would be huge, effectively achieving hygiene. But it must be done in <br>

</div><div>My issues with blackhole were not related to macro systems, but issues with finer compilation workflow control.</div><div><br></div><div>Marc, how hard would be to implement this? (by you or someone with no prior knowledge of Gambit's internals)</div>

<div><br></div><div><a href="https://mercure.iro.umontreal.ca/pipermail/gambit-list/2012-March/005815.html">https://mercure.iro.umontreal.ca/pipermail/gambit-list/2012-March/005815.html</a><br></div><div><br></div><div><br>

</div><div><br></div><div><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Nov 15, 2012 at 10:28 AM, Marco Benelli <span dir="ltr"><<a href="mailto:mbenelli@yahoo.com" target="_blank">mbenelli@yahoo.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">> From: Álvaro Castro-Castilla <<a href="mailto:alvaro.castro.castilla@gmail.com">alvaro.castro.castilla@gmail.com</a>><br>


><br>
>[...]<br>
<div class="im">><br>
>Alexpander<br>
>- A: it is supposed to support DSSSL and be nicer to Gambit<br>
>- D: I still get errors related to define-macros, even if they are not mixed with define-syntax macros. Taking into account that some of my macros work with both blackhole and syntax-case but not with alexpander, I assume this implementation is less mature/stable.<br>


<br>
</div>I think it is not a maturity/stability issue: Alexpander renames some variables and does not implements its own version of define-macro; so I think some problems are unavoidable if you want to mix code that use Alexpander and code that use Gambit's define-macro.  Separate compilation is you friend here.<br>


<br>
There is an newer version of the original Alexpander that is much less invasive in renaming variables, I planned to patch it with the DSSSL extension, but I am not sure it is worth the effort.  I wondered if there is a way to be sure that Gambit's macroexpander runs *before* Alexpander, but I am not even sure that it could make sense. <br>


<br>
I started hacking the original Alexpander for three reason:<br>
<br>
1. using R5RS libraries<br>
<br>
2. DSSSL compatibility (but I conclueded that it's not so important, thanks to ##define and ##lambda)<br>
3. code size/compilation speed (much better than psyntax)<br>
<br>
and it served me quite well.<br>
<div class="im"><br>
>The point is: is there any stable, good implementation of R5RS syntax-rules that is fully-compatible and nice to all of Gambit's functionality?<br>
<br>
</div>I don't think so.  Maybe it will be here in the future if Gambit will adopt R7RS, either as a simple syntax-rule expander (similar to Alexpander) for the small language either as a more complete low-level system for the large language.<br>


<span class="HOEnZb"><font color="#888888"><br>
--marco<br>
</font></span></blockquote></div><br></div>