lambdaclass / lambdaclass/lambda_compiler_kit
bug: CLI readAll stops reading at first empty line instead of reading to EOF
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Lean
- Estrellas
- 2
- Forks
- 1
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Problem
Both cli/LckJsonFmt.lean and cli/LckJsonTree.lean define a readAll helper that reads stdin line-by-line, stopping as soon as it reads an empty line:
repeat
let line ← stdin.getLine
if line.isEmpty then break -- WRONG: also breaks on blank lines mid-input
buf := buf ++ line
This means any JSON that contains a blank line (e.g., pretty-printed JSON piped from another tool, or JSON with embedded newlines before/after values) will be silently truncated.
Expected fix
Read until EOF. IO.Stream.getLine returns "" on EOF — use IO.Stream.isEof or check for EOF after each read instead of treating an empty line as the terminator. Example:
repeat
let line ← stdin.getLine
if (← stdin.isEof) then break
buf := buf ++ line
References
- Flagged by AI code review on PR #8
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con los helpers readAll de cli/LckJsonFmt.lean y cli/LckJsonTree.lean; después, inspecciona cómo cada CLI lee stdin. Verifica el comportamiento con una entrada que contenga una línea en blanco y confirma que la lectura continúa a través de las líneas en blanco y termina solo en EOF, sin truncar el JSON.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Área
- cli
- Tipo de issue
- Error
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 68/100