JuliaDebug / JuliaDebug/Cthulhu.jl

Missing call sites

Open
#694 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.