`show` of `GeneratedKernelError{Msg}` throws for an unbound `Msg`
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Ambito
- developer-experience
Direzione di ricerca
Il metodo show per GeneratedKernelError è definito in src/macros.jl, e le due riproduzioni del segnalatore sono which(show, (IO, Type{G{:x}})) e show(stdout, G{TypeVar(:Msg)}). Inizia eseguendo queste righe per vedere l'UndefVarError, poi esamina come viene confrontato il parametro statico Msg del metodo quando l'argomento di tipo è un TypeVar. È completato quando entrambe le riproduzioni stampano un nome di tipo leggibile senza generare eccezioni, e quando la stampa di un normale tipo GeneratedKernelError{:msg} mostra ancora il messaggio come prima.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
The show method for GeneratedKernelError types (src/macros.jl) throws when the type parameter is not bound to a value. That happens whenever the method's own signature is printed, e.g. by which or methods, or in a stack frame:
julia> using KernelAbstractions
julia> const G = KernelAbstractions.GeneratedKernelError;
julia> which(show, (IO, Type{G{:x}}))
ERROR: UndefVarError: `Msg` not defined in static parameter matching
julia> show(stdout, G{TypeVar(:Msg)})
ERROR: UndefVarError: `Msg` not defined in static parameter matching
function Base.show(io::IO, ::Type{GeneratedKernelError{Msg}}) where {Msg} also matches GeneratedKernelError{T} for a TypeVar T, but Msg is then not a static parameter value. Restricting the method to a bound message fixes it, for example:
function Base.show(io::IO, T::Type{<:GeneratedKernelError})
T isa DataType && T.parameters[1] isa Symbol ||
return invoke(show, Tuple{IO, Type}, io, T)
msg = T.parameters[1]
...
end
Seen with KernelAbstractions 0.10.0 on Julia 1.12.7, where it broke the printing of some stack frames.
- Lingua principale
- Julia
- Stelle
- 529
- Fork
- 87
- Merge medio
- 1g 2h
- PR unite (30g)
- 65
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaGPU/KernelAbstractions.jl
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
JuliaGPU/KernelAbstractions.jl#691 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
JuliaGPU/KernelAbstractions.jl#333 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 12/100
JuliaGPU/KernelAbstractions.jl#894 ·
I maintainer di solito rispondono entro 1 giorno
-
CPU backend: locals that live across a `@synchronize()` in a loop make a kernel 14–78× slowerAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 12/100
JuliaGPU/KernelAbstractions.jl#893 ·
I maintainer di solito rispondono entro 1 giorno
-
performance POCL
Difficoltà 4/5 3-5 giorni Idoneità per principianti 28/100
JuliaGPU/KernelAbstractions.jl#891 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di JuliaGPU/KernelAbstractions.jl
Issue simili
-
enhancement good first issue help wanted
Difficoltà 2/5 Mezza giornata Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
SciML/SciMLBase.jl#1643 ·
I maintainer di solito rispondono entro 2 giorni
-
authority-vechtstromen ready-for-agent
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
Deltares/Ribasim-NL#890 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Precompilation fails on Julia 1.14 nightly: HessenbergQ lmul! methods overwrite LinearAlgebra'sAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
JuliaLinearAlgebra/GenericLinearAlgebra.jl#183 · 1 commento ·