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

"using Flux" makes type inference fail when there is a Ref{} #1611

Closed
JTaets opened this issue Jun 9, 2021 · 2 comments
Closed

"using Flux" makes type inference fail when there is a Ref{} #1611

JTaets opened this issue Jun 9, 2021 · 2 comments

Comments

@JTaets
Copy link

JTaets commented Jun 9, 2021

With Flux v0.12.4:
Adding the line using Flux on top of previously working code, makes type inference throw errors.
Even without using any function of Flux
In the underneath call, only at the second temp() I get the wall of errors shown at the bottom of this issue.
It does however still print false. These errors aren't breaking.

struct myStruct
    terminate::Ref{Bool}
end

function temp()
    t = myStruct(Ref(false))
    println(t.terminate[])
end
temp() #fine

using Flux

function temp() #recompiling the same function
    t= myStruct(Ref(false))
    println(t.terminate[])
end
temp() #throws the error
Internal error: encountered unexpected error in runtime:
MethodError(f=Base.string, args=(Expr(:call, Symbol("!"), Expr(:., :typ, :(:mutable))),), world=0x00000000000010a8)
jl_method_error_bare at /buildworker/worker/package_linux64/build/src/gf.c:1812
jl_method_error at /buildworker/worker/package_linux64/build/src/gf.c:1830
jl_lookup_generic_ at /buildworker/worker/package_linux64/build/src/gf.c:2400 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2415
macro expansion at ./error.jl:223 [inlined]
lift_leaves at ./compiler/ssair/passes.jl:311
getfield_elim_pass! at ./compiler/ssair/passes.jl:665
run_passes at ./compiler/ssair/driver.jl:133
optimize at ./compiler/optimize.jl:272 [inlined]
_typeinf at ./compiler/typeinfer.jl:244
typeinf at ./compiler/typeinfer.jl:209
typeinf_ext at ./compiler/typeinfer.jl:892
typeinf_ext_toplevel at ./compiler/typeinfer.jl:925
typeinf_ext_toplevel at ./compiler/typeinfer.jl:921
jfptr_typeinf_ext_toplevel_10816.clone_1 at /home/pc/julia-1.6.1/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2419
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1703 [inlined]
jl_type_infer at /buildworker/worker/package_linux64/build/src/gf.c:298
jl_generate_fptr at /buildworker/worker/package_linux64/build/src/jitlayers.cpp:340
jl_compile_method_internal at /buildworker/worker/package_linux64/build/src/gf.c:1970
jl_compile_method_internal at /buildworker/worker/package_linux64/build/src/gf.c:2236 [inlined]
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2229 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2419
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1703 [inlined]
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:115
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:204
eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:155 [inlined]
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:562
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:670
top-level scope at none:1
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:877
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:929
eval at ./boot.jl:360 [inlined]
repleval at /home/pc/.julia/packages/Atom/QtIdI/src/repl.jl:196
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2419
#242 at /home/pc/.julia/packages/Atom/QtIdI/src/repl.jl:226
unknown function (ip: 0x7f8f5202dddc)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2419
with_logstate at ./logging.jl:491
with_logger at ./logging.jl:603 [inlined]
evalrepl at /home/pc/.julia/packages/Atom/QtIdI/src/repl.jl:214
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2419
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1703 [inlined]
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:115
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:204
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:435
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:490
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:670
top-level scope at /home/pc/.julia/packages/CUDA/3VnCC/src/initialization.jl:81
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:877
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:929
eval at ./boot.jl:360 [inlined]
eval_user_input at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/REPL/src/REPL.jl:139
repl_backend_loop at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/REPL/src/REPL.jl:200
start_repl_backend at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/REPL/src/REPL.jl:185
#run_repl#42 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/REPL/src/REPL.jl:317
run_repl at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/REPL/src/REPL.jl:305
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2419
#874 at ./client.jl:387
jfptr_YY.874_41532.clone_1 at /home/pc/julia-1.6.1/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2419
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1703 [inlined]
jl_f__call_latest at /buildworker/worker/package_linux64/build/src/builtins.c:714
#invokelatest#2 at ./essentials.jl:708 [inlined]
invokelatest at ./essentials.jl:706 [inlined]
run_main_repl at ./client.jl:372
exec_options at ./client.jl:302
_start at ./client.jl:485
jfptr__start_34289.clone_1 at /home/pc/julia-1.6.1/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2419
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1703 [inlined]
true_main at /buildworker/worker/package_linux64/build/src/jlapi.c:560
repl_entrypoint at /buildworker/worker/package_linux64/build/src/jlapi.c:702
main at /buildworker/worker/package_linux64/build/cli/loader_exe.c:51
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
_start at /home/pc/julia-1.6.1/bin/julia (unknown line)
@ToucheSir
Copy link
Member

I just tried on a fresh environment and couldn't replicate this. Could you try that as well and report what other packages are installed in the current env?

@JTaets
Copy link
Author

JTaets commented Jun 10, 2021

EDIT: i just included all packages includes by Flux one for one and saw that the error happens after including CUDA.
I posted this on CUDA.jl their issues.

@JTaets JTaets closed this as completed Jun 10, 2021
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

2 participants