Repository navigation
Conversation
|
@codex review |
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Changelog💅 Polish
Semantic Diff1 commit · Full page Visit an arrow's argument types without a closuref88ccc9 · JonoPrest · Nov 09, 2026, 14:40 UTC
The arguments are now visited by a recursive function that takes Measured with scripts/compilerBenchmarks.js against the previous commit: allocated words -0.22% in total (-0.20% for the files compiled one by one, -0.24% in the builds of tests/tests), stress/NestedClosures.res -0.89%. On a 552 module React app (clean build, one domain) the build allocates 0.18% fewer words. |
|
Codex Review: Didn't find any major issues. 👍 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
✅ Compiler benchmarksAllocated wordsIn total: 683,548,718 → 682,021,379 (-0.22%).
164 more changes
InstructionsIn total: 9,664,672,297 → 9,665,362,885 (+0.01%).
Output sizeIn total: 25,569,598 → 25,569,606 (±0.00%). None of the 13 benchmarks changed by 0.1% or more. Pull request f88ccc9 compared with base b82d944 in this run. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #9286 +/- ##
=======================================
Coverage 81.92% 81.92%
=======================================
Files 456 456
Lines 65464 65466 +2
=======================================
+ Hits 53631 53633 +2
Misses 11833 11833
🚀 New features to boost your workflow:
|
rescript
@rescript/belt
@rescript/darwin-arm64
@rescript/linux-arm64
@rescript/linux-x64
@rescript/runtime
@rescript/win32-x64
commit: |
|
Developer playground preview: https://rescript-lang.github.io/rescript/dev-playground/?version=pr-9286 |
4a9f29b to
f88ccc9
Compare
Why:
`iter_type_expr` visited the argument types of a `Tarrow` with
`List.iter (fun {typ} -> f typ)`, which allocates a closure each time
it reaches an arrow type. Many walks over types go through it
(copying, marking, levels, occur checks), and function types are
common.
The arguments are now visited by a recursive function that takes `f`.
The order of the visits is unchanged.
Measured with scripts/compilerBenchmarks.js against the previous commit:
allocated words -0.22% in total (-0.20% for the files compiled one by
one, -0.24% in the builds of tests/tests), stress/NestedClosures.res
-0.89%. On a 552 module React app (clean build, one domain) the build
allocates 0.18% fewer words.
Signed-off-by: Jono Prest <[email protected]>
f88ccc9 to
c63c67a
Compare
✅ Compiler benchmarksAllocated wordsIn total: 683,547,198 → 682,017,787 (-0.22%).
164 more changes
InstructionsIn total: 9,664,672,297 → 9,665,362,885 (+0.01%).
Output sizeIn total: 25,569,598 → 25,569,606 (±0.00%). None of the 13 benchmarks changed by 0.1% or more. Pull request c63c67a compared with base 70da3d1 in this run. |
Changelog💅 Polish
Semantic Diff1 commit · Full page Visit an arrow's argument types without a closurec63c67a · JonoPrest · Nov 09, 2026, 14:40 UTC
The arguments are now visited by a recursive function that takes Measured with scripts/compilerBenchmarks.js against the previous commit: allocated words -0.22% in total (-0.20% for the files compiled one by one, -0.24% in the builds of tests/tests), stress/NestedClosures.res -0.89%. On a 552 module React app (clean build, one domain) the build allocates 0.18% fewer words. |
|
Developer playground preview: https://rescript-lang.github.io/rescript/dev-playground/?version=pr-9286 |
Btype.iter_type_exprvisited the argument types of aTarrowwithList.iter (fun {typ} -> f typ) params, which allocates a closure each time it reaches an arrow type. Many type walks go through it (copying, marking, levels, occur checks). The arguments are now visited by a small recursive function that takesf, in the same order.compilerBenchmarks.js, allocated words)stress/NestedClosures.resBuild outputs (JS,
.cmi,.cmj,.ast) are byte-identical on three real-world projects and their dependencies at default and one domain.Checklist
changes/README.md), or no release notes are needed and a maintainer should applychangelog:skip.CONTRIBUTING.md).git commit -s).