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

Segfault in ijl_isa when giving two return types in function assignment when function already exists #57458

Open
xal-0 opened this issue Feb 18, 2025 · 2 comments
Labels
bug Indicates an unexpected problem or unintended behavior compiler:lowering Syntax lowering (compiler front end, 2nd stage)

Comments

@xal-0
Copy link
Contributor

xal-0 commented Feb 18, 2025

Found while trying to write a grammar for assignment, on 29da86b:

julia> f() = 1
f (generic function with 1 method)

julia> f()::Int::Int = 1

[67863] signal 11 (2): Segmentation fault: 11
in expression starting at REPL[2]:1
ijl_isa at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/subtype.c:2443
jl_f_typeassert at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/builtins.c:571
jl_apply at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/./julia.h:2303 [inlined]
do_call at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/interpreter.c:124
eval_stmt_value at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/interpreter.c:193
eval_body at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/interpreter.c:688
jl_interpret_toplevel_thunk at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/interpreter.c:897
jl_toplevel_eval_flex at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/toplevel.c:1034
__repl_entry_eval_expanded_with_loc at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/usr/share/julia/stdlib/v1.13/REPL/src/REPL.jl:340
jl_apply at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/./julia.h:2303 [inlined]
jl_f__call_latest at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/builtins.c:883
#invokelatest#1 at ./essentials.jl:1057 [inlined]
invokelatest at ./essentials.jl:1053 [inlined]
toplevel_eval_with_hooks at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/usr/share/julia/stdlib/v1.13/REPL/src/REPL.jl:347
toplevel_eval_with_hooks at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/usr/share/julia/stdlib/v1.13/REPL/src/REPL.jl:351
toplevel_eval_with_hooks at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/usr/share/julia/stdlib/v1.13/REPL/src/REPL.jl:344 [inlined]
eval_user_input at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/usr/share/julia/stdlib/v1.13/REPL/src/REPL.jl:369
repl_backend_loop at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/usr/share/julia/stdlib/v1.13/REPL/src/REPL.jl:481
#start_repl_backend#41 at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/usr/share/julia/stdlib/v1.13/REPL/src/REPL.jl:466
start_repl_backend at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/usr/share/julia/stdlib/v1.13/REPL/src/REPL.jl:463 [inlined]
#run_repl#48 at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/usr/share/julia/stdlib/v1.13/REPL/src/REPL.jl:689
run_repl at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/usr/share/julia/stdlib/v1.13/REPL/src/REPL.jl:675
jfptr_run_repl_20739.1 at /Users/user/.julia/juliaup/julia-nightly/share/julia/compiled/v1.13/REPL/u0gqU_GCzCT.dylib (unknown line)
run_std_repl at ./client.jl:488
jfptr_run_std_repl_60754.1 at /Users/user/.julia/juliaup/julia-nightly/lib/julia/sys.dylib (unknown line)
jl_apply at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/./julia.h:2303 [inlined]
jl_f__call_latest at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/builtins.c:883
#invokelatest#1 at ./essentials.jl:1057 [inlined]
invokelatest at ./essentials.jl:1053 [inlined]
run_main_repl at ./client.jl:509
repl_main at ./client.jl:596 [inlined]
_start at ./client.jl:571
jfptr__start_59973.1 at /Users/user/.julia/juliaup/julia-nightly/lib/julia/sys.dylib (unknown line)
jl_apply at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/./julia.h:2303 [inlined]
true_main at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/jlapi.c:964
jl_repl_entrypoint at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-HL2F7YQ3XH.0/build/default-honeycrisp-HL2F7YQ3XH-0/julialang/julia-master/src/jlapi.c:1124
Allocations: 1 (Pool: 1; Big: 0); GC: 0

Works at least back to 1.7.

@xal-0
Copy link
Contributor Author

xal-0 commented Feb 18, 2025

Parses as:

(= (:: (:: (call f) Int) Int) (block (line 1 none) 1))

Lowered:

1 ─ %1 = Main.f
│          dynamic (%1)()
│   %3 = Main.Int
│   %4 =   dynamic Core.typeassert(%9, %3)
│   %5 = Main.Int
│          dynamic Core.typeassert(%4, %5)
│   %7 = Main.Int
│          dynamic Core.typeassert(%9, %7)
│   @ none:1 within `unknown scope`
│   %9 = 1
└──      return 1

@xal-0 xal-0 added compiler:lowering Syntax lowering (compiler front end, 2nd stage) bug Indicates an unexpected problem or unintended behavior labels Feb 18, 2025
@gbaraldi
Copy link
Member

By work here do you mean it doesn't work, because this crashes from at least 1.6 and onwards

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Indicates an unexpected problem or unintended behavior compiler:lowering Syntax lowering (compiler front end, 2nd stage)
Projects
None yet
Development

No branches or pull requests

2 participants