CapAndHomalg.jl
Introduction
The Julia package CapAndHomalg
provides simplified access to the repositories of the GAP packages hosted on the GitHub organization homalg-project, most of which are based on the
These are open source GAP multi-package projects for constructive category theory and homological algebra with applications to module theory of commutative and non-commutative algebras and algebraic geometry.
Installation
Install Julia
To install Julia follow the first Steps 0 and 1 on our installation page.
Install CapAndHomalg.jl
Then start julia
in a terminal and add the package CapAndHomalg
:
julia> using Pkg; Pkg.add("CapAndHomalg")
julia> using CapAndHomalg
Testing
The correctness of the installation and the availability of the functionality can at any time be tested using
julia> using Pkg; Pkg.test("CapAndHomalg")
Updating
After each update of the Julia package GAP
a rebuild is (probably) necessary:
julia> using Pkg; Pkg.update("CapAndHomalg")
julia> Pkg.build("CapAndHomalg")
This will also clone the repositories listed in CapAndHomalg.PACKAGES_TO_DOWNLOAD
using DownloadAllPackagesFromHomalgProject
and compile the packages listed in CapAndHomalg.PACKAGES_TO_COMPILE
using GAP.Packages.install
(pkgname
).
CapAndHomalg.version
— ConstantCapAndHomalg.version
The version number of the loaded CapAndHomalg
. Please mention this number in any bug report.
CapAndHomalg.PKG_DIR
— ConstantCapAndHomalg.PKG_DIR
The directory in which to install GAP packages from the GitHub organization https://github.com/homalg-project/. It is equal to joinpath(pathof(CapAndHomalg), "pkg")
.
CapAndHomalg.PACKAGES_TO_DOWNLOAD
— ConstantCapAndHomalg.PACKAGES_TO_DOWNLOAD
List of packages which will be considered by
CapAndHomalg.DownloadAllPackagesFromHomalgProject
— FunctionDownloadAllPackagesFromHomalgProject()
Apply DownloadPackageFromHomalgProject
to all packages listed in PACKAGES_TO_DOWNLOAD
.
CapAndHomalg.UpdateAllPackagesFromHomalgProject
— FunctionUpdateAllPackagesFromHomalgProject()
Apply UpdatePackageFromHomalgProject
to all packages listed in PACKAGES_TO_DOWNLOAD
.
CapAndHomalg.RemoveAllPackagesFromHomalgProject
— FunctionRemoveAllPackagesFromHomalgProject()
Apply RemovePackageFromHomalgProject
to all packages listed in PACKAGES_TO_DOWNLOAD
.
CapAndHomalg.DownloadPackageFromHomalgProject
— FunctionDownloadPackageFromHomalgProject(pkgname)
Clone the repository named pkgname
from the GitHub organization https://github.com/homalg-project/ to the subdirectory CapAndHomalg.PKG_DIR
. On success return true
and on failure false
.
CapAndHomalg.UpdatePackageFromHomalgProject
— FunctionUpdatePackageFromHomalgProject(pkgname)
Update the repository named pkgname
located in the subdirectory CapAndHomalg.PKG_DIR
from the GitHub organization https://github.com/homalg-project/. If the package directory does not exist locally then invoke DownloadPackageFromHomalgProject
(pkgname
). On success return true
and on failure false
.
CapAndHomalg.RemovePackageFromHomalgProject
— FunctionRemovePackageFromHomalgProject(pkgname)
Delete the repository named pkgname
from the subdirectory CapAndHomalg.PKG_DIR
. On success return true
and on failure false
. Removing a repository and re-downloading it might be useful if updating it fails.
CapAndHomalg.PACKAGES_TO_COMPILE
— ConstantCapAndHomalg.PACKAGES_TO_COMPILE
The list of all GAP packages that will downloaded (once) and installed by GAP.Packages.install
when using Pkg; Pkg.build("HomalgProject")
or when CompilePackagesForHomalgProject
is invoked. The latter should be called once GAP.jl
gets updated.
Software dependency
CapAndHomalg
relies on the
computer algebra systems | through the Julia packages |
---|---|
GAP | Gap.jl |
Singular | Singular_jll.jl |
all of which are components of the computer algebra system OSCAR.
Some of the bundled packages use the GAP packages
and the
third party software | through the GAP packages | and the Julia packages |
---|---|---|
Graphviz | dot-format generating code like in [Digraphs][Digraphs] | [Graphvizjll.jl][Graphvizjll.jl] |
4ti2 | [4ti2Interface][4ti2Interface] | [lib4ti2jll.jl][lib4ti2jll.jl] |
<!– | cddlib | [CddInterface][CddInterface] | [cddlibjll.jl][cddlibjll.jl] | | Normaliz | [NormalizInterface][NormalizInterface] | [normalizjll.jl][normalizjll.jl] | –>
General Disclaimer
The software comes with absolutely no warranty and will most likely have errors. If you use it for computations, please check the correctness of the result very carefully.
This software is licensed under the LGPL, version 3, or any later version.
Funding
The development of this package and many of the GAP packages hosted on the GitHub organization homalg-project was partially funded by the DFG (German Research Foundation) through the
[Digraphs]: https://github.com/gap-packages/digraphs/#readme [4ti2Interface]: https://github.com/homalg-project/homalgproject/tree/master/4ti2Interface/#readme [CddInterface]: https://github.com/homalg-project/CddInterface/#readme [NormalizInterface]: https://github.com/gap-packages/NormalizInterface/#readme [Graphvizjll.jl]: https://github.com/JuliaBinaryWrappers/Graphvizjll.jl/ [lib4ti2jll.jl]: https://github.com/JuliaBinaryWrappers/lib4ti2jll.jl/ [cddlibjll.jl]: https://github.com/JuliaBinaryWrappers/cddlibjll.jl/ [normalizjll.jl]: https://github.com/JuliaBinaryWrappers/normaliz_jll.jl/
Index
CapAndHomalg.PACKAGES_TO_COMPILE
CapAndHomalg.PACKAGES_TO_DOWNLOAD
CapAndHomalg.PKG_DIR
CapAndHomalg.version
CapAndHomalg.DownloadAllPackagesFromHomalgProject
CapAndHomalg.DownloadPackageFromHomalgProject
CapAndHomalg.RemoveAllPackagesFromHomalgProject
CapAndHomalg.RemovePackageFromHomalgProject
CapAndHomalg.UpdateAllPackagesFromHomalgProject
CapAndHomalg.UpdatePackageFromHomalgProject