Ray Dillinger scripsit: > +1. For debugging purposes, redefinition of macro forms *should* > cause all the call sites for that macro to be re-expanded. But in > the case of schemes that don't want to keep the (unexpanded) > source code lying around in case of macro-redefinition, that > isn't a tractable requirement.
It's even less tractable in the common case of loading compiled code into a REPL, and puts *very* tight constraints on compiled formats. Either the compiled file must contain the source code inside, or it must export a list of macros which were used in the source so that the relevant procedures can be recompiled (from source which may be unavailable) and reloaded. I mean, c'mon: you type (define-syntax let ...) and every bit of code written in Scheme in the system has to be rebuilt before we can go on? Flexible environments are nice to have, but that's asking an awful lot. I think the converse demand, that definition bodies be expanded at definition time, is *far* more plausible; interpreters and debuggers can certainly keep the unexpanded source around as well. -- John Cowan http://www.ccil.org/~cowan [email protected] Uneasy lies the head that wears the Editor's hat! --Eddie Foirbeis Climo _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
