JuliaDebug / JuliaDebug/Cthulhu.jl
Missing call sites
Open
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 709
- Forks
- 46
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 2
Description
I see that it's not really a new issue but the others are closed.
An example on FFTA.jl's main branch:
julia> using FFTA, Cthulhu
julia> x = ones(ComplexF64, 412);
julia> p = plan_fft(x);
julia> @descend p * x # then after hitting [T] [h] [o]
fft!(out::AbstractVector{T}, in::AbstractVector{T}, start_out::Int64, start_in::Int64, d::FFTA.Direction, t::FFTA.FFTEnum, g::FFTA.CallGraph{T}, idx::Int64) where T @ FFTA Q:\FFTA.jl\src\algos.jl:7
∘ ── %0 = invoke fft!(::Vector{ComplexF64},::Vector{ComplexF64},::Int64,::Int64,::FFTA.Direction,::FFTA.FFTEnum,::FFTA.CallGraph{ComplexF64},::Int64)::…
Select a call to descend into or ↩ to ascend.
Toggles: [w]arn, [h]ide type-stable statements, [o]ptimize, [d]ebuginfo, [r]emarks, [e]ffects, e[x]ception_types, [i]nlining costs, [t]ype_annotations, [s]yntax highlight for Source/LLVM/Native, [j]ump to source always.
Show: [S]ource, [A]ST, [T]yped, [L]LVM, [N]ative.
Actions: [q]uit, ⟵ ascend, [b]ookmark, [E]dit source code, [R]evise and redisplay, dum[P] params cache.
• %18 = invoke throw_boundserror(::Vector{FFTA.CallGraphNode{ComplexF64}},::Tuple{Int64})::Union{}
%37 = invoke fft_dft!(::Vector{ComplexF64},::Vector{ComplexF64},::Int64,::Int64,::Int64,::Int64,::Int64,::ComplexF64)::Core.Const(nothing)
%53 = invoke fft_pow2_radix4!(::Vector{ComplexF64},::Vector{ComplexF64},::Int64,::Int64,::Int64,::Int64,::Int64,::ComplexF64)::Core.Const(nothing)
%73 = invoke fft_pow3!(::Vector{ComplexF64},::Vector{ComplexF64},::Int64,::Int64,::Int64,::Int64,::Int64,::ComplexF64,::ComplexF64,::ComplexF64)::…
%75 = < concrete eval > ArgumentError(::Core.Const(ArgumentError),::Core.Const("kernel not implemented"))::…
↩
If you un[h]ide then you'll see there's a missing call to FFTA.fft_composite! (which is type-stable).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the example with Julia, FFTA.jl, and Cthulhu using plan_fft(x), @descend p * x, and the stated key sequence. Inspect how call sites are collected and displayed, using FFTA.fft! in src/algos.jl and the hidden FFTA.fft_composite! call as the comparison; done means the missing call site appears appropriately when type-stable statements are shown.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100