Build system: a failed first build forces full rebuilds, and clean breaks a running watch
Mantenedores costumam responder em até 1 dia
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 52/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Domínio
- build-system
Direção de pesquisa
Start with compiler_info.ml:133-136 and build.ml:452-457 to trace when compiler metadata is checked and written after a failed build. Then inspect clean.ml:83 and how lib/watch.lock is used by the watcher; build.ml:556-558 shows where the raw error is printed. Done means failed builds no longer trigger repeated full cleans and running watches recover or are protected from concurrent clean operations.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Two ways the build system loses or misreads its state in lib/. Both reproduce with rescript 13.0.0-alpha.8 (found while reviewing #9238).
1. After a failed first build, every build cleans everything
# src/A.res: let x: int = "s" src/B.res: let y = 1
rescript build # Cleaned 0/0 … exit 1
rescript build # Cleaned previous build due to compiler update / Cleaned 0/1 / Compiled 2 modules, exit 1
rescript build # same again
Every build after the first failed one wipes lib/bs and lib/ocaml and recompiles all modules (B as well), with a misleading "compiler update" message, until a build succeeds.
compiler_info.ml:133-136 (needs_clean) treats an existing lib/ocaml/.compiler.log without compiler-info.json as a stale build, but compiler-info.json is only written after a successful build (build.ml:452-457).
2. rescript clean while rescript watch runs breaks the watcher
# src/A.res: let x = 1 src/B.res: let y = A.x
rescript watch &
rescript clean # Cleaning x, exit 0
# edit src/A.res
Every later rebuild fails with Sys_error("<root>/lib/ocaml/A.ast: No such file or directory"), and the watcher never recovers.
clean.ml:83 only takes the build lock, which the watcher holds only while it builds. clean should refuse while lib/watch.lock is held (or the watcher should rebuild from scratch when its outputs disappear). The raw Sys_error is printed by build.ml:556-558.
- Linguagem predominante
- OCaml
- Estrelas
- 7.5k
- Forks
- 485
- Merge médio
- 16h 51min
- PRs com merge (30d)
- 268
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de rescript-lang/rescript
-
Exception analysis does not know the Temporal `fromStringOrThrow` functionsTalvez já em andamento @cknitt assumiu há 3 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
rescript-lang/rescript#9182 ·
Mantenedores costumam responder em até 1 dia
-
Build system: make output wording and labels consistentTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
rescript-lang/rescript#9244 ·
Mantenedores costumam responder em até 1 dia
-
rescript format: aborts on a syntax error, unstable output, raw compiler errorsTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 56/100
rescript-lang/rescript#9243 ·
Mantenedores costumam responder em até 1 dia
-
Build system CLI: behavior that disagrees with the help textTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 43/100
rescript-lang/rescript#9242 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 54/100
rescript-lang/rescript#9239 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de rescript-lang/rescript
Issues semelhantes
-
priority: low tests
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
TMHSDigital/Free-Game-Dev-Assets#265 ·
Mantenedores costumam responder em até 1 dia
-
package-update
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
oSoWoSo/oco#889 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
cleanup documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 2 dias
-
Specify Dependency VersionsAbertabackend Setup
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
MatthewJ121/NutriGator#64 ·
Mantenedores costumam responder em até 1 dia
-
check-typing: ty 0.0.98+ fails on the renamed rule `unresolved-import` (now `import-not-found`)Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 92/100
crossbario/crossbar#2383 ·
Mantenedores costumam responder em até 1 dia