Stack overflow when broadcasting results in StaticInt eltype
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 45/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- julia
- Bereich
- performance
Rechercherichtung
Reproduziere zunächst beide Beispiele in Julia und untersuche dann src/static.jl:108 sowie Julias base/range.jl im Umfeld von Base._range und der Zeilen 107–118. Verfolge, wie StaticInt-Bereiche erstellt werden und wie das Slicing StepRange erreicht; abgeschlossen ist die Aufgabe, wenn Broadcasting keinen Overflow mehr verursacht und der gezeigte Ausdruck für den Bereich mit Schrittweite nicht mehr den gemeldeten MethodError auslöst.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Found this...
julia> import ArrayInterface: StaticInt
julia> r = StaticInt(1):4
StaticInt{1}():StaticInt{1}():4
julia> broadcast(-, r, StaticInt(1))
ERROR: StackOverflowError:
Stacktrace:
[1] UnitRange{StaticInt{0}}(::StaticInt{0}, ::StaticInt{3}) at /Users/zchristensen/.julia/packages/ArrayInterface/NbkVT/src/static.jl:108 (repeats 79984 times)
...and traced the issue back to Base._range assuming that UnitRange should be formed with an element type that is a StaticInt.
The easiest way to fix this would be our own Base._range(::StaticInt, ...), but I'm not sure if that's a good entry point since it's not public API.
Edit:
also found this
julia> (StaticInt(1):10)[1:2:6]
ERROR: MethodError: no method matching StepRange{StaticInt{1},Int64}(::StaticInt{1}, ::Int64, ::StaticInt{5})
Closest candidates are:
StepRange{StaticInt{1},Int64}(::T, ::S, ::T) where {T, S} at range.jl:204
Stacktrace:
[1] _rangestyle(::Base.Ordered, ::Base.ArithmeticWraps, ::StaticInt{1}, ::Int64, ::Int64) at ./range.jl:118
[2] _range at ./range.jl:116 [inlined]
[3] #range#43 at ./range.jl:91 [inlined]
[4] getindex(::ArrayInterface.OptionallyStaticUnitRange{StaticInt{1},Int64}, ::StepRange{Int64,Int64}) at ./range.jl:713
[5] top-level scope at REPL[26]:1
- Vorherrschende Sprache
- Julia
- Sterne
- 14
- Forks
- 8
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus JuliaArrays/StaticArrayInterface.jl
-
tagbot-manual
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 68/100
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
-
Storage Order Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
JuliaArrays/StaticArrayInterface.jl#4 · 1 Kommentar ·
-
Size of StaticArray type Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 32/100
JuliaArrays/StaticArrayInterface.jl#3 · 10 Kommentare ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
Alle Issues in JuliaArrays/StaticArrayInterface.jl
Ähnliche Issues
-
tagbot-manual
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
Sienna-Platform/PowerSystems.jl#1800 ·
-
enhancement good first issue help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100