-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Increase thread test coverage #58177
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
Open
rachelmhawkins
wants to merge
542
commits into
JuliaLang:master
Choose a base branch
from
rachelmhawkins:thread-test-cov
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
+15,442
−7,498
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
…uliaLang#54965) By changing the default to `true` we make it easier to build relocatable packages from already existing ones when 1.11 lands. This keyword was just added during 1.11, so its not yet too late to change its default. (cherry picked from commit 6cf3a05)
(cherry picked from commit ce4f090)
This now allows the user to load any number of copies of a module, and uses the combination of the environment, explicitly loaded modules, and the requirements of the precompile caches to determine the meaning of a name and which files need to be loaded. Note however that package extensions continue to primarily only apply to the explicitly loaded modules, although they may get loaded incidentally as the dependency of another package, they won't get defined for every pair of combinations of triggering modules. Fixes JuliaLang#53983 (cherry picked from commit a1a2ac6)
This fixes a couple unconventional issues people encountered and were able to report as bugs against JuliaLang#54739 Note that due to several bugs in REPLExt itself (JuliaLang#54889, JuliaLang#54888), loading the extension may still crash julia in some circumstances, but that is now a Pkg bug, and no longer the fault of the loading code. (cherry picked from commit a7fa1e7)
More followup to fix issues with require. There was an accidental variable reuse (build_id) that caused it to be unable to load cache files in many cases. There was also missing check for a dependency already being loaded, resulting in trying to load it twice. Finally, the start_loading code may drop the require_lock, but the surrounding code was not prepared for that. Now integrate the necessary checks into start_loading, instead of needing to duplicate them before and afterwards. Fixes JuliaLang#53983 Fixes JuliaLang#54940 Closes JuliaLang#55064 (cherry picked from commit fba928d)
…#52694) Co-authored-by: Steven G. Johnson <[email protected]> (cherry picked from commit 7ec60b4)
Ensures that adding or examining the methods of Type{Union{}} in the method table returns the correct results. Fixes JuliaLang#55187 (cherry picked from commit d68befd)
… for OpaqueClosure methods (JuliaLang#55072) (JuliaLang#55225) These Methods cannot be looked up via their type signature, so they are incompatible with the `precompile(...)` mechanism.
…Lang#55218) (cherry picked from commit 59074fa)
Backported PRs: - [x] JuliaLang#54201 <!-- Fix generic triangular solves with empty matrices --> - [x] JuliaLang#54358 <!-- Create `jl_clear_coverage_data` to dynamically reset coverage --> - [x] JuliaLang#54908 <!-- LazyString in interpolated error messages in threadingconstructs --> - [x] JuliaLang#54952 <!-- LAPACK: Avoid repr call in `chkvalidparam` --> - [x] JuliaLang#54898 <!-- fix concurrent module loading return value --> - [x] JuliaLang#55082 <!-- Add fast method for copyto!(::Memory, ::Memory) --> - [x] JuliaLang#55084 <!-- Use triple quotes in TOML.print when string contains newline --> - [x] JuliaLang#55141 <!-- Update the aarch64 devdocs to reflect the current state of its support --> - [x] JuliaLang#54955 <!-- don't throw EOFError from sleep --> - [x] JuliaLang#54871 <!-- Make warn missed transformations pass optional --> - [x] JuliaLang#55178 <!-- Compat for `Base.@nospecializeinfer` --> - [x] JuliaLang#55197 <!-- compat notice for a[begin] indexing --> - [x] JuliaLang#54917 <!-- Fix potential underrun with annotation merging --> - [x] JuliaLang#55209 <!-- correction to compat notice for a[begin] --> - [x] JuliaLang#55203 <!-- document mutable struct const fields --> - [x] JuliaLang#54791 <!-- Bump libblastrampoline to v5.10.1 --> - [x] JuliaLang#54950 <!-- SuiteSparse: Bump version --> - [x] JuliaLang#54956 <!-- Fix accidental early evaluation of imported `using` binding --> - [x] JuliaLang#54996 <!-- inference: add missing `MustAlias` widening in `_getfield_tfunc` --> - [x] JuliaLang#55070 <!-- LinearAlgebra: LazyString in error messages for Diagonal/Bidiagonal --> - [x] JuliaLang#54574 <!-- Make ScopedValues public --> - [x] JuliaLang#54739 <!-- finish implementation of upgradable stdlibs --> - [x] JuliaLang#54965 <!-- RFC: Make `include_dependency(path; track_content=true)` the default --> - [x] JuliaLang#53286 <!-- Raise an error when using `include_dependency` with non-existent file or directory --> - [x] JuliaLang#55066 <!-- fix loading of repeated/concurrent modules --> - [x] JuliaLang#52694 <!-- Reinstate similar for AbstractQ for backward compatibility --> - [x] JuliaLang#55218 <!-- Artifacts: use a different way of getting the UUID of a module --> - [x] JuliaLang#54891 <!-- JuliaLang#54739-related fixes for loading stdlibs --> - [x] JuliaLang#55072 <!-- trace-compile: don't generate `precompile` statements for OpaqueClosure methods --> - [x] JuliaLang#55188 <!-- Make Core.TypeofUnion use the type method table --> Need manual backport: - [ ] JuliaLang#55052 <!-- Fix `(l/r)mul!` with `Diagonal`/`Bidiagonal` --> Contains multiple commits, manual intervention needed: Non-merged PRs with backport label: - [ ] JuliaLang#55169 <!-- `propertynames` for SVD respects private argument --> - [ ] JuliaLang#55148 <!-- Random: Mark unexported public symbols as public --> - [ ] JuliaLang#55017 <!-- TOML: Make `Dates` a type parameter --> - [ ] JuliaLang#55013 <!-- [docs] change docstring to match code --> - [ ] JuliaLang#54919 <!-- Fix annotated join with non-concrete eltype iters --> - [ ] JuliaLang#54457 <!-- Make `String(::Memory)` copy --> - [ ] JuliaLang#53957 <!-- tweak how filtering is done for what packages should be precompiled --> - [ ] JuliaLang#51479 <!-- prevent code loading from lookin in the versioned environment when building Julia --> - [ ] JuliaLang#50813 <!-- More doctests for Sockets and capitalization fix --> - [ ] JuliaLang#50157 <!-- improve docs for `@inbounds` and `Base.@propagate_inbounds` --> - [ ] JuliaLang#41244 <!-- Fix shell `cd` error when working dir has been deleted -->
I think this tool is there mainly to see what's taking so long, so timing information is helpful. (cherry picked from commit f2558c4)
As raised in <JuliaLang/StyledStrings.jl#57 (comment)>, when the eltype of an iterator is non-concrete, `_isannotated` will return false. To properly check such cases, we need to see if any of the elements of the iterator are annotated. This is a bit of an interesting case, since: - Most of the time it shouldn't be hit, we can reasonably expect most iterables to infer as producing concrete types - The eltype of the iterator is (generally) known at compile-time, and so in any case other than the ambiguous non-concrete one, this check remains able to be done at compile-time. With this change, join always preserves annotations. The compromise made is that iterators with non-concrete eltypes can result in join inferring a union return type (i.e. type instability with non-concrete iterators), but that doesn't seem too bad to me (I don't see how we could be completely type stable without concrete types here). (cherry picked from commit 462d7f4)
The docstring of `LinearAlgebra.reflectorApply!` is incorrect. It says the function is applying `(I - τ*[1; x] * [1; x]')*A`, but in reality it is applying `(I - conj(τ)*[1; x[2:end]]*[1; x[2:end]]')*A`. You can check that by looking at the code, or running for example ```julia using LinearAlgebra T=ComplexF64;d=5; τ=randn(T);x=randn(T,d);A=randn(T,d,d); (I - conj(τ)*[1; x[2:end]]*[1; x[2:end]]')*A LinearAlgebra.reflectorApply!(x,τ,A) ``` (cherry picked from commit 1ece299)
This will allow us to resolve the `Dates` at compile-time eventually. It also fixes `TOML.Parser()` to return Dates types again. (cherry picked from commit 0ffbae8)
`stack` does not require that the inner iterator defines `axes`, but the code to assemble an error message assumed this. Found here: https://discourse.julialang.org/t/reduce-hcat-is-type-unstable/112800/3 (cherry picked from commit ae483c3)
(cherry picked from commit 157d4ee)
Changes made: - Use 0 for the thread ID to ensure it's always valid. The function expects `0 <= tid < jl_n_threads` so 1 is incorrect if `jl_n_threads` is 1. - After retrieving the affinity mask with `jl_getaffinity`, pass that same mask back to `jl_setaffinity`. This ensures that the mask is always valid. Using a mask of all ones results in `EINVAL` on FreeBSD. Based on the discussion in JuliaLang#53402, this change may also fix Windows, so I've tried reenabling it here. - To check whether `jl_getaffinity` actually did something, we can check that the mask is no longer all zeros after the call. Fixes JuliaLang#54817 (cherry picked from commit 8a7e23d)
…l` wrapper correctly. (JuliaLang#54736) (cherry picked from commit 34cd610)
…Lang#55299) This PR reverts the optimization from 748149e (part of JuliaLang#48167), while keeping the fix for merging occurs_inv/occurs_cov, as that optimzation makes no sense especially when typevar occurs both inside and outside the inner intersection. Close JuliaLang#55206 (cherry picked from commit fb6b790)
The following symbols: `seed!, default_rng, Sampler, SamplerType, SamplerTrivial, SamplerSimple` Are documented in the Julia documentation and unexported, but not marked as public. Co-authored-by: Max Horn <[email protected]> (cherry picked from commit c66513f)
(cherry picked from commit f225f84)
In 1.10 we have ```jl julia> isleapyear(Year(1992)) false ``` which is semantically incorrect because `Year(1992)` is a duration (1992 years), not an instant. This PR restricts the currently unrestricted argument to integers. (cherry picked from commit fdecc59)
(cherry picked from commit b759fe2)
This includes support to properly forward MKL v2024's ILP64 CBLAS symbols, which fixes this [Enzyme issue](EnzymeAD/Enzyme.jl#1683) (cherry picked from commit 602b582)
…5310) Addresses the `Matrix` cases from https://github.com/JuliaLang/julia/issues/55296. This restores the behavior to match that on v1.10, and preserves the structure of the matrix on scaling by `NaN`. This behavior is consistent with the strong-zero behavior for other structured matrix types, and the scaling may be seen to be occurring in the vector space corresponding to the filled elements. After this, ```julia julia> UpperTriangular(rand(2,2)) * NaN 2×2 UpperTriangular{Float64, Matrix{Float64}}: NaN NaN ⋅ NaN ``` cc. @mikmoore (cherry picked from commit 0ef8a91)
At the moment this is rendered incorrectly: https://docs.julialang.org/en/v1.11.1/devdocs/llvm-passes/#JuliaLICM (cherry picked from commit a9342d6)
…Lang#56412) Follow up to JuliaLang#56392: also the warning in https://docs.julialang.org/en/v1.11.1/devdocs/llvm-passes/#Multiversioning is rendered incorrectly because of a missing space. (cherry picked from commit 3de1b1d)
…liaLang#56438) Fixes JuliaLang#56435 (cherry picked from commit 50ad4d9)
currentlu this route is mentioned in docs https://docs.julialang.org/en/v1/stdlib/Profile/#Triggered-During-Execution but missing from the module docstring, this should help users who have little idea how to "send a kernel signal to a process" to get started --------- Co-authored-by: Ian Butterworth <[email protected]> (cherry picked from commit 9af0dea)
Fixes JuliaLang#56141 Introduced by JuliaLang#52228 (a624d44) (cherry picked from commit 671cd5e)
…g#56511) Co-authored-by: Viral B. Shah <[email protected]> (cherry picked from commit cd748a5)
If we expect this to be a public API (https://github.com/timholy/Revise.jl for some reason is trying to access this state), we should lock around it for consistency with the other similar functions. Needed for timholy/Revise.jl#856 (cherry picked from commit 4cdd864)
…g#56550) Manual "backport" of JuliaLang#56538. I assume we want this against JuliaLang#56228 ?
…to 2420351 (JuliaLang#56608) Stdlib: SparseArrays URL: https://github.com/JuliaSparse/SparseArrays.jl.git Stdlib branch: release-1.11 Julia branch: backports-release-1.11 Old commit: cb602d7 New commit: 2420351 Julia version: 1.11.1 SparseArrays version: 1.11.0(Does not match) Bump invoked by: @dkarrasch Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: JuliaSparse/SparseArrays.jl@cb602d7...2420351 ``` $ git log --oneline cb602d7..2420351 2420351 Allow for duplicate docstrings in linalg docs (JuliaLang#584) 0a1c886 Merge pull request JuliaLang#571 from JuliaSparse/backports-release-1.11 298f5e1 Break recursion (JuliaLang#579) 7bc65ab Update CI fcc6102 Do not use nested dissection by default. (JuliaLang#550) 8534357 Update ci.yml: run CI and docs on v1.11 66d65fd Change default QR tolerance to match SPQR (JuliaLang#557) 8a48327 test: Don't use GPL module when Base.USE_GPL_LIBS=false (JuliaLang#535) 8dd8300 SparseMatrixCSC constructor with a Tuple of Integers (JuliaLang#523) aa66624 doc: move solvers doc to `src\solvers.md` (JuliaLang#576) 8a85fbe Inline sparse-times-dense in-place multiplication ``` Co-authored-by: Dilum Aluthge <[email protected]>
…ies (JuliaLang#56624) This is a slimmed-down version of JuliaLang#55910, without any of the re-factoring. This improves the parallelism of the pre-compile job and fixes a correctness bug, where unconditionally injecting a dependency after its parent could be in conflict with dependencies in between triggers, causing false extension cycles. Without this fix, adding `AMDGPU.jl` and `Tracker.jl` reports a false cycle on 1.11
Backported PRs: - [x] JuliaLang#55886 <!-- irrationals: restrict assume effects annotations to known types --> - [x] JuliaLang#55867 <!-- update `hash` doc string: `widen` not required any more --> - [x] JuliaLang#56084 <!-- slightly improve inference in precompilation code --> - [x] JuliaLang#56088 <!-- make `Base.ANSIIterator` have a concrete field --> - [x] JuliaLang#54093 <!-- Fix `JULIA_CPU_TARGET` being propagated to workers precompiling stdlib pkgimages --> - [x] JuliaLang#56165 <!-- Fix markdown list in installation.md --> - [x] JuliaLang#56148 <!-- Make loading work when stdlib deps are missing in the manifest --> - [x] JuliaLang#56174 <!-- Fix implicit `convert(String, ...)` in several places --> - [x] JuliaLang#56159 <!-- Add invalidation barriers for `displaysize` and `implicit_typeinfo` --> - [x] JuliaLang#56089 <!-- Call `MulAddMul` instead of multiplication in _generic_matmatmul! --> - [x] JuliaLang#56195 <!-- Include default user depot when JULIA_DEPOT_PATH has leading empty entry --> - [x] JuliaLang#56215 <!-- [REPL] fix lock ordering mistake in load_pkg --> - [x] JuliaLang#56251 <!-- REPL: run repl hint generation for modeswitch chars when not switching --> - [x] JuliaLang#56092 <!-- stream: fix reading LibuvStream into array --> - [x] JuliaLang#55870 <!-- fix infinite recursion in `promote_type` for `Irrational` --> - [x] JuliaLang#56227 <!-- Do not call `rand` during sysimage precompilation --> - [x] JuliaLang#55741 <!-- Change annotations to use a NamedTuple --> - [x] JuliaLang#56149 <!-- Specialize adding/subtracting mixed Upper/LowerTriangular --> - [x] JuliaLang#56214 <!-- fix precompile process flags --> - [x] JuliaLang#54471 - [x] JuliaLang#55622 - [x] JuliaLang#55704 - [x] JuliaLang#55764
Prevents calling this method from triggering undefined behavior in C (cherry picked from commit b6eeef2)
…ckages are in the sysimage (JuliaLang#52841)" This reverts commit 08d229f.
…ns independent of what packages are in the sysimage (JuliaLang#52841)" (JuliaLang#56658) This is a backport of JuliaLang#56234 It reverts commit 08d229f (and backports ad1dc39, which was included in the revert PR).
Backported PRs: - [x] JuliaLang#56595 <!-- fix precompile(::MethodInstance) ccall signature --> - [x] JuliaLang#56234 <!-- Revert "Extensions: make loading of extensions independent of what packages are in the sysimage (JuliaLang#52841) -->
…and more informative (JuliaLang#56621) (JuliaLang#56677) Was e.g. ``` ┌ Warning: Circular dependency detected. Precompilation will be skipped for: │ Base.PkgId(Base.UUID("eb0c05c4-6780-5852-a67e-5d31d2970b9a"), "ArrayInterfaceTrackerExt") │ Base.PkgId(Base.UUID("f517fe37-dbe3-4b94-8317-1923a5111588"), "Polyester") │ Base.PkgId(Base.UUID("0d7ed370-da01-4f52-bd93-41d350b8b718"), "StaticArrayInterface") │ Base.PkgId(Base.UUID("6a4ca0a5-0e36-4168-a932-d9be78d558f1"), "AcceleratedKernels") │ Base.PkgId(Base.UUID("244f68ed-b92b-5712-87ae-6c617c41e16a"), "NNlibAMDGPUExt") │ Base.PkgId(Base.UUID("06b0261c-7a9b-5753-9bdf-fd6840237b4a"), "StaticArrayInterfaceStaticArraysExt") │ Base.PkgId(Base.UUID("21141c5a-9bdb-4563-92ae-f87d6854732e"), "AMDGPU") │ Base.PkgId(Base.UUID("9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c"), "Tracker") └ @ Base.Precompilation precompilation.jl:511 ``` Now  Co-authored-by: Ian Butterworth <[email protected]>
…n extensions (JuliaLang#56666) (JuliaLang#56676) It is possible for an extension `ExtAB` to be loadable by one of its triggers, e.g. if `A` loads `B`. However, this loading is not supposed to happen during pre-compilation of `A`. Getting this wrong means disagreeing with the scheduled pre-compile jobs (`A` is not scheduled to depend on or generate a cache file for `ExtAB` but accidentally attempts both) and leads to confusing errors about missing cache files. We used to cover up this bad behavior w/ an erroneous cycle warning (fixed by JuliaLang#55910), but now we need to be sure this works.
hi! it looks like these PRs are built on the 1.11 backports branch which would be why the diffs look humongous --- I recommend a rebase against the current tip of master. and then, if applicable, they can be backported to 1.11 (and 1.12) separately |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No description provided.