-
Notifications
You must be signed in to change notification settings - Fork 132
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
Oscar tests crash on Julia 1.4.2 on Ubuntu #104
Comments
I can also reproduce this on macOS. (BTW note that these actually don't seem to be crashes, Julia keeps running). Here is another error I am seeing; note that both errors are inside Polymake tests:
I thought that it might be related to oscar-system/Polymake.jl#293 but in a quick test, switching to Polymake.jl master doesn't seem to help (but I might have screwed up) |
I don't think this is related to the Polymake Integer issue, but more some type inference bug in julia, maybe similar to JuliaLang/julia#23786. Maybe stemming from Hecke or Nemo types? It can be triggered in the REPL with the following. And it triggers before any actual code is run, a
Same error happens for this:
Interestingly it does not appear if the optional Bool is specified explicitly:
Also julia
|
Thanks Benjamin. I guess we ought to report this to the Julia devs then, and simultaneously see if we can find a workaround |
Adding The other error seems to come from GAP. |
On Fri, Jun 19, 2020 at 04:09:00AM -0700, Benjamin Lorenz wrote:
I don't think this is related to the Polymake Integer issue, but more some type inference bug in julia, maybe similar to JuliaLang/julia#23786. Maybe stemming from Hecke or Nemo types?
It can be triggered in the REPL with the following. And it triggers before any actual code is run, a ***@***.***` in the first line of `norm_equation_fac_elem` will print after the error.
```
it's the mixture.
Hecke "alone" is fine:
In Oscar
Hecke.build()
is fine
Oscar.build()
the errors.
Indeed, some type seems to be too complex.
… julia> using Oscar
----- ----- ----- - -----
| | | | | | | | | |
| | | | | | | |
| | ----- | | | |-----
| | | | |-----| | |
| | | | | | | | | |
----- ----- ----- - - - -
...combining (and extending) ANTIC, GAP, Polymake and Singular
Version 0.3.0-dev ...
... which comes with absolutely no warranty whatsoever
Type: '?Oscar' for more information
(c) 2019-2020 by The Oscar Development Team
julia> k, a = wildanger_field(3, 13)
(Number field over Rational Field with defining polynomial x^3-13*x^2+13*x-13, _$)
julia> zk = maximal_order(k)
Maximal order of Number field over Rational Field with defining polynomial x^3-13*x^2+13*x-13
with basis nf_elem[1, _$, 1//2*_$^2 + 1//2]
julia> na = norm(rand(zk, 1:10))
17991
julia> s = norm_equation(zk, na)
Internal error: encountered unexpected error in runtime:
MethodError(f=typeof(Base.string)(), args=(Expr(:<:, :t, :r),), world=0x0000000000000f21)
jl_method_error_bare at /var/tmp/portage/dev-lang/julia-1.4.2/work/julia-1.4.2/src/gf.c:1719
jl_method_error at /var/tmp/portage/dev-lang/julia-1.4.2/work/julia-1.4.2/src/gf.c:1737
...
jl_toplevel_eval_in at /var/tmp/portage/dev-lang/julia-1.4.2/work/julia-1.4.2/src/toplevel.c:848
eval at ./boot.jl:331
eval_user_input at /var/tmp/portage/dev-lang/julia-1.4.2/work/julia-1.4.2/usr/share/julia/stdlib/v1.4/REPL/src/REPL.jl:86
macro expansion at /var/tmp/portage/dev-lang/julia-1.4.2/work/julia-1.4.2/usr/share/julia/stdlib/v1.4/REPL/src/REPL.jl:118 [inlined]
#26 at ./task.jl:358
jl_apply at /var/tmp/portage/dev-lang/julia-1.4.2/work/julia-1.4.2/src/julia.h:1700 [inlined]
start_task at /var/tmp/portage/dev-lang/julia-1.4.2/work/julia-1.4.2/src/task.c:687
unknown function (ip: (nil))
1-element Array{NfAbsOrdElem{AnticNumberField,nf_elem},1}:
_$^2 + 6*_$ + 4
```
Same error happens for this:
```
julia> norm_equation_fac_elem(zk,fmpz(na))
Internal error: encountered unexpected error in runtime:
MethodError(f=typeof(Base.string)(), args=(Expr(:<:, :t, :r),), world=0x0000000000000f21)
jl_method_error_bare at /var/tmp/portage/dev-lang/julia-1.4.2/work/julia-1.4.2/src/gf.c:1719
...
```
Interestingly it does not appear if the optional Bool is specified explicitly:
```
julia> norm_equation_fac_elem(zk,fmpz(na),abs=false)
1-element Array{FacElem{nf_elem,AnticNumberField},1}:
Factored element with data
Dict{nf_elem,fmpz}(-41//5997*_$^2 + 554//5997*_$ - 256//1999 => -1,-1 => 1)
```
Also julia ***@***.***_warntype` fails with an AssertionError. julia seems to be very deep in the type inference and then fail because some type is too complex? (the assertion is here: https://github.com/JuliaLang/julia/blob/master/base/compiler/typelimits.jl#L23)
```
julia> @code_warntype norm_equation_fac_elem(zk,fmpz(na))
ERROR: AssertionError: t <: r
Stacktrace:
[1] limit_type_size(::Any, ::Any, ::Any, ::Int64, ::Int64) at ./compiler/typelimits.jl:23
[2] abstract_call_method(::Method, ::Any, ::Core.SimpleVector, ::Bool, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:359
[3] abstract_call_gf_by_type(::Any, ::Array{Any,1}, ::Any, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:101
[4] abstract_call_known(::Any, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:873
[5] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:895
[6] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:880
[7] abstract_eval(::Any, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:974
[8] typeinf_local(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1227
[9] typeinf_nocycle(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1283
[10] typeinf(::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:12
[11] typeinf_edge(::Method, ::Any, ::Core.SimpleVector, ::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:488
[12] abstract_call_method(::Method, ::Any, ::Core.SimpleVector, ::Bool, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:404
[13] abstract_call_gf_by_type(::Any, ::Array{Any,1}, ::Any, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:101
[14] abstract_call_known(::Any, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:873
[15] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:895
[16] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:880
[17] abstract_eval(::Any, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:974
[18] typeinf_local(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1213
[19] typeinf_nocycle(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1295
[20] typeinf(::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:12
[21] typeinf_edge(::Method, ::Any, ::Core.SimpleVector, ::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:488
[22] abstract_call_method(::Method, ::Any, ::Core.SimpleVector, ::Bool, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:404
[23] abstract_call_gf_by_type(::Any, ::Array{Any,1}, ::Any, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:101
[24] abstract_call_known(::Any, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:873
[25] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:895
[26] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:880
[27] abstract_eval(::Any, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:974
[28] typeinf_local(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1227
[29] typeinf_nocycle(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1283
... (the last 10 lines are repeated 2 more times)
[50] typeinf(::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:12
[51] typeinf_edge(::Method, ::Any, ::Core.SimpleVector, ::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:488
[52] abstract_call_method(::Method, ::Any, ::Core.SimpleVector, ::Bool, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:404
[53] abstract_call_gf_by_type(::Any, ::Array{Any,1}, ::Any, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:101
[54] abstract_call_known(::Any, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:873
[55] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:895
[56] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:880
[57] abstract_eval(::Any, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:974
[58] typeinf_local(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1213
[59] typeinf_nocycle(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1283
[60] typeinf(::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:12
[61] typeinf_edge(::Method, ::Any, ::Core.SimpleVector, ::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:488
[62] abstract_call_method(::Method, ::Any, ::Core.SimpleVector, ::Bool, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:404
[63] abstract_call_gf_by_type(::Any, ::Array{Any,1}, ::Any, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:101
[64] abstract_call_known(::Any, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:873
[65] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:895
[66] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:880
[67] abstract_eval(::Any, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:974
[68] typeinf_local(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1227
... (the last 10 lines are repeated 1 more time)
[79] typeinf_nocycle(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1295
[80] typeinf(::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:12
[81] typeinf_edge(::Method, ::Any, ::Core.SimpleVector, ::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:488
[82] abstract_call_method(::Method, ::Any, ::Core.SimpleVector, ::Bool, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:404
[83] abstract_call_gf_by_type(::Any, ::Array{Any,1}, ::Any, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:101
[84] abstract_call_known(::Any, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:873
[85] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:895
[86] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:880
[87] abstract_eval(::Any, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:974
[88] typeinf_local(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1227
[89] typeinf_nocycle(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1283
... (the last 10 lines are repeated 3 more times)
[120] typeinf(::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:12
[121] typeinf_edge(::Method, ::Any, ::Core.SimpleVector, ::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:488
[122] abstract_call_method(::Method, ::Any, ::Core.SimpleVector, ::Bool, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:404
[123] abstract_call_gf_by_type(::Any, ::Array{Any,1}, ::Any, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:101
[124] abstract_call_known(::Any, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:873
[125] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:895
[126] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:880
[127] abstract_eval(::Any, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:974
[128] typeinf_local(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1213
[129] typeinf_nocycle(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1283
... (the last 10 lines are repeated 3 more times)
[160] typeinf(::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:12
[161] typeinf_edge(::Method, ::Any, ::Core.SimpleVector, ::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:488
[162] abstract_call_method(::Method, ::Any, ::Core.SimpleVector, ::Bool, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:404
[163] abstract_call_gf_by_type(::Any, ::Array{Any,1}, ::Any, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:101
[164] abstract_call_known(::Any, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:873
[165] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState, ::Int64) at ./compiler/abstractinterpretation.jl:895
[166] abstract_call(::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:880
[167] abstract_eval(::Any, ::Array{Any,1}, ::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:974
[168] typeinf_local(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1227
[169] typeinf_nocycle(::Core.Compiler.InferenceState) at ./compiler/abstractinterpretation.jl:1283
... (the last 10 lines are repeated 2 more times)
[190] typeinf(::Core.Compiler.InferenceState) at ./compiler/typeinfer.jl:12
[191] typeinf_code(::Method, ::Any, ::Core.SimpleVector, ::Bool, ::Core.Compiler.Params) at ./compiler/typeinfer.jl:515
[192] code_typed(::Any, ::Any; optimize::Bool, debuginfo::Symbol, world::UInt64, params::Core.Compiler.Params) at ./reflection.jl:1107
[193] code_warntype(::Base.TTY, ::Any, ::Any; debuginfo::Symbol, optimize::Bool) at /var/tmp/portage/dev-lang/julia-1.4.2/work/julia-1.4.2/usr/share/julia/stdlib/v1.4/InteractiveUtils/src/codeview.jl:37
[194] code_warntype(::Base.TTY, ::Any, ::Any) at /var/tmp/portage/dev-lang/julia-1.4.2/work/julia-1.4.2/usr/share/julia/stdlib/v1.4/InteractiveUtils/src/codeview.jl:35
[195] code_warntype(::Any, ::Any; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /var/tmp/portage/dev-lang/julia-1.4.2/work/julia-1.4.2/usr/share/julia/stdlib/v1.4/InteractiveUtils/src/codeview.jl:61
[196] code_warntype(::Any, ::Any) at /var/tmp/portage/dev-lang/julia-1.4.2/work/julia-1.4.2/usr/share/julia/stdlib/v1.4/InteractiveUtils/src/codeview.jl:61
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
#104 (comment)
|
Which one is "The other error" that points at GAP? |
In the log in the first post:
|
Ah OK. Yeah that should already be resolved on master (but I'll check once I am back at my computer and fix it if it is still there) |
Just to confirm that I can reproduce this internal error on a 2-weeks old Julia's master branch, but not on today's master. I will compile the Julia-1.5 branch (that with backports) to see if the fix was backported already. |
@rfourquet I get the same issue with Julia 1.5.0-beta1 but indeed it works for me with the current Julia |
And I get the same issue with the |
This is fixed on master by JuliaLang/julia@cb41bbb from JuliaLang/julia#36200 (CC @rfourquet ) |
Submit to Julia issue tracker as JuliaLang/julia#36407 |
I am getting type inference and other crashes in Julia-1.4.2 when running the Oscar tests.
The text was updated successfully, but these errors were encountered: