Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failures on nightly (v1.11) #243

Open
aviatesk opened this issue Nov 23, 2023 · 0 comments
Open

Failures on nightly (v1.11) #243

aviatesk opened this issue Nov 23, 2023 · 0 comments

Comments

@aviatesk
Copy link
Member

aviatesk commented Nov 23, 2023

There are two (seemingly) independent failures that happen only on nightly:

  1. non-terminating inference
  2. 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant