[generics-rep] Trivial genericShow blows up the call stack
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 25/100
- Issue-Typ
- Bug
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Bereich
- backend
Rechercherichtung
Start by reading the genericShow and generic representation code referenced in the stack trace, then reproduce the failure with the VVis and Frame definitions in the issue. Trace why deriving Show for the nested generic types recurses until the stack overflows; done means identifying the cause and confirming a fix prevents the overflow for this example.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I have the following code in my library:
data VVis a
= Fill a (Frame a)
| ...
derive instance genericVVis :: Generic (VVis a) _
instance showVVis :: Show a => Show (VVis a) where
show = genericShow
data Frame a = Frame
{ frameMax :: a
, frameMin :: a
}
derive instance genericFrame :: Generic (Frame a) _
instance showFrame :: Show a => Show (Frame a) where
show = genericShow
If I now load my code in a REPL and create the following trivial value:
> Fill 2.0 (Frame {frameMax: 1.0, frameMin: 0.0})
return new Data_Show.Show(Data_Generic_Rep_Show.genericShow(genericVVis)(Data_Generic_Rep_Show.genericShowSum(Data_Generic_Rep_Show.genericShowConstructor(Data_Generic_Rep_Show.genericShowArgsProduct(Data_Generic_Rep_Show.genericShowArgsArgument(dictShow))(Data_Generic_Rep_Show.genericShowArgsArgument(showFrame(dictShow))))(new Data_Symbol.IsSymbol(function () {
^
RangeError: Maximum call stack size exceeded
...
This is a very small value, so I don't understand why this is blowing up the call stack. Could somebody help me understand please?
- Vorherrschende Sprache
- PureScript
- Sterne
- 168
- Forks
- 90
- Ø Merge
- 3 T. 1 Std.
- Gemergte PRs (30 T.)
- 1
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Kein Beitragsleitfaden
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 purescript/purescript-prelude
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 57/100
purescript/purescript-prelude#317 · 1 Reaktion ·
-
Int bottom is not safeOffen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 32/100
purescript/purescript-prelude#312 · 5 Kommentare ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
purescript/purescript-prelude#310 · 5 Kommentare ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 24/100
purescript/purescript-prelude#308 · 2 Kommentare ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
purescript/purescript-prelude#307 · 1 Kommentar · 1 Reaktion ·
Alle Issues in purescript/purescript-prelude
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
-
ManageSieve proxy: a backend's NO/BYE greeting is skipped as a capability line and reported as EOFOffenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
Mend: dependency security vulnerability
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
-
Mend: dependency security vulnerability
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
ManageIQ/manageiq-pods#1476 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
prime-radiant-inc/evener#6366 ·
Maintainer antworten meist innerhalb von 1 Tag