-
Notifications
You must be signed in to change notification settings - Fork 31
Open
Description
There are two (seemingly) independent failures that happen only on nightly:
- non-terminating inference
- codegen error
Failure 1
Not sure, but here's a reduced MWE at least:
using Diffractor
function times_three_while(x)
z = x
i = 3
while i > 1
z += x
i -= 1
end
z
end
let var"'" = Diffractor.PrimeDerivativeBack
println(times_three_while'(1.0) == 3.0)
end
The IR that Diffractor generates is identical on latest Julia versus 2cee483bce
(ir.txt), but inference appears to get stuck in a loop doing semi-concrete eval of >
and -
:
semi-concrete eval: (::Diffractor.∂⃖{1})(typeof(Base.:(-)), Int64, Int64) from (::Diffractor.∂⃖{N})(T, Any...) where {T, N}
semi-concrete eval: (::Diffractor.∂⃖{1})(typeof(Base.:(>)), Int64, Int64) from (::Diffractor.∂⃖{N})(T, Any...) where {T, N}
semi-concrete eval: (::Diffractor.∂⃖{1})(typeof(Base.:(-)), Int64, Int64) from (::Diffractor.∂⃖{N})(T, Any...) where {T, N}
semi-concrete eval: (::Diffractor.∂⃖{1})(typeof(Base.:(>)), Int64, Int64) from (::Diffractor.∂⃖{N})(T, Any...) where {T, N}
semi-concrete eval: (::Diffractor.∂⃖{1})(typeof(Base.:(-)), Int64, Int64) from (::Diffractor.∂⃖{N})(T, Any...) where {T, N}
semi-concrete eval: (::Diffractor.∂⃖{1})(typeof(Base.:(>)), Int64, Int64) from (::Diffractor.∂⃖{N})(T, Any...) where {T, N}
... (repeats infinitely)
Originally posted by @topolarity in #234 (comment)
Failure 2
There seems to be another error that happens at different level:
julia> include("test/regression")
Internal error: encountered unexpected error in runtime:
MethodError(f=Base.string, args=(Expr(:call, :>, Expr(:., :val, :(:id)), 0),), world=0x000000000000167b)
jl_method_error_bare at ~/julia4/src/gf.c:2202
jl_method_error at ~/julia4/src/gf.c:2220
jl_lookup_generic_ at ~/julia4/src/gf.c:3067 [inlined]
ijl_apply_generic at ~/julia4/src/gf.c:3082
macro expansion at ./error.jl:233 [inlined]
renumber_ssa at ./compiler/ssair/slot2ssa.jl:56
#439 at ./compiler/ssair/slot2ssa.jl:62 [inlined]
ssamap at ./compiler/utilities.jl:379
renumber_ssa! at ./compiler/ssair/slot2ssa.jl:62 [inlined]
renumber_ssa! at ./compiler/ssair/slot2ssa.jl:61 [inlined]
construct_ssa! at ./compiler/ssair/slot2ssa.jl:904
slot2reg at ./compiler/optimize.jl:1118
run_passes_ipo_safe at ./compiler/optimize.jl:905
run_passes_ipo_safe at ./compiler/optimize.jl:920 [inlined]
optimize at ./compiler/optimize.jl:894
jfptr_optimize_44631 at ~/julia4/usr/lib/julia/sys.dylib (unknown line)
_jl_invoke at ~/julia4/src/gf.c:2885 [inlined]
ijl_apply_generic at ~/julia4/src/gf.c:3086
_typeinf at ./compiler/typeinfer.jl:264
typeinf at ./compiler/typeinfer.jl:216
typeinf_edge at ./compiler/typeinfer.jl:865
abstract_call_method at ./compiler/abstractinterpretation.jl:654
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:102
abstract_call_known at ./compiler/abstractinterpretation.jl:2145
abstract_call at ./compiler/abstractinterpretation.jl:2227
abstract_apply at ./compiler/abstractinterpretation.jl:1653
abstract_call_known at ./compiler/abstractinterpretation.jl:2046
abstract_call at ./compiler/abstractinterpretation.jl:2227
abstract_call at ./compiler/abstractinterpretation.jl:2220
abstract_call at ./compiler/abstractinterpretation.jl:2376
abstract_eval_call at ./compiler/abstractinterpretation.jl:2391
abstract_eval_statement_expr at ./compiler/abstractinterpretation.jl:2407
abstract_eval_statement at ./compiler/abstractinterpretation.jl:2719
abstract_eval_basic_statement at ./compiler/abstractinterpretation.jl:3017
typeinf_local at ./compiler/abstractinterpretation.jl:3256
typeinf_nocycle at ./compiler/abstractinterpretation.jl:3332
_typeinf at ./compiler/typeinfer.jl:246
typeinf at ./compiler/typeinfer.jl:216
typeinf_edge at ./compiler/typeinfer.jl:865
abstract_call_method at ./compiler/abstractinterpretation.jl:654
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:102
abstract_call_known at ./compiler/abstractinterpretation.jl:2145
abstract_call at ./compiler/abstractinterpretation.jl:2227
abstract_call at ./compiler/abstractinterpretation.jl:2220
abstract_call at ./compiler/abstractinterpretation.jl:2376
abstract_eval_call at ./compiler/abstractinterpretation.jl:2391
abstract_eval_statement_expr at ./compiler/abstractinterpretation.jl:2407
abstract_eval_statement at ./compiler/abstractinterpretation.jl:2719
abstract_eval_basic_statement at ./compiler/abstractinterpretation.jl:3017
typeinf_local at ./compiler/abstractinterpretation.jl:3256
typeinf_nocycle at ./compiler/abstractinterpretation.jl:3332
_typeinf at ./compiler/typeinfer.jl:246
typeinf at ./compiler/typeinfer.jl:216
typeinf_edge at ./compiler/typeinfer.jl:865
abstract_call_method at ./compiler/abstractinterpretation.jl:654
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:102
abstract_call_known at ./compiler/abstractinterpretation.jl:2145
abstract_call at ./compiler/abstractinterpretation.jl:2227
abstract_apply at ./compiler/abstractinterpretation.jl:1653
abstract_call_known at ./compiler/abstractinterpretation.jl:2046
abstract_call at ./compiler/abstractinterpretation.jl:2227
abstract_call at ./compiler/abstractinterpretation.jl:2220
abstract_call at ./compiler/abstractinterpretation.jl:2376
abstract_eval_call at ./compiler/abstractinterpretation.jl:2391
abstract_eval_statement_expr at ./compiler/abstractinterpretation.jl:2407
abstract_eval_statement at ./compiler/abstractinterpretation.jl:2719
abstract_eval_basic_statement at ./compiler/abstractinterpretation.jl:3017
typeinf_local at ./compiler/abstractinterpretation.jl:3256
typeinf_nocycle at ./compiler/abstractinterpretation.jl:3332
_typeinf at ./compiler/typeinfer.jl:246
typeinf at ./compiler/typeinfer.jl:216
typeinf_edge at ./compiler/typeinfer.jl:865
abstract_call_method at ./compiler/abstractinterpretation.jl:654
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:102
abstract_call_known at ./compiler/abstractinterpretation.jl:2145
abstract_call at ./compiler/abstractinterpretation.jl:2227
abstract_call at ./compiler/abstractinterpretation.jl:2220
abstract_call at ./compiler/abstractinterpretation.jl:2376
abstract_eval_call at ./compiler/abstractinterpretation.jl:2391
abstract_eval_statement_expr at ./compiler/abstractinterpretation.jl:2407
abstract_eval_statement at ./compiler/abstractinterpretation.jl:2719
abstract_eval_basic_statement at ./compiler/abstractinterpretation.jl:3017
typeinf_local at ./compiler/abstractinterpretation.jl:3256
typeinf_nocycle at ./compiler/abstractinterpretation.jl:3332
_typeinf at ./compiler/typeinfer.jl:246
typeinf at ./compiler/typeinfer.jl:216
typeinf_ext at ./compiler/typeinfer.jl:1040
typeinf_ext_toplevel at ./compiler/typeinfer.jl:1078
typeinf_ext_toplevel at ./compiler/typeinfer.jl:1074
jfptr_typeinf_ext_toplevel_42091 at ~/julia4/usr/lib/julia/sys.dylib (unknown line)
_jl_invoke at ~/julia4/src/gf.c:2885 [inlined]
ijl_apply_generic at ~/julia4/src/gf.c:3086
jl_apply at ~/julia4/src/./julia.h:2132 [inlined]
jl_type_infer at ~/julia4/src/gf.c:387
jl_generate_fptr_impl at ~/julia4/src/jitlayers.cpp:508
jl_compile_method_internal at ~/julia4/src/gf.c:2493
_jl_invoke at ~/julia4/src/gf.c:2896 [inlined]
ijl_apply_generic at ~/julia4/src/gf.c:3086
jl_apply at ~/julia4/src/./julia.h:2132 [inlined]
do_call at ~/julia4/src/interpreter.c:126
eval_stmt_value at ~/julia4/src/interpreter.c:174 [inlined]
eval_body at ~/julia4/src/interpreter.c:637
eval_body at ~/julia4/src/interpreter.c:552
jl_interpret_toplevel_thunk at ~/julia4/src/interpreter.c:795
macro expansion at ~/julia4/usr/share/julia/stdlib/v1.11/Test/src/Test.jl:676 [inlined]
top-level scope at ~/packages/Diffractor/test/regression.jl:27
jl_toplevel_eval_flex at ~/julia4/src/toplevel.c:941
jl_eval_module_expr at ~/julia4/src/toplevel.c:215 [inlined]
jl_toplevel_eval_flex at ~/julia4/src/toplevel.c:741
jl_toplevel_eval_flex at ~/julia4/src/toplevel.c:884
ijl_toplevel_eval at ~/julia4/src/toplevel.c:950 [inlined]
ijl_toplevel_eval_in at ~/julia4/src/toplevel.c:992
eval at ./boot.jl:426 [inlined]
include_string at ./loading.jl:2177
_jl_invoke at ~/julia4/src/gf.c:2885 [inlined]
ijl_apply_generic at ~/julia4/src/gf.c:3086
_include at ./loading.jl:2237
include at ./sysimg.jl:38
unknown function (ip: 0x13e4d8087)
_jl_invoke at ~/julia4/src/gf.c:2904 [inlined]
ijl_apply_generic at ~/julia4/src/gf.c:3086
jl_apply at ~/julia4/src/./julia.h:2132 [inlined]
do_call at ~/julia4/src/interpreter.c:126
eval_stmt_value at ~/julia4/src/interpreter.c:174 [inlined]
eval_body at ~/julia4/src/interpreter.c:637
jl_interpret_toplevel_thunk at ~/julia4/src/interpreter.c:795
top-level scope at REPL[2]:1
jl_toplevel_eval_flex at ~/julia4/src/toplevel.c:941
jl_toplevel_eval_flex at ~/julia4/src/toplevel.c:884
jl_toplevel_eval_flex at ~/julia4/src/toplevel.c:884
jl_toplevel_eval_flex at ~/julia4/src/toplevel.c:884
ijl_toplevel_eval at ~/julia4/src/toplevel.c:950 [inlined]
ijl_toplevel_eval_in at ~/julia4/src/toplevel.c:992
eval at ./boot.jl:426 [inlined]
eval_user_input at ~/julia4/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:167
repl_backend_loop at ~/julia4/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:263
#start_repl_backend#48 at ~/julia4/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:248
start_repl_backend at ~/julia4/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:245
_jl_invoke at ~/julia4/src/gf.c:2885 [inlined]
ijl_apply_generic at ~/julia4/src/gf.c:3086
#run_repl#61 at ~/julia4/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:404
run_repl at ~/julia4/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:390
jfptr_run_repl_12248 at ~/julia4/usr/share/julia/compiled/v1.11/REPL/u0gqU_VROek.dylib (unknown line)
_jl_invoke at ~/julia4/src/gf.c:2885 [inlined]
ijl_apply_generic at ~/julia4/src/gf.c:3086
#1085 at ./client.jl:440
jfptr_YY.1085_16412 at ~/julia4/usr/share/julia/compiled/v1.11/REPL/u0gqU_VROek.dylib (unknown line)
_jl_invoke at ~/julia4/src/gf.c:2885 [inlined]
ijl_apply_generic at ~/julia4/src/gf.c:3086
jl_apply at ~/julia4/src/./julia.h:2132 [inlined]
jl_f__call_latest at ~/julia4/src/builtins.c:868
#invokelatest#2 at ./essentials.jl:950 [inlined]
invokelatest at ./essentials.jl:947 [inlined]
run_main_repl at ./client.jl:424
repl_main at ./client.jl:561 [inlined]
_start at ./client.jl:535
jfptr__start_72719 at ~/julia4/usr/lib/julia/sys.dylib (unknown line)
_jl_invoke at ~/julia4/src/gf.c:2885 [inlined]
ijl_apply_generic at ~/julia4/src/gf.c:3086
jl_apply at ~/julia4/src/./julia.h:2132 [inlined]
true_main at ~/julia4/src/jlapi.c:586
jl_repl_entrypoint at ~/julia4/src/jlapi.c:738
Metadata
Metadata
Assignees
Labels
No labels