Build system: a failed first build forces full rebuilds, and clean breaks a running watch
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 52/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- build-system
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- OCaml
- Star
- 7.5k
- Fork
- 485
- Merge trung bình
- 16 giờ 51 phút
- Pull request đã merge (30 ngày)
- 268
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của rescript-lang/rescript
-
Exception analysis does not know the Temporal `fromStringOrThrow` functionsCó thể đã có người làm @cknitt đã nhận 3 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
rescript-lang/rescript#9182 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Build system: make output wording and labels consistentCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
rescript-lang/rescript#9244 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
rescript format: aborts on a syntax error, unstable output, raw compiler errorsCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 56/100
rescript-lang/rescript#9243 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Build system CLI: behavior that disagrees with the help textCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 43/100
rescript-lang/rescript#9242 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 54/100
rescript-lang/rescript#9239 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của rescript-lang/rescript
Issue tương tự
-
priority: low tests
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
TMHSDigital/Free-Game-Dev-Assets#265 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
package-update
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
oSoWoSo/oco#889 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
cleanup documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Specify Dependency VersionsĐang mởbackend Setup
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
MatthewJ121/NutriGator#64 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
check-typing: ty 0.0.98+ fails on the renamed rule `unresolved-import` (now `import-not-found`)Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
crossbario/crossbar#2383 ·
Maintainer thường phản hồi trong vòng 1 ngày