Skip to content
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

Update to GAP.jl 0.11.3 resp. GAP 4.13.1 #3688

Merged
merged 8 commits into from
Sep 16, 2024

Conversation

fingolfin
Copy link
Member

@fingolfin fingolfin commented May 4, 2024

Draft as there is a failing test I had to disable for now. We already have a fix for that in GAP, but I still need to apply it to the GAP_lib_jll . We might also just wait for GAP 4.13.1 which is due soon. But I would like to get full CI tests run now to make sure there aren't other regressions hiding.

Resolves #2341

Copy link

codecov bot commented May 14, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 84.64%. Comparing base (224cb53) to head (0d25050).
Report is 14 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff            @@
##           master    #3688    +/-   ##
========================================
  Coverage   84.64%   84.64%            
========================================
  Files         612      614     +2     
  Lines       83240    83343   +103     
========================================
+ Hits        70460    70548    +88     
- Misses      12780    12795    +15     
Files with missing lines Coverage Δ
src/Groups/GAPGroups.jl 94.13% <ø> (ø)
src/Groups/cosets.jl 89.59% <100.00%> (ø)
src/Groups/directproducts.jl 92.85% <ø> (ø)
src/Groups/homomorphisms.jl 90.76% <ø> (-1.35%) ⬇️

... and 18 files with indirect coverage changes

@fingolfin
Copy link
Member Author

@ThomasBreuer overall this looks pretty good; we could cherry-pick the (simple) fix in GAP that fixes the describe test (which this PR currently commented out), to make a new GAP_lib_jll.

But in our discussion earlier today, it sounded as if you were aware of another issue with the new GAP / GAP.jl which is perhaps not reflected by the tests here (something about a book example) ?

@ThomasBreuer
Copy link
Member

I meant this example:

julia> U = dihedral_group(8)
Pc group of order 8

julia> optimal_perm_rep(U)
Group homomorphism
  from pc group of order 8
  to permutation group of degree 4 and order 8
 
julia> isomorphism(PermGroup, U)
Group homomorphism
  from pc group of order 8
  to permutation group of degree 8 and order 8

where the idea was to show that optimal_perm_rep(U) yields something better than the general isomorphism(PermGroup, U) but apparently the new GAP's IsomorphismPermGroup is clever enough to compute the representation on 4 points.

@thofma

This comment was marked as outdated.

@lgoettgens

This comment was marked as outdated.

@thofma

This comment was marked as outdated.

@lgoettgens

This comment was marked as outdated.

@lgoettgens
Copy link
Member

just FYI: the increased number of invalidations is reported to come from

function AbstractAlgebra.promote_rule(::Type{S}, ::Type{T}) where {RT, RET, MST, S<:AbsLocalizedRingElem{RT, RET, MST}, T<:RingElement}
AbstractAlgebra.promote_rule(RET, T) == RET ? S : Union{}
end

@fingolfin fingolfin changed the title Update to GAP.jl 0.11.0 resp. GAP 4.13.0 Update to GAP.jl 0.11.1 resp. GAP 4.13.1 Jun 13, 2024
@fingolfin
Copy link
Member Author

sigh two different crashes...

GC error (probable corruption)
Allocations: 592882531 (Pool: 592501723; Big: 380808); GC: 131

!!! ERROR in jl_ -- ABORTING !!!

thread 0 ptr queue:
~~~~~~~~~~ ptr queue top ~~~~~~~~~~
GAP.SmallBag()
==========
GAP.SmallBag()
==========
GAP.GapObj()
==========
...

and also

character fields of Brauer characters |    4      4  0.1s

[3691] signal 11 (1): Segmentation fault
in expression starting at /home/runner/work/Oscar.jl/Oscar.jl/test/Groups/group_characters.jl:1111
MarkBag at /workspace/srcdir/gap-4.13.1/src/julia_gc.c:1070 [inlined]
MarkArrayOfBags at /workspace/srcdir/gap-4.13.1/src/bags.inc:21
BagMarkFunc at /workspace/srcdir/gap-4.13.1/src/julia_gc.c:710
gc_mark_outrefs at /cache/build/tester-amdci4-9/julialang/julia-master/src/gc.c:2952 [inlined]
gc_mark_loop_serial_ at /cache/build/tester-amdci4-9/julialang/julia-master/src/gc.c:2968
gc_mark_loop_serial at /cache/build/tester-amdci4-9/julialang/julia-master/src/gc.c:2991
gc_mark_loop at /cache/build/tester-amdci4-9/julialang/julia-master/src/gc.c:3168 [inlined]
_jl_gc_collect at /cache/build/tester-amdci4-9/julialang/julia-master/src/gc.c:3557
ijl_gc_collect at /cache/build/tester-amdci4-9/julialang/julia-master/src/gc.c:3936

@ThomasBreuer
Copy link
Member

Once the upgrade of Oscar to GAP 4.13 is done, we can adjust those parts of the Oscar code that become nicer with GAP 4.13 (at least those with a comment line involving gap-system); and issue #2341 can be closed.

@@ -60,10 +60,10 @@ Group homomorphism
julia> isomorphism(PermGroup, U)
Group homomorphism
from pc group of order 8
to permutation group of degree 8 and order 8
to permutation group of degree 4 and order 8
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This example was originally intended to demonstrate that isomorphism is in general not good enough to get such a small degree for the image. Now this part of the book chapter becomes less suggestive.
(Since the final proofs of the Oscar book are still not available, do we have a chance to replace this example in the book by a better one? Of course the next release of GAP may then destroy the effect again ...)

@fingolfin
Copy link
Member Author

We are getting this error now, any idea what it might be about and how to fix it, @ThomasBreuer

G-sets by right transversals: Error During Test at /home/runner/work/Oscar.jl/Oscar.jl/test/Groups/gsets.jl:328
  Test threw exception
  Expression: Omega[end] == Omega[length(Omega)]
  StackOverflowError:
G-sets by right transversals: Error During Test at /home/runner/work/Oscar.jl/Oscar.jl/test/Groups/gsets.jl:338
  Test threw exception
  Expression: findfirst(is_equal(Omega[i]), Omega) == i
  StackOverflowError:
G-sets by right transversals: Error During Test at /home/runner/work/Oscar.jl/Oscar.jl/test/Groups/gsets.jl:338
  Test threw exception
  Expression: findfirst(is_equal(Omega[i]), Omega) == i
  StackOverflowError:

@ThomasBreuer
Copy link
Member

ThomasBreuer commented Sep 11, 2024

Yes, this is one instance of the problems with julia_to_gap we want to get rid of. I will provide a preliminary fix in Oscar.

Edit: cherry-picked into this branch

@ThomasBreuer

This comment was marked as outdated.

Project.toml Outdated Show resolved Hide resolved
@lgoettgens lgoettgens changed the title Update to GAP.jl 0.11.1 resp. GAP 4.13.1 Update to GAP.jl 0.11.2 resp. GAP 4.13.1 Sep 11, 2024
@lgoettgens
Copy link
Member

CI complains that recog is not available. After digging into it for some time with @ThomasBreuer, we noticed that this is due to no version of io being available (which is a transitive dependency of recog). Just trying to GAP.Packages.load("io", "4.8.2", quiet=false) fails because of oscar-system/GAP.jl#1037.

Project.toml Outdated Show resolved Hide resolved
@lgoettgens lgoettgens changed the title Update to GAP.jl 0.11.2 resp. GAP 4.13.1 Update to GAP.jl 0.11.3 resp. GAP 4.13.1 Sep 16, 2024
@lgoettgens
Copy link
Member

With GAP.jl v0.11.3 this now look good 🎉🎉
(apart from the macOS-RPTU server not picking up any jobs)

@fingolfin fingolfin marked this pull request as ready for review September 16, 2024 07:00
@fingolfin
Copy link
Member Author

We'll restart the RPTU CI runners soon, but in the meantime I've run the test on my mac and they were fine.

@fingolfin fingolfin merged commit e5c0365 into oscar-system:master Sep 16, 2024
25 checks passed
@fingolfin fingolfin deleted the mh/gap-4.13 branch September 16, 2024 08:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

very slow doctest for all_character_table_names (group_characters.jl:380-395)
4 participants