-
Notifications
You must be signed in to change notification settings - Fork 43
Minimal switch to AbstractInterpreter #126
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
Conversation
This is the minimal work required to swtich Cthulhu to AbstractInterpreter.
There are several things I would like to build on top of this:
- Read callsites out of statment info rather than reconstructing it
- Support for Opaque Closures
- More consistent use of AbstractInterpreter throughout the API
- Expose inference remarks
I would like to propose that we make a codebase break at Julia 1.6
for Cthulhu, moving the current master to a branch and requiring
Julia 1.7 on Cthulhu master. That gives us the rest of the 1.7 cycle
to update Cthulhu and figure out what the right interfaces between
Cthulhu and Base are.
Codecov Report
@@ Coverage Diff @@
## master #126 +/- ##
==========================================
- Coverage 51.02% 43.20% -7.82%
==========================================
Files 6 7 +1
Lines 874 891 +17
==========================================
- Hits 446 385 -61
- Misses 428 506 +78
Continue to review full report at Codecov.
|
Good by me. |
|
I'll take a look on this PR during this week. |
|
No worries, this PR is mostly the trial balloon to figure out what to do about version compats and such. Actually making use of AbstractInterpreter will take a couple more PRs - just wanted to keep you in the loop. |
|
Strongly supportive of this plan. As it stands, the inaccuracies in specialization heuristics alone would be worth the break. I bet this will fix a couple of open issues. Just a comment, our confidence in doing refactorings like this would be greatly enhanced by having a better test suite. Something for us all to aspire to. I've been trying to avoid fixing bugs or add functionality without accompanying tests, but we have a long ways to catch up. And the interactive components are of course hard to test (maybe so hard it's not worth it). |
|
Alright, the plan here is:
|
This is the minimal work required to switch Cthulhu to AbstractInterpreter.
There are several things I would like to build on top of this:
- Read callsites out of statement info rather than reconstructing it
- Support for Opaque Closures
- More consistent use of AbstractInterpreter throughout the API
- Expose inference remarks
I would like to propose that we make a codebase break at Julia 1.6
for Cthulhu, moving the current master to a branch and requiring
Julia 1.7 on Cthulhu master. That gives us the rest of the 1.7 cycle
to update Cthulhu and figure out what the right interfaces between
Cthulhu and Base are.
Fixes #124
cc @maleadt