On Wed, Jul 28, 2010 at 12:13 AM, Michael Lucy <michaelgl...@gmail.com> wrote: > I've officially eliminated the last define-macro expression. > > However, I get the feeling that things may not be exactly as desired. > The original program made extensive use of functions in building the > macros, and I originally tried to replace these with macros. This > turned out to be a little difficult to debug, however (read: I was > unable to make the code actually work). I eventually abandoned this > and just made datum->syntax calls.
I've left this alone since then; it would be nice to get some confirmation that this was the right choice though. If it isn't, I think I still have time to change it before the GSOC deadline (and like I said, I'll hang around after it). Anyway, I just pushed up everything I have to the git repository (I think; I may have screwed up the syntax). I'm basically done except that the documentation/comments could use some more touching up, I don't have a set of benchmarks yet and I haven't really optimized things all that much. > > On the one hand, this works. I also find it easier to debug, and I > think it looks cleaner. > > The downside is that one doesn't get all the same benefits of > referential transparency, so I still have gensyms in the functions > etc. Is this a problem? > > If so, I can definitely replace everything with macros, but I might > not be able to do that and get everything else done by the GSOC > project deadline. I'd like to hang around after the project is > officially done from Google's point of view to polish things up, so I > could also do it then. > > Another question about module namespaces: I have some syntax that I'd > like to be available to code generated by macros in my module, but > which I'd rather not export to the user (to avoid clobbering their > functions). Is there a standard way of doing this? I can't seem to > find anything in the module documentation regarding giving namespaces > to things in modules except for :renamer, which has to be done by the > user--the only options appear to be not exporting it at all, or > exporting it straight into the user's namespace. The best fix I can > think of is naming the syntax things the user is unlikely to ever take > (or maybe using gensyms to make sure it isn't a name they take). >