This package is part of the Julia standard library (stdlib).
LinearAlgebra.jl
provides functionality for performing linear algebra operations in Julia.
Build Status | Coverage |
---|---|
Since this package was split out from the main Julia repository, you might have previously made a pull request (PR) to the Julia repo. You can easily migrate such PRs to this repository using the following steps:
-
Add the Julia repository (or your fork) as a new remote repository:
git remote add juliarepo https://github.com/JuliaLang/julia
-
Fetch the commits from the Julia repository:
git fetch juliarepo
-
Cherry-pick the relevant commits made in the Julia repository to this repository:
git cherry-pick $JULIA_COMMIT
This package performs some type piracy and is also included in the sysimage, which makes using a development version slightly more complex than usual.
To use a development version of this package, you can choose one of the following methods:
-
Change the UUID in the project file and load the package:
Change the UUID line in
Project.toml
as- uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + uuid = "27e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Start
julia
asJULIA_PRUNE_OLD_LA=true julia +nightly --compiled-modules=existing --project
where it is assumed that one is already within the
LinearAlgebra
directory (otherwise, adjust the project path accordingly). Thejulia +nightly
command above assumes thatjuliaup
is being used to launchjulia
, but one may substitute this with the path to the julia executable.Within the
julia
session, load theLinearAlgebra
module after pruning the one in the sysimage. This may be done asinclude("test/prune_old_LA.jl") && using LinearAlgebra
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.
If you are contributing to the repo using this method, it may be convenient to ignore the local changes to
Project.toml
by runninggit update-index --skip-worktree Project.toml
-
Build Julia with the custom
LinearAlgebra
commit:Modify the commit in
stdlib/LinearAlgebra.version
and build Julia. This requires one to push the development branch toGitHub
or an equivalent platform. -
Build a custom sysimage with the new
LinearAlgebra
:- Install
PackageCompiler
. - Load it and, with this project active, run:
create_sysimage(["LinearAlgebra"]; sysimage_path="new_sysimage.so", incremental=false, filter_stdlibs=true)
- Start Julia with the custom sysimage:
julia -Jnew_sysimage.so
- Install