<div dir="ltr">Hi,<div style><br></div><div style>As far as I know in gambit use a internal structure to annotate code file & location. It will be passed to expand hook as "source" object.</div><div style><div>
While alexpander(the one I got from Dumping Ground) simply don't annotate its expanded result with given content. Thus the error location</div><div>doesn't work.</div><div><br></div></div><div style>Blackhole has related code solve the same problem in expr.scm</div>
<div style><br></div><div style>Thanks</div><div style>Meng</div><div style><br></div><div style>Thanks</div><div style>Meng</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Dec 19, 2012 at 7:56 PM, Álvaro Castro-Castilla <span dir="ltr"><<a href="mailto:alvaro.castro.castilla@gmail.com" target="_blank">alvaro.castro.castilla@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>I've managed to get Alexpander in a quite usable state, I'm happy with it. It's fast and stable, and I managed to make keywords work, so I can use functions defined with ##define in DSSSL extensions, and namespaces for modules (I couldn't do these with psyntax). I also can mix low-level macros, in a second stage, which is good enough, since these are mostly used for very specific stuff related to FFI code generation and compilation helpers. High-level syntax is done in syntax-rules in my code.</div>


<div><br></div><div>What I see as a main issue with Alexpander, however, are code locations of errors. Specially, those related to LET and other basic forms which are expanded to fundamental lambdas. That turns the code around all the time making it more difficult to locate the original source of the error.</div>


<div><br></div><div>The basic compilation process involves generating intermediate files, expanded with Alexpander and then compiling them with Gambit.</div><div><br></div><div>I believe that if this is improved (at least avoiding alexpander expansion of let/let*/letrec forms), the resulting syntax system is satisfactory. It could even be made to be compatible with Blackhole's module system, alghouth my alternative allows me the finer control for cross-compilation (Android) that I couldn't achieve in Blackhole after some time hacking it.</div>


<div><br></div><div>Any ideas for improving this? I've tried hacking Alexpander removing the redefinitions and making them stubs, but no luck. I'll dive further into Alexpander if I don't find any other solution.</div>


<div>What are the consecuences of expanding let/let*/letrec, etc, to lambdas besides code locations? (am I missing any optimizations or some structure used by Gambit for better code generation?)</div><div><br>

</div><div>Thanks a lot.</div></div>
<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>
<br></blockquote></div><br></div>