homalg-project / homalgproject.jl Goto Github PK
View Code? Open in Web Editor NEWThe homalg project compatibility package for Julia
License: GNU Lesser General Public License v3.0
The homalg project compatibility package for Julia
License: GNU Lesser General Public License v3.0
Add the Graphviz_jll since Digraphs does not download and compile the Graphviz binaries.
Now that oscar-system/GAP.jl#413 has been merged start using GAP.Packages.install
.
I recommend that in your scripts which invoke 4ti2 via Julia, you add --startup-file=no
to the julia commands, to avoid issues (including errors and slowdowns) caused by user's startup files. While at it, perhaps also add in -O0
for a potential minor speedup.
See also oscar-system/Singular.jl#235 where similar scripts are added. (Perhaps we can eventually upgrade lib4ti2_jll
to directly include these, but that's besides the point)
Moreover, I caution that these scripts may not work correctly in general, as there is no reason to assume that the user has lib4ti2_jll
installed in their global environment. I.e. if I do Pkg.add("HomalgProject")
then lib4ti2_jll
will be available, but import
ing it from e.g. your graver
script will fail (I think -- but I didn't try it. Please double check my claims ;-). I described a potential solution at oscar-system/Singular.jl#236
(Follow-up of #66)
The readme currently links to the Oscar installation page (https://oscar.computeralgebra.de/install/), which does not mention libjulia-dev
. Maybe we should link to https://homalg-project.github.io/docs/installation instead (as in the readme of CapAndHomalg.jl)?
Or maybe the Oscar installation page should mention libjulia-dev
? It seems to be required by GAP.jl, see oscar-system/GAP.jl#533.
This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml
to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix
on this issue.
I'll open a PR within a few hours, please be patient!
Add the lib4ti2_jll contributed by @fingolfin since 4ti2Interface does not download and compile the 4ti2 binaries.
I open this issue on behalf of F. Patrick Rabarison. Here is his original (email) message:
I'm a new user in julia and I have some trouble while using both the packages CapAndHomalg and HomalgProject. Maybe you could be any help? I use ubuntu 20.04 and here I send for instance what I got when using the package HomalgProject.
julia>
using Pkg
julia>
using HomalgProject
[ Info: Precompiling HomalgProject [50bd374c-87b5-11e9-015a-2febe71398bd]
[ Info: Set up gaproot at /home/rabarison/.julia/packages/GAP/wIHfC/gaproot/v1.4
ERROR: LoadError: could not load library "libjulia"
libjulia.so: cannot open shared object file: No such file or directory
Stacktrace:
[1] dlopen(::String, ::UInt32; throw_error::Bool) at
/build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Libdl/src/Libdl.jl:109
[2] dlopen at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Libdl/src/Libdl.jl:109
[inlined] (repeats 2 times)
[3] dlpath(::String) at
/build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Libdl/src/Libdl.jl:232
[4] libDir() at ./string:32
[5] ldflags at ./string:52 [inlined]
[6] regenerate_gaproot() at
/home/rabarison/.julia/packages/GAP/wIHfC/src/setup.jl:89
[7] top-level scope at /home/rabarison/.julia/packages/GAP/wIHfC/src/GAP.jl:12
[8] include(::Module, ::String) at ./Base.jl:377
[9] top-level scope at none:2
[10] eval at ./boot.jl:331 [inlined]
[11] eval(::Expr) at ./client.jl:449
[12] top-level scope at ./none:3
in expression starting at
/home/rabarison/.julia/packages/GAP/wIHfC/src/GAP.jl:12
ERROR: LoadError: Failed to precompile GAP
[c863536a-3901-11e9-33e7-d5cd0df7b904] to
/home/rabarison/.julia/compiled/v1.4/GAP/YqHod_aVfVz.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
[3] _require(::Base.PkgId) at ./loading.jl:1029
[4] require(::Base.PkgId) at ./loading.jl:927
[5] require(::Module, ::Symbol) at ./loading.jl:922
[6] include(::Module, ::String) at ./Base.jl:377
[7] top-level scope at none:2
[8] eval at ./boot.jl:331 [inlined]
[9] eval(::Expr) at ./client.jl:449
[10] top-level scope at ./none:3
in expression starting at
/home/rabarison/.julia/packages/HomalgProject/tWdpO/src/HomalgProject.jl:65
ERROR: Failed to precompile HomalgProject
[50bd374c-87b5-11e9-015a-2febe71398bd] to
/home/rabarison/.julia/compiled/v1.4/HomalgProject/z4ehp_aVfVz.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
[3] _require(::Base.PkgId) at ./loading.jl:1029
[4] require(::Base.PkgId) at ./loading.jl:927
[5] require(::Module, ::Symbol) at ./loading.jl:922
Use the exported functions of ExecutableProduct
s to properly set the appropriate environment variables as suggest by @fingolfin.
Testing HomalgProject.jl
with the master branch of GAP and either the master branch of Julia (commit 24efaa4f38) or Julia 1.2.0 rc2 fails when testing using Pkg.test("HomalgProject")
. In contrast, when testing by running julia test/runtests.jl
tests pass.
Here is the relevant debug output:
$ julia-1.2.0-rc2
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.2.0-rc2.0 (2019-07-08)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
julia> import Pkg
julia> Pkg.test("HomalgProject")
Updating registry at `~/.julia/registries/General`
Updating git-repo `https://github.com/JuliaRegistries/General.git`
Testing HomalgProject
Resolving package versions...
Status `/tmp/jl_EVvG19/Manifest.toml`
[c863536a] GAP v0.2.0
[cd4130c4] GAPTypes v1.0.0
[50bd374c] HomalgProject v0.1.6 [`~/.julia/dev/HomalgProject.jl`]
[2a0f44e3] Base64 [`@stdlib/Base64`]
[ade2ca70] Dates [`@stdlib/Dates`]
[8ba89e20] Distributed [`@stdlib/Distributed`]
[b77e0a4c] InteractiveUtils [`@stdlib/InteractiveUtils`]
[76f85450] LibGit2 [`@stdlib/LibGit2`]
[8f399da3] Libdl [`@stdlib/Libdl`]
[56ddb016] Logging [`@stdlib/Logging`]
[d6f4376e] Markdown [`@stdlib/Markdown`]
[44cfe95a] Pkg [`@stdlib/Pkg`]
[de0858da] Printf [`@stdlib/Printf`]
[3fa0cd96] REPL [`@stdlib/REPL`]
[9a3f8284] Random [`@stdlib/Random`]
[ea8e919c] SHA [`@stdlib/SHA`]
[9e88b42a] Serialization [`@stdlib/Serialization`]
[6462fe0b] Sockets [`@stdlib/Sockets`]
[8dfed614] Test [`@stdlib/Test`]
[cf7118a7] UUIDs [`@stdlib/UUIDs`]
[4ec0a83e] Unicode [`@stdlib/Unicode`]
Adding path /home/florian/.julia/packages/GAP/4IqsC/gap/.libs to DL_LOAD_PATH
Panic in src/julia_gc.c:825: could not import GAPTypes module into Julia
ERROR: LoadError: Failed to precompile HomalgProject [50bd374c-87b5-11e9-015a-2febe71398bd] to /home/florian/.julia/compiled/v1.2/HomalgProject/z4ehp.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1253
[3] _require(::Base.PkgId) at ./loading.jl:1013
[4] require(::Base.PkgId) at ./loading.jl:911
[5] require(::Module, ::Symbol) at ./loading.jl:906
[6] include at ./boot.jl:328 [inlined]
[7] include_relative(::Module, ::String) at ./loading.jl:1094
[8] include(::Module, ::String) at ./Base.jl:31
[9] include(::String) at ./client.jl:431
[10] top-level scope at none:5
in expression starting at /home/florian/.julia/dev/HomalgProject.jl/test/runtests.jl:1
ERROR: Package HomalgProject errored during testing
Stacktrace:
[1] pkgerror(::String, ::Vararg{String,N} where N) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/Pkg/src/Types.jl:112
[2] #test#119(::Bool, ::Nothing, ::typeof(Pkg.Operations.test), ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/Pkg/src/Operations.jl:1288
[3] #test at ./none:0 [inlined]
[4] #test#62(::Bool, ::Nothing, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(Pkg.API.test), ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/Pkg/src/API.jl:245
[5] test at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/Pkg/src/API.jl:233 [inlined]
[6] #test#61 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/Pkg/src/API.jl:230 [inlined]
[7] test at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/Pkg/src/API.jl:230 [inlined]
[8] #test#60 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/Pkg/src/API.jl:229 [inlined]
[9] test at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/Pkg/src/API.jl:229 [inlined]
[10] #test#59(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(Pkg.API.test), ::String) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/Pkg/src/API.jl:228
[11] test(::String) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/Pkg/src/API.jl:228
[12] top-level scope at REPL[2]:1
Tests for GAP.jl with Pkg.test("GAP")
pass.
@rbehrends, @fingolfin, @sebasguts: Any ideas?
@fingolfin: Why do I get this warning when using HomalgProject
but not when using Oscar
although both import GAP
and Singular
.
julia> using HomalgProject
┌ Warning: More than one copy of gmp already loaded, using the 1st one
└ @ LoadFlint ~/.julia/packages/LoadFlint/42zpR/src/LoadFlint.jl:40
julia>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.