-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Require explicit new for undecoration #849
Open
krame505
wants to merge
79
commits into
develop
Choose a base branch
from
feature/explicit-undec
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
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
Use antiquotation, store test values in nondecorated locals, make Test closed
…s as undecorated, remove pattern match type checking reuse hack
…vars, and provide a crude approximation of function dependencies
…ny possible decoration site has an inh eq in hidden transitive deps check
…nted dispatch sig
… names don't match the dispatch signature
…lication, permit application of dispatch with no sig shared children outside of forwarding contexts
…ef even for these prods since we now handle this in building the dec site tree
…shared children, don't abuse decSiteVertexInfo for this
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes
Fixes #751.
This changes the semantics of referring to a (non-data) nonterminal child/local/translation attribute/pattern variable to be always decorated, and require explicit
new
to undecorate the tree. Let expressions binding decorated trees also no longer implicitly undecorate.The bulk of the changes here are a largely automated refactor to use tree sharing, and explicit
new
where that isn't possible. Thus if anyone would actually like to try reviewing this, it is probably easiest to look at individual commits that have the type system changes.This is a major breaking change - downstream projects will need to be refactored as well before merging this PR. Issues #842 and #843 should probably also be addressed before attempting this refactoring.
There is a slight regression in the
deep-rebuild
time (maybe 10%?) , which I haven't investigated too closely yet. I was expecting performance to improve through more use of sharing and type system simpliciations, but there is also a new pass for specializingInhSet
s, and a lot of calls tonew
added.Documentation
The documentation has not yet been updated. I think the main things to fix are https://melt.cs.umn.edu/silver/concepts/decorated-vs-undecorated/#implicit-decoration and any uses of implicit undecoration in examples.
Testing
The Silver compiler, test suite and tutorials have been updated to account for these changes.