13.0.0-alpha.4
Pre-release
Pre-release
💥 Breaking Change
- Support for
breakandcontinuein loops.breakandcontinueare new keywords. #8348 - Fix iterator / iterable typedefs, add generator typedefs. #8355
- Remove deprecated
%externalextension. #8376 - Remove Belt API functions returning
undefined<'a>(e.g.,Belt.Array.getUndefined). Functions returningoption<'a>should be used instead (e.g.,Belt.Array.get). #8377
🚀 New Feature
- Implement
for...ofandfor await...ofloops. #7887 - Add support for dict spreads:
dict{...foo, "bar": 2, ...qux}. #8369 - Rewatch: add
--prodflag tobuild,watch, andcleanto skip dev-dependencies and dev sources ("type": "dev"), enabling builds in environments where dev packages aren't installed (e.g. afterpnpm install --prod). #8347 - Rewatch: feature-gated source directories. Tag a source entry with
"feature": "<name>"and select with--features a,b(or per-dep independencies/dev-dependencies) to include optional slices of a package's source tree at build time. Top-levelfeaturesmap supports transitive implications. #8379 - Rewatch: improve watch output and add
--clear-screenoption. #8373 - Add
Dict.assignMany,Dict.concat,Dict.concatMany,Dict.concatAll,Array.concatAllto the stdlib. #8364
🐛 Bug fix
- Fix partial application generalization for
.... #8343 - Rewatch: preserve warnings after atomic-save full rebuilds. #8358
- Preserve JSX prop locations across the AST0 translation layer, fixing
0:0editor diagnostics in PPX-related flows. #8350 - Fix type lowering for
dict{}andasync, so you don't need to annotate one extra time when the type is known. #8359 - Rewatch: don't suppress progress messages under
-v/-vv. #8371 - Rewatch: print 'Finished compilation' in watch plain output mode. #8372
💅 Polish
- Allow builds while watchers are running. #8349
- Rewatch: restore backward compatibility for
bsconfig.json. #8368 - Restore parsing of the legacy
(. ...)uncurried syntax for backwards compatibility with libraries still on older ReScript versions; emit a deprecation warning when it is used. Rewatch also surfaces this specific deprecation when it originates from an external dependency so users can report breakage upstream. #8383 - Rewatch: replace wave-based compile scheduler with a work-stealing DAG dispatcher ordered by critical-path priority, avoiding the per-wave stall on the slowest file. #8374
🏠 Internal
- Move
rescript.jsonreading out ofbscinto rewatch; remove the custom OCaml JSON parser. #8365