> I don't know the specifics. I suspect the short answer is "Low-level macro > systems". Clearly in some Schemes, modules are a separate language from > Scheme itself, whereas in others they are part of it.
A low-level macro system would, by itself, only allow transformation of a module declaration into define, lambda, and set! forms and their ilk. Is that really what everyone does? I was assuming that many implementations were using primitives for wiring certain environments together, e.g. MIT Scheme's procedures `lexical-assignment', `lexical-unbound?', etc. What does Chicken do? Gambit? Gauche? PLT Scheme? SCSH? Do they all just transform module forms into define, lambda, set!, etc., or are there other primitives involved? I've been told that PLT Scheme has an elaborate mechanism along these lines. I will go read some code, but I would love to hear from implementers about how their implementations' module systems work under the covers. _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
