Skip to content

Prepare 12.3.1 maintenance release - #8565

Open
cknitt wants to merge 13 commits into
maintenance/12.xfrom
codex/12.3.1
Open

Prepare 12.3.1 maintenance release#8565
cknitt wants to merge 13 commits into
maintenance/12.xfrom
codex/12.3.1

Conversation

@cknitt

@cknitt cknitt commented Aug 19, 2026

Copy link
Copy Markdown
Member

Summary

Prepare the conservative ReScript 12.3.1 maintenance release from maintenance/12.x.

The fixes were backported chronologically and adapted where necessary to avoid pulling newer infrastructure or broad refactors:

Scope

This intentionally excludes larger or more invasive master changes, notably:

The goal is to fix concrete correctness and crash issues without increasing maintenance-release regression risk.

Validation

  • make test
  • make test-analysis
  • make test-syntax
  • make test-rewatch
  • make checkformat
  • focused termination-analysis test corpus
  • Rewatch Rust unit tests and formatting checks
  • complete GitHub Actions matrix, including compiler builds, analysis/tools, installation, API docs, package preview, and Rewatch integration tests

All local checks pass, and CI is green across the full matrix.

cknitt and others added 3 commits August 19, 2026 11:17
Backport the fix by tracking modules that actually recompiled, so stored warnings are replayed for dependents skipped after an earlier error.

(cherry picked from commit 56d4ed5)

Signed-off-by: Christoph Knittel <ck@cca.io>
* analysis: fix namespaced reference lookup

* analysis: demonstrate incremental CMT lookup
@pkg-pr-new

pkg-pr-new Bot commented Aug 19, 2026

Copy link
Copy Markdown

Open in StackBlitz

rescript

npm i https://pkg.pr.new/rescript@8565

@rescript/darwin-arm64

npm i https://pkg.pr.new/@rescript/darwin-arm64@8565

@rescript/darwin-x64

npm i https://pkg.pr.new/@rescript/darwin-x64@8565

@rescript/linux-arm64

npm i https://pkg.pr.new/@rescript/linux-arm64@8565

@rescript/linux-x64

npm i https://pkg.pr.new/@rescript/linux-x64@8565

@rescript/runtime

npm i https://pkg.pr.new/@rescript/runtime@8565

@rescript/win32-x64

npm i https://pkg.pr.new/@rescript/win32-x64@8565

commit: 4955071

nathan-tranquilla and others added 5 commits August 21, 2026 08:37
Adapted from 7f15521 for the 12.3.x Rewatch test layout.
* Preserve multibyte characters when wrapping long source lines in compiler code frames

* Changelog
* Fix exponentiation right operand precedence

Signed-off-by: Christoph Knittel <ck@cca.io>

* Update changelog for exponentiation precedence fix

Signed-off-by: Christoph Knittel <ck@cca.io>

---------

Signed-off-by: Christoph Knittel <ck@cca.io>
Backport only the three type-system guards and focused regressions from 8fafaf9; omit the larger diagnostic-reporting refactor.
Backport only the independent bare labeled-arrow fix from 110534a; omit the broader external phantom-argument parser/printer rewrite.
cristianoc and others added 4 commits August 21, 2026 10:03
Adapted from 5e23370 for the 12.x arity-marked parsetree.

Signed-off-by: Christoph Knittel <ck@cca.io>
Lam_beta_reduce built the bindings for non-substitutable arguments by
prepending during fold_left2 (reverse parameter order) and then wrapped
the body with fold_right, making the first parameter's binding innermost
- so the last argument was evaluated first. Fold left instead, so the
first parameter's binding is outermost and arguments evaluate in call
order.

The reversed order was visible in checked-in output: bs_set_int_test.mjs
evaluated setEqArray's second argument before its first. The new
inline_arg_order_test fixture pins the order with recursive (hence
non-substitutable) effectful arguments; its checked-in JS would show the
regression directly.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Cristiano Calcagno <cristianoc@users.noreply.github.com>
(cherry picked from commit 124bc4b)
Adapted from d0440c3 for the 12.x arity-marked typedtree.

Signed-off-by: Christoph Knittel <ck@cca.io>
Adapted from d0440c3 for the 12.x typedtree.

Signed-off-by: Christoph Knittel <ck@cca.io>
@cknitt
cknitt force-pushed the codex/12.3.1 branch 2 times, most recently from 3336296 to f8aa648 Compare August 21, 2026 08:05
@cknitt
cknitt marked this pull request as ready for review August 21, 2026 08:55

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f8aa648561

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

Comment thread CHANGELOG.md
Comment thread tests/tests/src/inline_arg_order_test.res
Comment thread CHANGELOG.md
Signed-off-by: Christoph Knittel <ck@cca.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants