draft of strawman:simple_modules
dherman at mozilla.com
Tue Sep 28 09:37:09 PDT 2010
I've recently updated and clarified the draft strawman for simple modules:
One of the key changes is to the initial environment of modules, addressing the issue of module name capture pointed out a while back by Jasvir Nagra and Ihab Awad. The spec now distinguishes externally-loaded modules from internal modules. Internal modules simply extend the existing environment, like any other scoping construct. But to prevent external modules from being sensitive to *all* modules in scope, they are given an initial environment with only the *local* modules (i.e., the sibling modules declared in the same parent module as the module-load declaration in question). There are provisions for locally rebinding a module so that it can be made explicitly visible to an externally-loaded module.
The strawman now provides a more detailed semantics for the core system. Allen Wirfs-Brock made the good suggestion that we create a rationale document. I will be working on that, and I'll send announcement when it's ready. The module loaders API is not ready yet either, so that'll be another future announcement, too.
More information about the es-discuss