Improve signal 13 (SIGPIPE) handling in basic-cli
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 52/100
Rechercherichtung
Beginnen Sie damit, das Problem mit der bereitgestellten test.roc und den set -o pipefail-Befehlen zu reproduzieren, und vergleichen Sie anschließend roc test.roc mit der von roc build erstellten ausführbaren Datei. Verfolgen Sie, ob die SIGPIPE-Diagnose von basic-cli oder vom Roc-Compiler stammt. Die Aufgabe ist abgeschlossen, wenn das Verhalten bei der Behandlung und der für den Aufrufer sichtbare Fehler geklärt sind und die unerwünschte Diagnose behoben ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Seems like basic-cli does not handle SIGPIPE well. I'm not sure if this is one issue or two. Is compiler diagnostic redundant because it doesn't happen on the executable? And should broken pipe error be propagated to the caller?
Example worth thousands of words:
How to reproduce it
test.roc
app [main!] {
cli: platform "https://github.com/roc-lang/basic-cli/releases/download/0.21.0/4rAQg8kUYZ3Vksr4qMQHpaFYNiHSn9GgS7gVxghd1XYV.tar.zst",
}
import cli.Stdout
main! = |_args| write_lines!(100000)
write_lines! = |remaining| {
if remaining == 0 {
Ok({})
} else {
Stdout.line!("line")?
write_lines!(remaining - 1)
}
}
Run:
set -o pipefail
roc test.roc | head -n 1
echo $?
Get this result:
line
The program was killed by signal 13: Unknown signal.
This is likely a bug in the Roc compiler.
...
141
Note that executable (not roc run) works and returns 141 without any errors:
roc build test.roc
set -o pipefail
./test | head -n 1
echo $?
- Vorherrschende Sprache
- Rust
- Sterne
- 121
- Forks
- 45
- Ø Merge
- 19 Std. 1 Min.
- Gemergte PRs (30 T.)
- 16
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
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 roc-lang/basic-cli
-
Unix socket supportOffen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 45/100
roc-lang/basic-cli#455 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 32/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in roc-lang/basic-cli
Ähnliche Issues
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
stellar/stellar-cli#2773 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
voidzero-dev/oxc-angular-compiler#511 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 86/100
yantrikos/yantrik-os#539 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
documentation station:mac ui-dashboard
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
rolter-ai/rolter#2490 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag