Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
a67928f
Make OCaml rewatch benchmarks reproducible across build scenarios
codex Sep 24, 2026
e415568
Add opt-in compiler request timing trace
codex Sep 24, 2026
19cd9bf
Record retained watch filesystem audit
codex Sep 24, 2026
d49ad43
Document compiler-core timing bottlenecks
codex Sep 24, 2026
95499ed
Align benchmark compiler profiles and refresh results
codex Sep 24, 2026
87f58d4
Record matched before-and-after OCaml benchmarks
codex Sep 24, 2026
1830b9e
Document CMI lookup cost and reuse bound
codex Sep 24, 2026
64de041
Document repeated signature opening cost
codex Sep 24, 2026
b2f9f94
Build opened signature label tables in bulk
codex Sep 24, 2026
cacbf09
Time builds independently of resource sampling
codex Sep 24, 2026
515f4f5
Record label-table benchmark and reproduction steps
codex Sep 24, 2026
0af49e4
Record unexplained single-worker outliers
codex Sep 24, 2026
02b518e
Record compiler filesystem effect on Rewatch baselines
codex Sep 24, 2026
9f5079a
Restore source baseline between edit benchmark runs
codex Sep 24, 2026
d544397
Measure retained watches without compiler proxy overhead
codex Sep 24, 2026
cfbb43f
Record restored-edit fast compiler comparison
codex Sep 24, 2026
68e372d
Record parser environment allocation probe
codex Sep 24, 2026
f43bfdd
Document in-process OCaml rewatch in changelog
codex Sep 24, 2026
80eb959
Clarify OCaml rewatch compiler timing breakdowns
fhammerschmidt Sep 25, 2026
26ec8df
Add exclusive compiler phase tracing for OCaml rewatch
fhammerschmidt Sep 25, 2026
54e3bd0
Cache expanded signatures per OCaml rewatch worker
fhammerschmidt Sep 25, 2026
d1c43a0
Document OCaml rewatch signature cache in changelog
fhammerschmidt Sep 25, 2026
5d68298
Reuse runtime CMIs and shared signature snapshots
fhammerschmidt Sep 25, 2026
ac85680
Keep compiler dependency state for the project lifetime
fhammerschmidt Sep 25, 2026
b72fc53
Document project-scoped compiler session in changelog
fhammerschmidt Sep 25, 2026
2e2baf5
Clarify testrepo benchmark platform limitation
fhammerschmidt Sep 25, 2026
807a6e1
Add immutable compiled interface representation
fhammerschmidt Sep 25, 2026
ff965cc
Document immutable interface experiment in changelog
fhammerschmidt Sep 25, 2026
8aa9dd3
Continue immutable interface experiments
fhammerschmidt Sep 26, 2026
14dc9b4
Advance Rewatch lifecycle and tooling performance
fhammerschmidt Sep 26, 2026
bf921de
Gate compatibility copies behind explicit mode
fhammerschmidt Sep 26, 2026
8b53da9
Fix OCaml CI compatibility issues
fhammerschmidt Sep 26, 2026
b580562
Align config acceptance with annotation defaults
fhammerschmidt Sep 26, 2026
736a6d3
Align suffix CI test with default output layout
fhammerschmidt Sep 26, 2026
4043321
Build annotated tooling dependencies in macOS CI
fhammerschmidt Sep 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ jobs:

- name: Run analysis / tools tests
if: runner.os != 'Windows' && runner.os != 'Linux'
run: opam exec -- make -C tests/analysis_tests test && make -C tests/tools_tests test
run: opam exec -- make test-analysis test-tools

- name: Run gentype tests
if: runner.os != 'Windows'
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

#### :rocket: New Feature

- Use the OCaml rewatch build system with parallel in-process compiler workers as the default `rescript` executable; keep the Rust implementation available as `rescript-rust`. https://github.com/rescript-lang/rescript/pull/8653

#### :bug: Bug fix

- Make rewatch compile independent modules after an unrelated failure and recompile blocked dependents when a changed interface survives a failed implementation, including across full watcher rebuilds. https://github.com/rescript-lang/rescript/pull/8667
Expand All @@ -26,10 +28,16 @@

#### :nail_care: Polish

- Speed up OCaml rewatch builds that repeatedly open large signatures by reusing verified expanded signature graphs per compiler worker. https://github.com/rescript-lang/rescript/pull/8673
- Reuse decoded standard-library interfaces and share prepared signature images across OCaml rewatch workers for faster clean builds. https://github.com/rescript-lang/rescript/pull/8673
- Keep imported interfaces and expanded signature graphs in a project-owned compiler session across module jobs and watch edits in OCaml rewatch. https://github.com/rescript-lang/rescript/pull/8675
- Capture text output in memory during OCaml rewatch compiler jobs and use typed graph checks for cached interfaces to reduce clean-build overhead. https://github.com/rescript-lang/rescript/pull/8675
- Avoid running `rescript-schema-ppx` and `sury-ppx` on source files without an `@schema` annotation. https://github.com/rescript-lang/rescript/pull/8662

#### :house: Internal

- Add an opt-in immutable representation of compiled interfaces for OCaml rewatch experiments (`REWATCH_FROZEN_VALUES=1`), allowing selective lookup without eagerly expanding imported signatures. https://github.com/rescript-lang/rescript/pull/8676

# 13.0.0-alpha.6

#### :boom: Breaking Change
Expand Down
14 changes: 9 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,12 @@ bench: compiler
test: lib
node scripts/test.js -all

test-analysis: lib
make -C tests/analysis_tests clean test
annotated-tooling-deps: lib
REWATCH_BIN_ANNOT=1 REWATCH_FROZEN_VALUES=0 $(RESCRIPT_EXE) build $(RUNTIME_DIR)
REWATCH_BIN_ANNOT=1 REWATCH_FROZEN_VALUES=0 $(RESCRIPT_EXE) build $(BELT_DIR)

test-analysis: annotated-tooling-deps
REWATCH_BIN_ANNOT=1 REWATCH_FROZEN_VALUES=0 $(MAKE) -C tests/analysis_tests clean test

test-reanalyze: lib
make -C tests/analysis_tests/tests-reanalyze/deadcode test
Expand All @@ -172,8 +176,8 @@ test-reanalyze: lib
benchmark-reanalyze: lib
make -C tests/analysis_tests/tests-reanalyze/deadcode-benchmark benchmark COPIES=$(or $(COPIES),50)

test-tools: lib
make -C tests/tools_tests clean test
test-tools: annotated-tooling-deps
REWATCH_BIN_ANNOT=1 REWATCH_FROZEN_VALUES=0 $(MAKE) -C tests/tools_tests clean test

test-syntax: compiler
./scripts/test_syntax.sh
Expand Down Expand Up @@ -374,4 +378,4 @@ dev-container:

.DEFAULT_GOAL := build

.PHONY: yarn-install build rewatch compiler lib artifacts bench test test-analysis test-reanalyze benchmark-reanalyze test-tools test-syntax test-syntax-roundtrip test-gentype test-rewatch test-all playground playground-compiler playground-test playground-cmijs playground-release format checkformat clean-rewatch clean-compiler clean-lib clean-gentype clean-tests clean dev-container
.PHONY: yarn-install build rewatch compiler lib artifacts bench test annotated-tooling-deps test-analysis test-reanalyze benchmark-reanalyze test-tools test-syntax test-syntax-roundtrip test-gentype test-rewatch test-all playground playground-compiler playground-test playground-cmijs playground-release format checkformat clean-rewatch clean-compiler clean-lib clean-gentype clean-tests clean dev-container
Loading
Loading