Skip to content

Commit 7264a49

Browse files
jishnubaraujomsJeffBezansonstevengjWalterMadelim
authored
Backports release 1.12 (#1353)
Backported PRs: - [x] #1209 <!-- Remove `LinearAlgebra` qualifications in `cholesky.jl` --> - [x] #1230 <!-- Avoid materializing `diag` in `Diagonal` `kron` --> - [x] #1240 <!-- Reduce `stable_muladdmul` branches in `generic matvecmul!` --> - [x] #1247 <!-- fix dispatch to herk --> - [x] #1255 <!-- use smaller matrix size in `peakflops` on 32-bit --> - [x] #1310 <!-- Only `@noinline` error path in `matmul_size_check` --> - [x] #1267 <!-- Refine column ranges in `_isbanded_impl` --> - [x] #1320 <!-- Copy matrices in `triu`/`tril` if no zero exists for the `eltype` --> - [x] #1324 <!-- Fix empty `Tridiagonal` broadcast --> - [x] #1327 <!-- `iszero` check in hessenberg setindex --> - [x] #1326 <!-- Fix multiplication with empty `HessenbergQ` --> - [x] #1332 <!-- Unwrap triangular matrices in broadcast --> - [x] #1337 <!-- Change `1:size` to `axes` in bidiag mul --> - [x] #1342 <!-- `Char` uplo in `Bidiagonal` constructor --> - [x] #1344 <!-- Update the docstring of ldiv! --> - [x] #1335 <!-- Test: prune old LA based on ENV variable --> - [x] #1346 <!-- Fix scaling unit triangular matrices --> - [x] #1355 <!-- Add compat notice for `diagview` --> - [x] #1349 <!-- Prune `LinearAlgebra` module in ambiguity test --> Contains multiple commits, manual intervention needed: - [x] #1238 <!-- Ensure positive-definite matrix in lapack posv test --> - [x] #1298 <!-- Add `diagm` example --> - [x] #1312 <!-- WIP: Try use method deletion instead of custom sysimage --> - [x] #1333 <!-- Make `fillstored!` public --> - [x] #1331 <!-- Document SingularException throw for inv(::AbstractMatrix) --> - [x] #1350 <!-- Fix copy for partly initialized unit triangular --> Non-merged PRs with backport label: - [x] #1352 <!-- log for dense diagonal matrix with negative elements --> - [ ] #1305 <!-- Bounds-checking in triangular indexing branches --> --------- Co-authored-by: Mateus Araújo <[email protected]> Co-authored-by: Jeff Bezanson <[email protected]> Co-authored-by: Steven G. Johnson <[email protected]> Co-authored-by: WalterMadelim <[email protected]> Co-authored-by: Kristoffer Carlsson <[email protected]> Co-authored-by: Daniel Karrasch <[email protected]> Co-authored-by: Michael Abbott <[email protected]>
1 parent 4e7c3f4 commit 7264a49

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+689
-548
lines changed

.buildkite/runtests.yml

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ steps:
1616
version: "nightly"
1717
arch: "i686"
1818
command: |
19-
julia --color=yes --project=.ci -e 'using Pkg; Pkg.instantiate()'
20-
julia --color=yes --project=.ci .ci/create_sysimage_and_run_tests.jl
19+
julia --color=yes --code-coverage=@ .ci/run_tests.jl
2120
agents:
2221
queue: "julia"
2322
os: "linux"
@@ -40,8 +39,7 @@ steps:
4039
- JuliaCI/julia#v1:
4140
version: "nightly"
4241
command: |
43-
julia --color=yes --project=.ci --code-coverage=@ -e 'using Pkg; Pkg.instantiate()'
44-
julia --color=yes --project=.ci --code-coverage=@ .ci/create_sysimage_and_run_tests.jl
42+
julia --color=yes --code-coverage=@ .ci/run_tests.jl
4543
agents:
4644
queue: "julia"
4745
os: "linux"
@@ -55,8 +53,7 @@ steps:
5553
- JuliaCI/julia-coverage#v1:
5654
codecov: true
5755
command: |
58-
julia --color=yes --project=.ci --code-coverage=@ -e 'using Pkg; Pkg.instantiate()'
59-
julia --color=yes --project=.ci --code-coverage=@ .ci/create_sysimage_and_run_tests.jl
56+
julia --color=yes --code-coverage=@ .ci/run_tests.jl
6057
agents:
6158
queue: "julia"
6259
os: "macos"
@@ -69,8 +66,7 @@ steps:
6966
- JuliaCI/julia-coverage#v1:
7067
codecov: true
7168
command: |
72-
julia --color=yes --project=.ci --code-coverage=@ -e 'using Pkg; Pkg.instantiate()'
73-
julia --color=yes --project=.ci --code-coverage=@ .ci/create_sysimage_and_run_tests.jl
69+
julia --color=yes --code-coverage=@ .ci/run_tests.jl
7470
agents:
7571
queue: "julia"
7672
os: "windows"

.ci/Manifest.toml

Lines changed: 0 additions & 222 deletions
This file was deleted.

.ci/Project.toml

Lines changed: 0 additions & 8 deletions
This file was deleted.

.ci/create_sysimage.jl

Lines changed: 0 additions & 16 deletions
This file was deleted.

.ci/create_sysimage_and_run_docs.jl

Lines changed: 0 additions & 6 deletions
This file was deleted.

.ci/create_sysimage_and_run_tests.jl

Lines changed: 0 additions & 7 deletions
This file was deleted.

.ci/run_tests.jl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
if haskey(ENV, "BUILDKITE")
2+
ncores = Sys.CPU_THREADS
3+
else
4+
ncores = ceil(Int, Sys.CPU_THREADS / 2)
5+
end
6+
7+
proj = abspath(joinpath(@__DIR__, ".."))
8+
cmd = """Base.runtests(["LinearAlgebra"]; propagate_project=true, ncores=$ncores)"""
9+
run(addenv(`$(Base.julia_cmd()) --project=$proj --compiled-modules=existing -e $cmd`,
10+
"JULIA_NUM_THREADS" => 1, "JULIA_PRUNE_OLD_LA" => true))

.github/workflows/ci.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@ jobs:
2121
version: 'nightly'
2222
- name: Generate docs
2323
run: |
24-
julia --color=yes --project=.ci -e 'using Pkg; Pkg.instantiate()'
2524
julia --color=yes --project=docs -e 'using Pkg; Pkg.instantiate()'
26-
julia --color=yes --project=.ci .ci/create_sysimage_and_run_docs.jl
25+
julia --color=yes --project=docs --compiled-modules=existing docs/make.jl
2726
env:
2827
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}
2928
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

README.md

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,37 @@ This package performs some type piracy and is also included in the sysimage, whi
3737
To use a development version of this package, you can choose one of the following methods:
3838

3939
1. **Change the UUID in the project file and load the package:**
40-
This approach will produce warnings and may lead to method ambiguities between the development version and the one in the sysimage, but it can be used for basic experimentation.
40+
41+
Change the UUID line in `Project.toml` as
42+
```diff
43+
- uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
44+
+ uuid = "27e2e46d-f89d-539d-b4ee-838fcccc9c8e"
45+
```
46+
47+
Start `julia` as
48+
```console
49+
JULIA_PRUNE_OLD_LA=true julia +nightly --compiled-modules=existing --project
50+
```
51+
where it is assumed that one is already within the `LinearAlgebra` directory (otherwise, adjust
52+
the project path accordingly). The `julia +nightly` command above assumes that `juliaup` is being used
53+
to launch `julia`, but one may substitute this with the path to the julia executable.
54+
55+
Within the `julia` session, load the `LinearAlgebra` module after pruning the one in the sysimage. This may be done as
56+
```julia
57+
include("test/prune_old_LA.jl") && using LinearAlgebra
58+
```
59+
60+
Note that loading the test files in the REPL will automatically carry out the pruning to ensure that the development version of the package is used in the tests.
61+
62+
If you are contributing to the repo using this method, it may be convenient to ignore the local changes to `Project.toml` by running
63+
```console
64+
git update-index --skip-worktree Project.toml
65+
```
4166

4267
2. **Build Julia with the custom `LinearAlgebra` commit:**
43-
Modify the commit in `stdlib/LinearAlgebra.version` and build Julia.
68+
69+
Modify the commit in [`stdlib/LinearAlgebra.version`](https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra.version) and build Julia. This requires one to push the development branch
70+
to `GitHub` or an equivalent platform.
4471

4572
3. **Build a custom sysimage with the new `LinearAlgebra`:**
4673
- Install `PackageCompiler`.

docs/make.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
withenv("JULIA_PRUNE_OLD_LA" => "true") do
2+
include("../test/prune_old_LA.jl")
3+
end
4+
15
using LinearAlgebra
26
using Documenter: DocMeta, makedocs, deploydocs, HTML
37

0 commit comments

Comments
 (0)