-
Notifications
You must be signed in to change notification settings - Fork 149
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
Mark typeintersect pure for Julia 1.9 #1156
Mark typeintersect pure for Julia 1.9 #1156
Conversation
Yes, we can do something like JuliaLang/julia#46471 (or even set up a separate system to track const-prop' profitability). Having said that, |
Right it used to have an |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for the fix, @vchuravy! Would it make sense to add some tests for this? This would basically need to call Julia again but with the appropriate command line flags since testing uses bounds checking enabled by default.
@vchuravy I made a PR adding some tests to your branch. Once it is merged, this PR looks good to me. Thanks a lot for investigating this issue and creating a workaround so quickly! |
add tests to the PR Mark typeintersect pure for Julia 1.9
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me and is a great fix for some performance problems we encounter with Julia v1.9 as downstream users of StaticArrays.jl.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Could you just add Julia 1.9-dev to CI testing and bump patch version?
pure typeintersect update
Great, thanks a lot to everyone involved for creating a fix so fast. Once a new version of StaticArrays.jl has been released, I will run some performance benchmarks on Julia v1.9 with |
Fixes the concrete issue in #1155.
Julia 1.9 favors concrete-eval over constant propagation.
Furthermore the effect system was powered up and many
@pure
annotation were removed.With
--check-bounds=no
concrete-eval is disabledand we rely entirely on const-prop, which seems to struggle whithout the
@pure
annotation.@aviatesk would it be feasible to consider the effects for directing const-prop? We have two situations
where the reliance on concrete-eval has shown itself to be problematic. GPU code with custom method-tables,
and
--check-bounds=no
.In Julia 1.10
@pure
is deprecated and the testcase in #1155fails again.