<br><br><div class="gmail_quote">On Fri, Mar 19, 2010 at 3:36 PM, Per Eckerdal <span dir="ltr"><<a href="mailto:per.eckerdal@gmail.com">per.eckerdal@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br>
<br>
I have now polished and tested the rewrite of the hygiene system enough that I feel confident to release it. Hopefully it doesn't introduce too many bugs. Changes/new features include:<br>
<br>
* Rewritten hygiene system.<br>
* The installation procedure has changed slightly, see the README.<br>
* The bugs with let-syntax and letrec-syntax are now zapped<br>
* It now writes warnings about missing symbol names when loading compiled modules<br>
* I added a better README for the github page<br>
* Better tests. Not good, but better.<br>
<br>
With this, I hope that the problems with hygiene are fixed. There are still a couple of bugs, for instance with DSSSL parameter scoping, but they are not design flaws. The "only" big thing that remains now is to implement the syntactic tower.<br>

<br>
Have a look at <a href="http://github.com/pereckerdal/blackhole/" target="_blank">http://github.com/pereckerdal/blackhole/</a><br>
<br>
Regards,<br>
Per<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>Great news!<br>I just installed the latest version and it build just fine and seems to be working fine except that I have some problems with nested macros.<br><br>If I have the following files:<br>
<br>;; File a.scm<br>(define-syntax when<br>  (syntax-rules ()<br>    ((when exp block ...)<br>     (if exp<br>         (begin block ...)))))<br><br>;; File b.scm<br>(import a)<br><br>(define-syntax foo<br>  (syntax-rules ()<br>
    ((foo id)<br>     (let ((id #t))<br>       (when id<br>             'foo)))))<br><br>(foo bar)<br><br>Then running module b.scm gives an 'Unbound variable: a#bar' <br><br>-- <br>tomppa<br>