-
-
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
permit NamedTuple{<:Any, Union{}} to be created #53516
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
vtjnash
added
types and dispatch
Types, subtyping and method dispatch
feature
Indicates new feature / enhancement requests
labels
Feb 28, 2024
JeffBezanson
reviewed
Mar 7, 2024
vtjnash
force-pushed
the
jn/namedtuple-bottom-fields
branch
from
March 8, 2024 17:58
a8fd66c
to
24f351c
Compare
vtjnash
added
merge me
PR is reviewed. Merge when all tests are passing
backport 1.11
Change should be backported to release-1.11
backport 1.10
Change should be backported to the 1.10 release
labels
Mar 8, 2024
This is a NamedTuple where all of the fields exist but have type Union{}. It can be useful for initializing a typejoin in some cases, and unlike Tuple{Union{}} there are no problems with covariance that should be preventing it from existing. A few parameters of some constructors were adjusted for performance and correctness (mostly the former). Really just an edge case, since nobody should reasonably need a type that cannot be constructed, but it does seem to mildly improve the quality of some type queries such as these: ``` julia> fieldtype(NamedTuple{(:a, :b), T} where T<:Union{}, :a) was: ERROR: TypeError: in fieldtype, expected DataType, got Type{Union{}} now: Union{} julia> fieldtypes(NamedTuple{(:a, :b), T} where T<:Union{}) was: ERROR: TypeError: in fieldtype, expected DataType, got Type{Union{}} now: (Union{}, Union{}) ``` Note that `NamedTuple{(), Union{}}` is disallowed still, as that `Union{}` implies that the generating `Tuple` had least one field.
vtjnash
force-pushed
the
jn/namedtuple-bottom-fields
branch
from
March 8, 2024 18:51
24f351c
to
d28bceb
Compare
KristofferC
pushed a commit
that referenced
this pull request
Mar 12, 2024
(cherry picked from commit e9c84c8)
KristofferC
pushed a commit
that referenced
this pull request
Mar 15, 2024
(cherry picked from commit e9c84c8)
60 tasks
KristofferC
added a commit
that referenced
this pull request
Mar 17, 2024
Backported PRs: - [x] #39071 <!-- Add a lazy `logrange` function and `LogRange` type --> - [x] #51802 <!-- Allow AnnotatedStrings in log messages --> - [x] #53369 <!-- Orthogonalize re-indexing for FastSubArrays --> - [x] #48050 <!-- improve `--heap-size-hint` arg handling --> - [x] #53482 <!-- add IR encoding for EnterNode --> - [x] #53499 <!-- Avoid compiler warning about redefining jl_globalref_t --> - [x] #53507 <!-- update staled `Core.Compiler.Effects` documentation --> - [x] #53408 <!-- task splitting: change additive accumulation to multiplicative --> - [x] #53523 <!-- add back an alias for `check_top_bit` --> - [x] #53377 <!-- add _readdirx for returning more object info gathered during dir scan --> - [x] #53525 <!-- fix InteractiveUtils call in Base.runtests on failure --> - [x] #53540 <!-- use more efficient `_readdirx` for tab completion --> - [x] #53545 <!-- use `_readdirx` for `walkdir` --> - [x] #53551 <!-- revert "Add @create_log_macro for making custom styled logging macros (#52196)" --> - [x] #53554 <!-- Always return a value in 1-d circshift! of abstractarray.jl --> - [x] #53424 <!-- yet more atomics & cache-line fixes on work-stealing queue --> - [x] #53571 <!-- Update Documenter to v1.3 for inventory writing --> - [x] #53403 <!-- Move parallel precompilation to Base --> - [x] #53589 <!-- add back `unsafe_convert` to pointer for arrays --> - [x] #53596 <!-- build: remove extra .a file --> - [x] #53606 <!-- fix error path in `precompilepkgs` --> - [x] #53004 <!-- Unexport with, at_with, and ScopedValue from Base --> - [x] #53629 <!-- typo fix in scoped values docs --> - [x] #53630 <!-- sroa: Fix incorrect scope counting --> - [x] #53598 <!-- Use Base parallel precompilation to build stdlibs --> - [x] #53649 <!-- precompilepkgs: package in boths deps and weakdeps are in fact only weak --> - [x] #53671 <!-- Fix bootstrap Base precompile in cross compile configuration --> - [x] #52125 <!-- Load Pkg if not already to reinstate missing package add prompt --> - [x] #53602 <!-- Handle zero on arrays of unions of number types and missings --> - [x] #53516 <!-- permit NamedTuple{<:Any, Union{}} to be created --> - [x] #53643 <!-- Bump CSL to 1.1.1 to fix libgomp bug --> - [x] #53679 <!-- move precompile workload back from Base --> - [x] #53663 <!-- add isassigned methods for reinterpretarray --> - [x] #53662 <!-- [REPL] fix incorrectly cleared line after completions accepted --> - [x] #53611 <!-- Linalg: matprod_dest for Diagonal and adjvec --> - [x] #53659 <!-- fix #52025, re-allow all implicit pointer casts in cconvert for Array --> - [x] #53631 <!-- LAPACK: validate input parameters to throw informative errors --> - [x] #53628 <!-- Make some improvements to the Scoped Values documentation. --> - [x] #53655 <!-- Change tbaa of ptr_phi to tbaa_value --> - [x] #53391 <!-- Default to the medium code model in x86 linux --> - [x] #53699 <!-- Move `isexecutable, isreadable, iswritable` to `filesystem.jl` --> - [x] #41232 <!-- Fix linear indexing for ReshapedArray if the parent has offset axes --> - [x] #53527 <!-- Enable analyzegc checks for try catch and fix found issues --> - [x] #52092 - [x] #53682 <!-- Increase build precompilation --> - [x] #53720 - [x] #53553 <!-- typeintersect: fix `UnionAll` unaliasing bug caused by innervars. --> Contains multiple commits, manual intervention needed: - [ ] #53305 <!-- Propagate inbounds in isassigned with CartesianIndex indices --> Non-merged PRs with backport label: - [ ] #53736 <!-- fix literal-pow to return the right type when the base is -1 --> - [ ] #53707 <!-- Make ScopedValue public --> - [ ] #53696 <!-- add invokelatest to on_done callback in bracketed paste --> - [ ] #53660 <!-- put Logging back in default sysimage --> - [ ] #53509 <!-- revert moving "creating packages" from Pkg.jl --> - [ ] #53452 <!-- RFC: allow Tuple{Union{}}, returning Union{} --> - [ ] #53402 <!-- Add `jl_getaffinity` and `jl_setaffinity` --> - [ ] #52694 <!-- Reinstate similar for AbstractQ for backward compatibility --> - [ ] #51928 <!-- Styled markdown, with a few tweaks --> - [ ] #51816 <!-- User-themable stacktraces --> - [ ] #51811 <!-- Make banner size depend on terminal size --> - [ ] #51479 <!-- prevent code loading from lookin in the versioned environment when building Julia -->
KristofferC
removed
the
backport 1.11
Change should be backported to release-1.11
label
Mar 18, 2024
mkitti
pushed a commit
to mkitti/julia
that referenced
this pull request
Apr 13, 2024
KristofferC
added a commit
that referenced
this pull request
Apr 22, 2024
Backported PRs: - [x] #50759 <!-- Fix outdated usage of scrubbing for log test failures --> - [x] #51830 <!-- Add version string to sysimg triple --> - [x] #53273 <!-- [REPL] Fix typo in using/import completion --> - [x] #53499 <!-- Avoid compiler warning about redefining jl_globalref_t --> - [x] #53424 <!-- yet more atomics & cache-line fixes on work-stealing queue --> - [x] #53596 <!-- build: remove extra .a file --> - [x] #53516 <!-- permit NamedTuple{<:Any, Union{}} to be created --> - [x] #53643 <!-- Bump CSL to 1.1.1 to fix libgomp bug --> - [x] #53655 <!-- Change tbaa of ptr_phi to tbaa_value --> - [x] #53391 <!-- Default to the medium code model in x86 linux --> - [x] #53809 <!-- Add missing GC_POP() in emit_cfunction --> - [x] #53961 <!-- `LazyString` in `LinearAlgebra.checksquare` error message --> - [x] #52913 <!-- Added docstring for Artifacts.jl --> - [x] #53553 <!-- typeintersect: fix `UnionAll` unaliasing bug caused by
KristofferC
removed
the
backport 1.10
Change should be backported to the 1.10 release
label
May 8, 2024
Drvi
pushed a commit
to RelationalAI/julia
that referenced
this pull request
Jun 7, 2024
(cherry picked from commit e9c84c8)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
feature
Indicates new feature / enhancement requests
types and dispatch
Types, subtyping and method dispatch
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a NamedTuple where all of the fields exist but have type Union{}. It can be useful for initializing a typejoin in some cases, and unlike Tuple{Union{}} there are no problems with covariance that should need to prevent it from existing. A few parameters of some existing constructors were adjusted for performance and correctness with handling this option (mostly the former).
Seems like really just an edge case, since nobody should reasonably need a type that cannot be constructed, but it is a subtype of Tuple, and having it implemented does seem to mildly improve the quality of some type queries such as these: