Complete support for module semantics
For the use cases I envision, I was not planning to implement full blown semantics of modules and module imports e.g. EXTENDS, etc. For example, for now I'm just considering operators from the standard modules to be globally available at all times, even without being explicitly imported. This behavior could be re-considered in the future, though, if necessary.
See module notes: http://lamport.azurewebsites.net/tla/newmodule.html.
Preliminary implementation in 6c12345, starting with limited support of EXTENDS based imports.
Handling INSTANCE based imports is a remaining task. Will also need to handle LOCAL INSTANCE semantics.
Can the CommunityModules be added to the default search path? The root modules of both the CCF Consistency spec and the Azure CosmosDB spec extend them.
Confirmed that the below doesn't work for CCF's consistency spec because resolving the CommunityModule's Functions and Folds from the CCF repo obviously results in a 404.
https://github.com/will62794/tla-web/blob/aeaf642766073bd3d82586bd98066dd0466aa16b/js/eval.js#L24-L30
https://github.com/will62794/tla-web/blob/aeaf642766073bd3d82586bd98066dd0466aa16b/js/eval.js#L1290-L1297
See 538d398.
Further progress towards module instantiation in 64a44dc.
Does not yet include full handling of parameterized instantiation.
And initial handling of parameterized module instantiation in 799f00d.
Proper support of LOCAL definitions also still needed.