From: Timothy H. <tim...@ma...> - 2002-10-10 14:55:10
|
One more small change.... I've modified DynamicEnvironment.java so that when a new environment is imported, it only imports those variables whose names do not contain ":" under the assumption that such variables were themselves created by a higher level environment import. We could require import prefixes to end in a ":" or we could just use the colon to indicate variables that should not be exported, e.g. (define (local:f x) {This is a non-exported function with parameter [x]}) With this model the user would be responsible for picking import prefixes that didn't cause name clashes... Also, on the topic of first class environments and languages, this might not be a bad idea if they have a limited API because a compiler will need to be able to compile a particular module in a particular dynamic environment (obtained by executing all of the requisite (language-import FILE) expressions) to get the proper semantics for the macros... Thus, we need to at least be able to specify that a certain macro expansion should take place in a specified environment... ---Tim--- here is the latest version of Dynamic Environment (that doesn't import symbols containing a colon in their string representation): |