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 CapAndHomalgTesting
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.versionThe version number of the loaded CapAndHomalg. Please mention this number in any bug report.
CapAndHomalg.PKG_DIR — ConstantCapAndHomalg.PKG_DIRThe 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_DOWNLOADList 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_COMPILEThe 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_COMPILECapAndHomalg.PACKAGES_TO_DOWNLOADCapAndHomalg.PKG_DIRCapAndHomalg.versionCapAndHomalg.DownloadAllPackagesFromHomalgProjectCapAndHomalg.DownloadPackageFromHomalgProjectCapAndHomalg.RemoveAllPackagesFromHomalgProjectCapAndHomalg.RemovePackageFromHomalgProjectCapAndHomalg.UpdateAllPackagesFromHomalgProjectCapAndHomalg.UpdatePackageFromHomalgProject