-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
inference: remove MAX_TYPE_DEPTH limit, rewrite tmerge #26628
Conversation
`type_too_complex` / `MAX_TYPE_DEPTH` is not well-defined (this was the last remaining usage) `_typename(a::Vararg)` does not mean what the author probably thought / intended (it is the same as ..., and thus was dead code) This limit is now handled with more surgical precision by `limit_type_size` during recursion, so we can be more permissive during iteration here.
and slow down convergence rate of Tuple and UnionAll types
@nanosoldier |
1 similar comment
@nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @ararslan |
@nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @ararslan |
593af8f
to
c3ebc9e
Compare
… Int}` While the new optimizer should handle this better, the optimal efficient way to handle this is to make the missingness entirely disjoin: `Union{Nothing, Tuple{Something, Int}}` And make each `val` variable SSA, for better inference
@nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @ararslan |
great. will merge soon if no objections |
Change as a part of: JuliaLang/julia#26628
Change as a part of: JuliaLang/julia#26628
These arbitrary limits don't seem necessary any more (at least for
make test
), and weren't being used where they would have been needed the most (Tuple) anyways. This also tries to improve the associativity of the algorithm and slowing down the convergence, with an eye towards giving better results whenNothing
gets joined into a mix of abstract types:fix #26610
close #23077