-
-
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
kill isleaftype
#25496
kill isleaftype
#25496
Conversation
src/intrinsics.cpp
Outdated
else if (ty != to) { | ||
unboxed = ctx.builder.CreateBitCast(unboxed, to); | ||
unboxed = ctx.builder.CreateBitCast(unboxed, to); |
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.
indentation
👍 Looks great! |
base/reflection.jl
Outdated
|
||
_isleaftype(@nospecialize(t)) = (@_pure_meta; isa(t, DataType) && t.isleaftype) | ||
_isleaftype(@nospecialize(t)) = (@_pure_meta; isa(t, DataType) && (t.isdispatchtuple || t.isconcretetype)) # deprecated | ||
isdispatchtuple(@nospecialize(t)) = (@_pure_meta; isa(t, DataType) && t.isdispatchtuple) |
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.
Docs? It's exported.
bdaa13f
to
786dafb
Compare
base/reflection.jl
Outdated
end | ||
|
||
""" | ||
Base.isstructype(T) -> Bool |
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.
isprimitivetype
base/reflection.jl
Outdated
isstructtype(t::DataType) = (@_pure_meta; length(t.types) != 0 || (t.size==0 && !t.abstract)) | ||
isstructtype(x) = (@_pure_meta; false) | ||
""" | ||
Base.isstructype(T) -> Bool |
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.
isstructtype
786dafb
to
d33f30f
Compare
@nanosoldier |
Random moving to the stdlib broke Nanosoldier. I have a fix up, I just need to retune the benchmarks then I'll run Nanosoldier here when that's done. |
d33f30f
to
90a5b22
Compare
@nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @ararslan |
90a5b22
to
c9d254d
Compare
Seems mostly noise, but let me run that again to see if any are consistently changed: @nanosoldier |
c9d254d
to
ff415e4
Compare
@nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @ararslan |
ff415e4
to
02baf98
Compare
@nanosoldier |
@nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @ararslan |
b230e03
to
5cc69d1
Compare
widen Tuple faster, to Any, if it's already nesting
expand the set of them to be more "complete", and document them more fully
5cc69d1
to
88a4db2
Compare
🎉 |
As discussed in previous issues (listed below), this finishes the deprecation of
isleaftype
and adds/corrects a number of other type-property queries and their usages (esp. includingisbits
). This correction also includes a number of changes that makes inference more powerful (by leveraging the removal of isleaftype to return more correct answers, yay!).Most of the new computations are cached inside a datatype upon construction:
fix #25044
fix #23567
fix #17086
fix #25310
This still needs docs from #17086 (comment), and I should go back through and add some tests. But wanted to start by publish the functional changes now.