`fold`ing Effectful `Path` crashes at runtime
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 45/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Domaine
- cli
Piste de recherche
Commencez par exécuter la reproduction liée de BUG-006 avec le code Roc présenté dans l’issue, en vous concentrant sur l’effet du fold effectful de Path.join et de l’appel à Path.is_dir!. Suivez le dispatch au moment de l’exécution qui produit le crash. C’est terminé lorsque l’exemple de chemin relatif s’exécute sans crash au moment de l’exécution et renvoie le résultat attendu Ok({}).
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
This contrived code should check if a relative path is a directory. e.g. if I passed in ./repro ., there'd be no / and I'd just expect it to return Ok({}). Instead, it builds just fine but then crashes at runtime with: [ROC CRASHED] dispatch on a value that can never exist.
Full easy reproduction (AI genn'ed, but I tested) here
app [main!] {
pf: platform "https://github.com/roc-lang/basic-cli/releases/download/0.22.0/F1JVZPYfWP71s8vk6tHcV1Qx1Ef6CZkwswGoCn8VHZmL.tar.zst",
}
import pf.OsStr
import pf.Path
require! = |root, relative| {
path = relative.split_on("/").fold(root, Path.join)
is_dir = Path.is_dir!(path)?
if is_dir Ok({}) else Err(Missing(relative))
}
main! = |args|
match args.drop_first(1).map(OsStr.display) {
[text] => require!(Path.utf8(text), "")
_ => Err(BadArgs)
}
- Langage dominant
- Rust
- Étoiles
- 121
- Forks
- 46
- Merge moyen
- 12 h 20 min
- PR mergées (30 j)
- 18
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de roc-lang/basic-cli
-
Unix socket supportOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
roc-lang/basic-cli#500 · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
roc-lang/basic-cli#482 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 45/100
roc-lang/basic-cli#455 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 32/100
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 45/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de roc-lang/basic-cli
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
storytold/photocraft#5710 ·
Les mainteneurs répondent en général sous 1 jour
-
Two tests fail on a Windows checkout: a CRLF parse in feature_walk_tests, an 8.3 TEMP path in libraries_testsPeut-être pris @CamWight l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
bherbruck/solvecraft#1186 · 1 commentaire ·
-
area: screenshot audit bug good first issue priority: P3 security severity: info type: correctness
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
pierruno-labs/prowl#31 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
limitlessprojects/Go-Hybrid#50 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Les mainteneurs répondent en général sous 1 jour