Skip to content

13.0.0-alpha.4

Pre-release
Pre-release

Choose a tag to compare

@cknitt cknitt released this 24 Apr 06:28
c0b1153

💥 Breaking Change

  • Support for break and continue in loops. break and continue are new keywords. #8348
  • Fix iterator / iterable typedefs, add generator typedefs. #8355
  • Remove deprecated %external extension. #8376
  • Remove Belt API functions returning undefined<'a> (e.g., Belt.Array.getUndefined). Functions returning option<'a> should be used instead (e.g., Belt.Array.get). #8377

🚀 New Feature

  • Implement for...of and for await...of loops. #7887
  • Add support for dict spreads: dict{...foo, "bar": 2, ...qux}. #8369
  • Rewatch: add --prod flag to build, watch, and clean to skip dev-dependencies and dev sources ("type": "dev"), enabling builds in environments where dev packages aren't installed (e.g. after pnpm install --prod). #8347
  • Rewatch: feature-gated source directories. Tag a source entry with "feature": "<name>" and select with --features a,b (or per-dep in dependencies / dev-dependencies) to include optional slices of a package's source tree at build time. Top-level features map supports transitive implications. #8379
  • Rewatch: improve watch output and add --clear-screen option. #8373
  • Add Dict.assignMany, Dict.concat, Dict.concatMany, Dict.concatAll, Array.concatAll to 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:0 editor diagnostics in PPX-related flows. #8350
  • Fix type lowering for dict{} and async, 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.json reading out of bsc into rewatch; remove the custom OCaml JSON parser. #8365