James Long wrote:
This may not be my place, but just a thought on module systems since we're discussing the future of them.
Am I the only one that would like to see Scheme48's module system become the de-facto standard? I know that's a pipe dream, but after fiddling around with it, it's the only one that really makes sense (there are many I haven't used, but that's also what I hear from a few others). I'm not even sure what Scheme48's take on conforming to either R6RS or ERR5RS is, because it definitely wouldn't forego its module system. I suppose it could build a compatibility layer of some sort.
I know hygienic macros are hard - but from what I know Snow doesn't even attempt to fix the problem of cross-module macros (I think it only fixes loading macros from compiled modules). I like how Snow handles versioning though, but I'd like to see some of the deeper problems addressed in a module system (hygienic macros, reflective tower, etc.).
What I think is that I want Snow (or if not Snow, then at least my own Gambit-specific module system) to be able to handle Scheme48-style modules, but also more.
I've already mentioned that for example, I want modules in a lazy-by-default Language. You can't really get that only with macros, you need more (source processing like a compiler, and possibly make some info public that's more than just identifyers). There are already people out there playing with type systems, and it's something that I'm interested in looking into after the lazyness thing; it's also something that one should be able to fit into Snow in the long term.
My first things I want to tackle is lazyness and module parametrization in chjmodule; for this I want to publish a versioning repository of chjmodule real soon now™, and then go on tackling the parametrization and lazyness issues. After having succeeded at those (or while I'm (or while we are, if anybody is taking part) at them) I want to see how to integrate them with Snow.
So I think Snow is right in starting simple. It can get better with time, slowly integrating the good bits being around when people see how they fit together well.
I'm not claiming to be an expert at all (or even any) of those areas. But I'm hoping to get expertise by working through them.
So I've got an own humble question: could you refer me to some documentation / a paper on what you mean with "reflective tower"? Is one of the following links a good start?:
http://www.daimi.au.dk/~danvy/Papers/danvy-malmkjaer-LFP88.pdf http://portal.acm.org/citation.cfm?id=319871&coll=Portal
Christian.