Skip to content

Various UndefVarErrors when using JET with julia 1.12 and deprecation errors #1227

@lgoettgens

Description

@lgoettgens

Consider the following from the current GAP.jl master:

$ julia +1.12-nightly --project=. --depwarn=error
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.12.0-rc1.45 (2025-08-19)
 _/ |\__'_|_|_|\__'_|  |  release-1.12/18f42dc1b61 (fork: 463 commits, 197 days)
|__/                   |

julia> using JET # loads v0.10.6

julia> using GAP
 ┌───────┐   GAP 4.14.0 of 2024-12-05
 │  GAP  │   https://www.gap-system.org
 └───────┘   Architecture: x86_64-pc-linux-gnu-julia1.12-64-kv9
 Configuration:  gmp 6.3.0, Julia GC, Julia 1.12.0-rc1, readline
 Loading the library and packages ...
 Packages:   AClib 1.3.2, Alnuth 3.2.1, AtlasRep 2.1.9, AutPGrp 1.11, 
             Browse 1.8.21, CaratInterface 2.3.7, CRISP 1.4.6, Cryst 4.1.27, 
             CrystCat 1.1.10, CTblLib 1.3.9, curlInterface 2.4.1, FactInt 1.6.3, 
             FGA 1.5.0, Forms 1.2.12, GAPDoc 1.6.7, genss 1.6.9, IO 4.9.1, 
             IRREDSOL 1.4.4, JuliaInterface 0.15.0-DEV, LAGUNA 3.9.7, orb 4.9.1, 
             Polenta 1.3.10, Polycyclic 2.16, PrimGrp 3.4.4, RadiRoot 2.9, 
             recog 1.4.3, ResClasses 4.7.3, SmallGrp 1.5.4, Sophus 1.27, 
             SpinSym 1.5.2, StandardFF 1.0, TomLib 1.2.11, TransGrp 3.6.5, 
             utils 0.85
 Try '??help' for help. See also '?copyright', '?cite' and '?authors'

julia> report_package(GAP)
[toplevel-info] virtualized the context of Main (took 0.411 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/GAP.jl
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/setup.jl
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/julia-config.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/julia-config.jl (took 0.206 sec)
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/setup.jl (took 1.869 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/types.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/types.jl (took 0.264 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/lowlevel.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/lowlevel.jl (took 0.045 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/ccalls.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/ccalls.jl (took 1.375 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/globals.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/globals.jl (took 0.061 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/macros.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/macros.jl (took 2.63 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/wrappers.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/wrappers.jl (took 5.325 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/adapter.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/adapter.jl (took 0.914 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/gap_to_julia.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/gap_to_julia.jl (took 0.37 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/constructors.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/constructors.jl (took 0.184 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/julia_to_gap.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/julia_to_gap.jl (took 3.393 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/utils.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/utils.jl (took 0.133 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/help.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/help.jl (took 0.081 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/prompt.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/prompt.jl (took 0.023 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/exec.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/exec.jl (took 0.035 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/doctestfilters.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/doctestfilters.jl (took 0.084 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/GAP_pkg.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/GAP_pkg.jl (took 0.18 sec)
[toplevel-info] entered into /home/lgoe/code/julia/GAP.jl/src/packages.jl
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/packages.jl (took 0.438 sec)
[toplevel-info]  exited from /home/lgoe/code/julia/GAP.jl/src/GAP.jl (took 19.078 sec)
═════ 20 toplevel errors found ═════
┌ @ /home/lgoe/code/julia/GAP.jl/src/GAP.jl:61 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/GAP.jl:98 
│ UndefVarError: `copy_gap_error_to_julia` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:56 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:207 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:233 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:234 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:235 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:236 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:238 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:257 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:259 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:344 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:351 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:361 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:372 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:384 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
┌ @ /home/lgoe/code/julia/GAP.jl/src/ccalls.jl:397 
│ UndefVarError: `GapObj` not defined in `GAP`
│ Suggestion: define the const at top-level before running function that uses it (stricter Julia v1.12+ rule).
│ Note: the binding state changed since the error occurred (was: 11, now: 0).
│ Hint: a global variable of this name also exists in GAP.
│ Stacktrace:
│   [1] top-level scope
│     @ :0
│   [2] evaluate_methoddef(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Expr)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:325
│   [3] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:517
│   [4] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, node::Any, istoplevel::Bool)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1421
│   [5] step_expr!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/interpret.jl:620
│   [6] finish!(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, frame::JuliaInterpreter.Frame, istoplevel::Bool)
│     @ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/41lEl/src/commands.jl:14
│   [7] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64; force_concretize::Bool, lnnref::Base.RefValue{LineNumberNode})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:917
│   [8] _virtual_process!(res::JET.VirtualProcessResult, toplevelex::Expr, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:683
│   [9] _virtual_process!(res::JET.VirtualProcessResult, s::String, filename::String, analyzer::JET.JETAnalyzer{JET.BasicPass}, config::JET.ToplevelConfig, context::Module, pkg_mod_depth::Int64)
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:666
│  [10] handle_include(interp::JET.ConcreteInterpreter{JET.var"#usemodule_with_err_handling#64"{Base.RefValue{LineNumberNode}, String, JET.ToplevelConfig, Int64, Set{Symbol}, JET.var"#general_err_handler#54"{Base.RefValue{LineNumberNode}, String}}, JET.JETAnalyzer{JET.BasicPass}}, include_func::Any, args::Vector{Any})
│     @ JET ~/.julia/packages/JET/z9poX/src/toplevel/virtualprocess.jl:1574
└───────────────────────
[rest of stacktrace in next comment due to github's maximum allowed length]

This looks like it could be due to the binding replacement changes in julia 1.12. @Keno, could you please have a look at this?
Or it could also be due to the way that JET loads and analyzes the package (ping @aviatesk).

Some pointers: The type GapObj gets declared in

_declare_gap_obj() = @ccall libgap.GAP_DeclareGapObj(:GapObj::Symbol, GAP::Module, Any::Any)::Any
(working around aviatesk/JET.jl#734), which calls into gap, which itself then creates the type using jl_new_foreign_type in https://github.com/gap-system/gap/blob/5d7c580b064baf03636e35c0da5c8ee444f4cafd/src/julia_gc.c#L717. During the __init__ of GAP.jl, we call again into gap (
@ccall libgap.GAP_InitJuliaMemoryInterface((@__MODULE__)::Any, C_NULL::Ptr{Nothing})::Nothing
) which itself calls back into julia using jl_reinit_foreign_type in https://github.com/gap-system/gap/blob/5d7c580b064baf03636e35c0da5c8ee444f4cafd/src/julia_gc.c#L776. My best guess is that this handling broke somehow with the bpart changes (but somehow only in the presence of JET). Any help here is greatly appreciated. Thanks!

There is also a single error about copy_gap_error_to_julia in-between the other ones. This is a function and has nothing to do with the gcext interface. Maybe @Keno can see what's wrong with our use of it?

cc @fingolfin

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions