You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With a small and not very contrived example I can reproducibly cause an "internal error" with Julia 1.5.0 and I don't understand why:
julia> s = [nothing, identity]
2-element Array{Union{typeof(identity), Nothing},1}:nothing
identity (generic function with 1 method)
julia>foo(values) = values[2]("wololo")
foo (generic function with 1 method)
julia>bar(values...) = values[2]("wololo")
bar (generic function with 1 method)
julia>foo(s)
"wololo"
julia>bar(s...)
Internal error: encountered unexpected error in runtime:TypeError(func=:Tuple, context="non-final parameter", expected=Type, got=Vararg{Any, N} where N)
jl_type_error_rt at /buildworker/worker/package_linux64/build/src/rtutils.c:118
jl_f_apply_type at /buildworker/worker/package_linux64/build/src/builtins.c:972
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2214 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1690 [inlined]
do_apply at /buildworker/worker/package_linux64/build/src/builtins.c:655
argtypes_to_type at ./compiler/typeutils.jl:46 [inlined]
abstract_call at ./compiler/abstractinterpretation.jl:924
abstract_call at ./compiler/abstractinterpretation.jl:911
abstract_eval at ./compiler/abstractinterpretation.jl:1005
typeinf_local at ./compiler/abstractinterpretation.jl:1270
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1326
typeinf at ./compiler/typeinfer.jl:12
typeinf_ext at ./compiler/typeinfer.jl:570
typeinf_ext at ./compiler/typeinfer.jl:601
jfptr_typeinf_ext_20209.clone_1 at /home/mschlott/.pool/julia/1.5.0/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2214 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1690 [inlined]
jl_type_infer at /buildworker/worker/package_linux64/build/src/gf.c:296
jl_generate_fptr at /buildworker/worker/package_linux64/build/src/jitlayers.cpp:290
jl_compile_method_internal at /buildworker/worker/package_linux64/build/src/gf.c:1964
jl_compile_method_internal at /buildworker/worker/package_linux64/build/src/gf.c:1919 [inlined]
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2224 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1690 [inlined]
do_apply at /buildworker/worker/package_linux64/build/src/builtins.c:655
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2214 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1690 [inlined]
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:117
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:206
eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:157 [inlined]
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:566
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:660
top-level scope at REPL[5]:1
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:840
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:790
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:883
eval at ./boot.jl:331
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2214 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
eval_user_input at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:134
repl_backend_loop at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:195
start_repl_backend at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:180#run_repl#37 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:292
run_repl at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:288
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2231 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398#806 at ./client.jl:399
jfptr_YY.806_52378.clone_1 at /home/mschlott/.pool/julia/1.5.0/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2214 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1690 [inlined]
do_apply at /buildworker/worker/package_linux64/build/src/builtins.c:655
jl_f__apply_latest at /buildworker/worker/package_linux64/build/src/builtins.c:705#invokelatest#1 at ./essentials.jl:710 [inlined]
invokelatest at ./essentials.jl:709 [inlined]
run_main_repl at ./client.jl:383
exec_options at ./client.jl:313
_start at ./client.jl:506
jfptr__start_43701.clone_1 at /home/mschlott/.pool/julia/1.5.0/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2214 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
unknown function (ip:0x401931)
unknown function (ip:0x401533)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip:0x4015d4)
"wololo"
Interestingly, if I switch the order of nothing and identity, it works as expected:
julia> s = [identity, nothing]
2-element Array{Union{typeof(identity), Nothing},1}:
identity (generic function with 1 method)
nothing
julia>foo(values) = values[1]("wololo")
foo (generic function with 1 method)
julia>bar(values...) = values[1]("wololo")
bar (generic function with 1 method)
julia>foo(s)
"wololo"
julia>bar(s...)
"wololo"
Here's the output of versioninfo():
julia>versioninfo()
Julia Version 1.5.0
Commit 96786e22cc (2020-08-0123:44 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU:Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
WORD_SIZE:64
LIBM: libopenlibm
LLVM: libLLVM-9.0.1 (ORCJIT, skylake)
The text was updated successfully, but these errors were encountered:
With a small and not very contrived example I can reproducibly cause an "internal error" with Julia 1.5.0 and I don't understand why:
Interestingly, if I switch the order of
nothing
andidentity
, it works as expected:Here's the output of
versioninfo()
:The text was updated successfully, but these errors were encountered: