-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Releasing GAP.jl 0.13.0 #1114
Comments
|
I can add |
See oscar-system/Oscar.jl#4421 for Oscar CI running with GAP.jl master (and a patched Hecke). There are various compilation errors, but I hope that these vanish once #1116 is merged. Anyway, let me copy-paste them here:
I re-started the 1.10-book job after it spent around 50 min in the |
The re-run of oscar-system/Oscar.jl#4421 after #1116 got merged looks mostly fine. The failures are jobs that haven't picked up a new registry version or that haven't been patched (and thus try to use GAP.jl 0.12.x). The only problem are the book tests. Still in the rerun, the |
The garbage collections look very weird, these are huge amounts, and always very even numbers (from this log for the book-tests https://github.com/oscar-system/Oscar.jl/actions/runs/12653712200/job/35259830194#step:11:1023). |
The hang comes from
The if !has_is_finite(G)
# try to obtain an isomorphic permutation group, but don't try too hard
#TODO: With GAP 4.13.0, the prescribed bound 100000 will cause a test failure.
# This regression will hopefully be fixed in GAP 4.13.1,
# see https://github.com/gap-system/gap/issues/5697
# and https://github.com/gap-system/gap/pull/5698.
# iso = GAP.Globals.IsomorphismPermGroupOrFailFpGroup(GapObj(G), 100000)::GapObj
iso = GAP.Globals.IsomorphismPermGroupOrFailFpGroup(GapObj(G))::GapObj # <- HANGS here
iso != GAP.Globals.fail && return describe(PermGroup(GAPWrap.Range(iso)))
elseif is_finite(G) I also tried using the version with limit 100000 but it still hangs. I also tried with limit 1000 and it still hangs. |
A fix for the hang is in gap-system/gap#5900 which we could cherry-pick. I'll also mark it for backporting to GAP 4.14.1. |
We now got a segfault during GC in the book tests, see https://github.com/oscar-system/Oscar.jl/actions/runs/12692064905/job/35376564890?pr=4421#step:11:547.
Maybe the GC patch you removed in JuliaPackaging/Yggdrasil#10224 is still needed? |
There is also a GC corruption in the 1.10 long tests without experimental:
From https://github.com/oscar-system/Oscar.jl/actions/runs/12692064898/job/35376536231?pr=4421 (I recommend opening this log in raw format). |
This comment was marked as outdated.
This comment was marked as outdated.
We now have a failure in From worker 7: julia> gset(alternating_group(4))
From worker 7: G-set of
From worker 7: Alt(4)
From worker 7: with seeds 1:4
From worker 7:
From worker 7: julia> G = dihedral_group(6);
From worker 7:
From worker 7: julia> U = sub(G, [g for g in gens(G) if order(g) == 2])[1]
From worker 7: Sub-pc group of order 2
From worker 7:
From worker 7: julia> r = right_cosets(G, U)
From worker 7: Right cosets of
From worker 7: sub-pc group of order 2 in
From worker 7: pc group of order 6
From worker 7:
From worker 7: julia> acting_group(r)
From worker 7: Pc group of order 6
From worker 7:
From worker 7: julia> collect(r)
From worker 7: 3-element Vector{GroupCoset{PcGroup, SubPcGroup, PcGroupElem}}:
From worker 7: Right coset of U with representative <identity> of ...
From worker 7: Right coset of U with representative f2
From worker 7: Right coset of U with representative f2^2
From worker 7:
From worker 7: julia> action_function(r)
From worker 7: * (generic function with
From worker 7:
From worker 7: julia> permutation(r, G[1])
From worker 7: (2,3)
From worker 7:
From worker 7: julia> phi = right_coset_action(G,U)
From worker 7: Group homomorphism
From worker 7: from pc group of order 6
From worker 7: to permutation group of degree 3 and order 6
From worker 7:
From worker 7: julia> phi(G[1]), phi(G[2])
From worker 7: ((2,3), (1,2,3))
From worker 7:
From worker 7: julia> function optimal_transitive_perm_rep(G)
From worker 7: is_natural_symmetric_group(G) && return hom(G,G,gens(G))
From worker 7: is_natural_alternating_group(G) && return hom(G,G,gens(G))
From worker 7: cand = [] # pairs (U,h) with U ≤ G and h a map G -> Sym(G/U)
From worker 7: for C in subgroup_classes(G)
From worker 7: U = representative(C)
From worker 7: h = right_coset_action(G, U)
From worker 7: is_injective(h) && push!(cand, (U, h))
From worker 7: end
From worker 7: return argmax(a -> order(a[1]), cand)[2]
From worker 7: end;
From worker 7:
From worker 7: julia> U = dihedral_group(8)
From worker 7: Pc group of order 8
From worker 7:
From worker 7: julia> optimal_transitive_perm_rep(U)
From worker 7: Group homomorphism
From worker 7: from pc group of order 8
From worker 7: to permutation group of degree 4 and order 8
From worker 7:
From worker 7: julia> isomorphism(PermGroup, U)
From worker 7: Group homomorphism
From worker 7: from pc group of order 8
From worker 7: to permutation group of degree 4 and order 8
From worker 7:
From worker 7: julia> permutation_group(U)
From worker 7: Permutation group of degree 4 and order 8
From worker 7:
From worker 7: julia> for g in all_transitive_groups(degree => 3:8, !is_primitive)
From worker 7: h = image(optimal_transitive_perm_rep(g))[1]
From worker 7: if degree(h) < degree(g)
From worker 7: id = transitive_group_identification(g)
From worker 7: id_new = transitive_group_identification(h)
From worker 7: println(id => id_new)
From worker 7: end
From worker 7: end
From worker 7: - (6, 2) => (3, 2)
From worker 7: - (6, 4) => (4, 4)
From worker 7: - (6, 7) => (4, 5)
From worker 7: - (6, 8) => (4, 5)
From worker 7: - (8, 4) => (4, 3)
From worker 7: - (8, 13) => (6, 6)
From worker 7: - (8, 14) => (4, 5)
From worker 7: - (8, 24) => (6, 11)
From worker 7: + ERROR: Error thrown by GAP: Error, <map> must be a general mapping at /home/oscarci-tester/oscar-runners/runner-09/julia/artifacts/3e5eaf57b15456d2ea7e646ffa3271782a55414a/share/gap/lib/mapping.gi:100 called from
From worker 7: + Image( hom, G ) at /home/oscarci-tester/oscar-runners/runner-09/julia/artifacts/3e5eaf57b15456d2ea7e646ffa3271782a55414a/share/gap/lib/csetperm.gi:931 called from
From worker 7: + DoFactorCosetActionPerm( G, U ) at /home/oscarci-tester/oscar-runners/runner-09/julia/artifacts/3e5eaf57b15456d2ea7e646ffa3271782a55414a/share/gap/lib/csetperm.gi:943 called from
From worker 7: + <function \"FactorCosetAction by right transversal operation\">( <arguments> )
From worker 7: + called from read-eval loop at *defin*:0
From worker 7: +
From worker 7: + Stacktrace:
From worker 7: + [1] error(s::String)
From worker 7: + @ Base ./error.jl:35
From worker 7: + [2] ThrowObserver(depth::Int32)
From worker 7: + @ GAP ~/oscar-runners/runner-09/julia/packages/GAP/1Pl0S/src/GAP.jl:99
From worker 7: + [3] _call_gap_func
From worker 7: + @ ~/oscar-runners/runner-09/julia/packages/GAP/1Pl0S/src/ccalls.jl:356 [inlined]
From worker 7: + [4] (::GapObj)(a1::GapObj, a2::GapObj)
From worker 7: + @ GAP ~/oscar-runners/runner-09/julia/packages/GAP/1Pl0S/src/ccalls.jl:321
From worker 7: + [5] FactorCosetAction
From worker 7: + @ ~/oscar-runners/runner-09/_work/Oscar.jl/Oscar.jl/src/GAP/wrappers.jl:99 [inlined]
From worker 7: + [6] right_coset_action(G::PermGroup, U::PermGroup)
From worker 7: + @ Oscar ~/oscar-runners/runner-09/_work/Oscar.jl/Oscar.jl/src/Groups/action.jl:606
From worker 7: + [7] optimal_transitive_perm_rep(G::PermGroup)
From worker 7: + @ Main.__244 ./REPL[65]:7
From worker 7: + [8] top-level scope
From worker 7: + @ ./REPL[70]:2""" |
See gap-system/gap#5902 for the upstream report with a more minimal failing example |
All 1.10 CI jobs of https://github.com/oscar-system/Oscar.jl/actions/runs/12725036717?pr=4421 now succeeded (including the book tests) 🎉 |
What do we need for releasing GAP.jl 0.13.0 ?
- a full PR adapting Oscar.jl can come later, but it would be nice to know it is possible, instead of having to first release 0.13.1. Then again, that won't kill us either
Anything else, @ThomasBreuer @lgoettgens ?
We could also go for "only load a minimal set of packages" / "no packages" (that was my original plan). But that's another biggish change, so perhaps it is better to not do this now, but try it for 0.14.0 which could come quickly after 0.13.0 ?
Other things that would be nice but are not necessary from my POV:
GAP.versioninfo()
showing a list of loaded GAP packages (including version, package installation path) #1082 -- someone feeling like addingGAP.versioninfo()
?GAP_pkg_juliainterface_jll
:The text was updated successfully, but these errors were encountered: