-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Greatly modify scope resolution mechanics, bump minor version
Bump to Yamlet 0.1.0. This modifies the API slightly. Now, both `yamlet_merge` and `yamlet_clone` accept an EvalContext, as this information is required for good error reporting for cross-module composition results. Name lookup mechanics have been modified such that all super containing scopes are checked, as well as all evaluation contexts, in reverse order. This may be excessive, but it ensures that variables in the final evaluation context are preferred, but all values collected along the way will serve as fallback. This cannot be applied to Preprocessing scopes, as it would make the system depend on caching to avoid giving the preprocessors of a source tuple access to the scope of the first site that invokes them. However, keeping that check in place might enable the later removal of the preprocessing call at the end of `GclDict.yamlet_merge`, which really only needs to happen so that iteration doesn't reveal undefined values. However, if tuples preprocessed on any demand (including _noresolve item iteration), that would yield the needed effect, and it would reduce the stress test processing time to milliseconds.
- Loading branch information
1 parent
230bf3f
commit 43d3f7a
Showing
2 changed files
with
130 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters