On Mar 27, 2009, at 4:21 AM, Per Eckerdal wrote:
27 mar 2009 kl. 04.25 skrev James Long:
I second Brad's comment. Support for hygienic macros should be on the feature list (you can still provide unhygienic macros as well). This is important because it requires changes to the evaluator (I think), and is something that can't be added on.
Just to be a little picky: Actually no, it is sufficient to override lambda, let, let*, define and define-macro to implement hygiene. I did that first, but even though it worked, it felt slightly hackish, so now i use the ##expand-source and c#expand-source hooks. This is cleaner and more powerful as well. No changes to Gambit are required.
True. I haven't look at your source code, but I suppose that would be a metacircular evaluator? I think what I meant to say was that hygiene should be part of the base module implementation, and shouldn't be left to higher-level module systems.