-
-
Notifications
You must be signed in to change notification settings - Fork 339
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
refactor(traverse): Traverse
produce scopes tree using Semantic
#3304
refactor(traverse): Traverse
produce scopes tree using Semantic
#3304
Conversation
Your org has enabled the Graphite merge queue for merging into mainAdd the label “merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge. Or use the label “hotfix” to add to the merge queue as a hot fix. You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link. |
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @overlookmotel and the rest of your teammates on Graphite |
CodSpeed Performance ReportMerging #3304 will degrade performances by 66.05%Comparing Summary
Benchmarks breakdown
|
e44b95f
to
3c02f60
Compare
3c02f60
to
25b4d44
Compare
25b4d44
to
bdbe6fa
Compare
Merge activity
|
…3304) `Traverse` use `Semantic` to construct scopes tree and expose it to visitors via `TraverseCtx`. Currently scopes tree is immutable. Will expose it as a mutable in a follow-on. This is extremely inefficient. Semantic does all kinds of stuff (control flow graph etc) which `Traverse` doesn't need, and `Traverse` just throws away all that work after semantic has done it. Intent here is to get a working implementation first, and then to do another pass later on to improve performance.
da7bf94
to
6f3b1c8
Compare
bdbe6fa
to
05c71d2
Compare
Allow mutable access to scopes tree and symbol table. Closes #3189. This completes the v1 scopes-in-traverse implementation, and provides all the primitives required to implement the missing APIs listed in #3251. Performance is abysmal, as noted in #3304, but we can fix that later on by taking `Semantic` out of the picture, or optimizing it.
Traverse
useSemantic
to construct scopes tree and expose it to visitors viaTraverseCtx
.Currently scopes tree is immutable. Will expose it as a mutable in a follow-on.
This is extremely inefficient. Semantic does all kinds of stuff (control flow graph etc) which
Traverse
doesn't need, andTraverse
just throws away all that work after semantic has done it. Intent here is to get a working implementation first, and then to do another pass later on to improve performance.