Skip to content

Releases: rescript-lang/rescript

12.0.0-alpha.12

15 Apr 15:37
81b3334
Compare
Choose a tag to compare
12.0.0-alpha.12 Pre-release
Pre-release

🐛 Bug fix

  • Fix node.js ExperimentalWarning. #7379
  • Fix issue with gentype and stdlib json. #7378
  • Fix type of RegExp.Result.matches. #7393
  • Add optional flags argument to RegExp.fromString and deprecate RegExp.fromStringWithFlags. #7393

🏠 Internal

  • Better representation of JSX in AST. #7286

💅 Polish

  • Improve error message for missing value when the identifier is also the name of a module in scope. #7384
  • Upgrade Flow parser to 0.267.0. #7390

12.0.0-alpha.11

01 Apr 14:11
7b11522
Compare
Choose a tag to compare
12.0.0-alpha.11 Pre-release
Pre-release

🐛 Bug fix

  • Fix Error.fromException. #7364
  • Fix signature of throw. #7365
  • Fix formatter adds superfluous parens in pipe chain. #7370

🏠 Internal

  • Remove Stdlib_Char module for now. #7367
  • Convert internal JavaScript codebase into ESM, ReScript package itself is now ESM ("type": "module"). #6899

💅 Polish

  • More deprecations in Pervasives; add Stdlib.Pair and Stdlib.Int.Ref. #7371

12.0.0-alpha.10

25 Mar 14:54
9988725
Compare
Choose a tag to compare
12.0.0-alpha.10 Pre-release
Pre-release

🚀 New Feature

  • Add Dict.has and double Dict.forEachWithKey/Dict.mapValues performance. #7316
  • Add popover attributes to JsxDOM.domProps. #7317
  • Add Array.removeInPlace helper based on splice. #7321
  • Add inert attribute to JsxDOM.domProps. #7326
  • Make reanalyze exception tracking work with the new stdlib. #7328
  • Fix Pervasive.max using boolean comparison for floats. #7333
  • Experimental: Support nested/inline record types - records defined inside of other records, without needing explicit separate type definitions. #7241
  • Add unified exponentiation (**) operator for numeric types using ES7 **. #7153
  • Rename raise to throw to align with JavaScript vocabulary. raise has been deprecated. #7346
  • Add unified bitwise (^) operator. #7216
  • Stdlib: rename binary operations to match JavaScript terms. #7353

💥 Breaking Change

  • Replace ~date with ~day in Date.make. #7324
  • Remove -bs-jsx-mode. #7327
  • Drop Node.js version <20 support, as it is reaching End-of-Life. #7354
  • Treat int multiplication as a normal int32 operation instead of using Math.imul. #7358

🏠 Internal

  • Clean up legacy tags handling. #7309
  • Use Yarn (Berry) workspaces for internal tooling. #7309

💅 Polish

  • Deprecate JSON.Classify.classify. #7315
  • Hide stdlib modules in output. #7305
  • Deprecate unsafe host-specific bindings from stdlib. #7334
  • Make unsafe function names consistent in Stdlib.String. #7337
  • rescript package does not trigger postinstall script anymore. #7350
  • Add Stdlib Bool and Char modules and improve Pervasives deprecation messages. #7361

🐛 Bug fix

  • Fix recursive untagged variant type checking by delaying well-formedness checks until environment construction completes. #7320
  • Fix incorrect expansion of polymorphic return types in uncurried function applications. #7338

11.2.0-beta.2

07 Mar 16:27
ca376c4
Compare
Choose a tag to compare
11.2.0-beta.2 Pre-release
Pre-release

🏠 Internal

  • Playground: use TLS 1.2 to upload files to CDN using FTP. #7307

12.0.0-alpha.9

22 Feb 09:39
e2b0ce4
Compare
Choose a tag to compare
12.0.0-alpha.9 Pre-release
Pre-release

💥 Breaking Change

💅 Polish

  • Allow single newline in JSX. #7269
  • Editor: Always complete from Core first. Use actual native regex syntax in code snippets for regexps. #7295
  • Add type t to Stdlib modules. #7302
  • Gentype: handle null/nullable/undefined from Stdlib. #7132

🐛 Bug fix

  • Fix async context checking for module await. #7271
  • Fix %external extension. #7272
  • Fix issue with type environment for unified ops. #7277
  • Fix completion for application with tagged template. #7278
  • Fix error message for arity in the presence of optional arguments. #7284
  • Fix issue in functors with more than one argument (which are curried): emit nested function always. #7273
  • Fix dot completion issue with React primitives. #7292
  • Stdlib namespace for Core modules (fixes name clashes with user modules). #7285
  • Fix runtime type check for Object in untagged variants when one variant case is null. #7303
  • Fix files that were being truncated when sent to the CDN over FTP. #7306
  • Fix better editor completion for applications. #7291
  • Fix @react.componentWithProps no longer works with @directive("'use memo'"). #7300

🏠 Internal

  • Remove ignore in res_scanner.ml. #7280
  • Use the new stdlib modules in the analysis tests. #7295
  • Build with OCaml 5.3.0. #7294
  • Simplify JSON.Decode implementation. #7304

11.2.0-beta.1

06 Feb 08:47
Compare
Choose a tag to compare
11.2.0-beta.1 Pre-release
Pre-release

💥 Breaking Change

  • Deprecate JSX 3. #7042
  • Deprecate js_cast.res. #7074
  • Deprecate top-level "suffix" option in rescript.json. #7056

🐛 Bug Fix

  • Handle absolute file paths in gentype. #7111
  • Fix "rescript format" with many files. #7081
  • Fix exponential notation syntax. #7174
  • Fix formatter handling of wildcard in pattern matching records with no fields specified. #7224

🏠 Internal

  • Playground: Bundle and upload stdlib runtime so that the playground can execute functions from Core/Belt/Js. #7268

12.0.0-alpha.8

30 Jan 19:48
96072ab
Compare
Choose a tag to compare
12.0.0-alpha.8 Pre-release
Pre-release

🐛 Bug fix

  • Editor: Fix issue where pipe completions would not trigger with generic type arguments. #7231
  • Fix leftover assert false in code for null != undefined. #7232
  • Editor: Fix issue where completions would not show up inside of object bodies. #7230
  • Fix issue with pattern matching empty list which interferes with boolean optimisations. #7237
  • Fix Cannot combine @react.component and @directive. #7260
  • Fix issue where attributes on an application were not preserved by the AST conversion for ppx. #7262

🏠 Internal

  • AST cleanup: Prepare for ast async cleanup: Refactor code for @res.async payload handling and clean up handling of type and term parameters, so that now each => in a function definition corresponds to a function. #7223
  • AST: always put type parameters first in function definitions. #7233
  • AST cleanup: Remove @res.async attribute from the internal representation, and add a flag to untyped and typed ASTs instead. #7234
  • AST cleanup: Remove unused expression_desc.Pexp_new, expression_desc.Pexp_setinstvar, expression_desc.Pexp_override, expression_desc.Pexp_poly, exp_extra.Texp_poly, expression_desc.Texp_new, expression_desc.Texp_setinstvar, expression_desc.Texp_override & expression_desc.Texp_instvar from AST. #7239
  • AST cleanup: Remove @res.partial attribute from the internal representation, and add a flag to untyped and typed ASTs instead. #7238 #7240
  • AST cleanup: Remove unused structure_item_desc.Pstr_class, signature_item_desc.Psig_class, structure_item_desc.Pstr_class_type, signature_item_desc.Psig_class_type, structure_item_desc.Tstr_class, structure_item_desc.Tstr_class_type, signature_item_desc.Tsig_class, signature_item_desc.Tsig_class_type from AST. #7242
  • AST cleanup: remove |. and rename |. to -> in the internal representation for the pipe operator. #7244
  • AST cleanup: represent concatenation (++) and (dis)equality operators (==, ===, !=, !==) just like in the syntax. #7248
  • AST cleanup: use inline record for Ptyp_arrow. #7250
  • Playground: Bundle stdlib runtime so that the playground can execute functions from Core/Belt/Js. #7255
  • AST cleanup: Remove res.namedArgLoc attribute and store the location information directly into the label. #7247

12.0.0-alpha.7

05 Jan 09:00
Compare
Choose a tag to compare
12.0.0-alpha.7 Pre-release
Pre-release

🐛 Bug fix

  • Editor: Fix issue where completions would stop working in some scenarios with inline records. #7227

💅 Polish

  • Add all standard CSS properties to JsxDOMStyle. #7205

🏠 Internal

  • AST cleanup: use inline record for Pexp_fun. #7213
  • Add support for "dot completion everywhere" (ported from rescript-lang/rescript-vscode#1054). #7226
  • Add assertions to stdlib docstring examples. Extract examples into Mocha tests, compile and run the tests in CI. #7219

12.0.0-alpha.6

22 Dec 13:40
d4c1255
Compare
Choose a tag to compare
12.0.0-alpha.6 Pre-release
Pre-release

🚀 New Feature

  • Add Option.all & Result.all helpers. #7181
  • Add @react.componentWithProps for React component functions taking a props record instead of labeled arguments. #7203

🐛 Bug fix

  • Fix exponential notation syntax. #7174
  • Fix bug where a ref assignment is moved ouside a conditional. #7176
  • Fix nullable to opt conversion. #7193

🏠 Internal

  • Use latest compiler for tests. #7186
  • Added infra to modernise AST: theres' Parsetree, Parsetree0 (legacy), and conversion functions to keep compatibility with PPX. #7185
  • AST cleanup: remove exp object and exp unreachable. #7189
  • AST cleanup: explicit representation for optional record fields in types. #7190 #7191
  • AST cleanup: first-class expression and patterns for records with optional fields. #7192
  • AST cleanup: Represent the arity of uncurried function definitions directly in the AST. #7197
  • AST cleanup: Remove Pexp_function from the AST. #7198
  • Remove unused code from Location and Rescript_cpp modules. #7150
  • Build with OCaml 5.2.1. #7201
  • AST cleanup: Remove Function$ entirely for function definitions. #7200
  • AST cleanup: store arity in function type. #7195
  • AST cleanup: remove explicit uses of function$ in preparation for removing the type entirely. #7206
  • AST cleanup: remove function$ entirely. #7208

12.0.0-alpha.5

21 Nov 10:34
8fbe2b0
Compare
Choose a tag to compare
12.0.0-alpha.5 Pre-release
Pre-release

🚀 New Feature

  • Introduce "Unified operators" for arithmetic operators (+, -, *, /, mod). #7057
  • Add remainder (%, aka modulus) operator. #7152

🐛 Bug fix

  • Fix and clean up boolean and/or optimizations. #7134 #7151
  • Fix identifiers with name arguments and eval to be mangled. #7163

💅 Polish

  • Improve code generation for pattern matching of untagged variants. #7128
  • Improve negation handling in combination with and/or to simplify generated code (especially coming out of pattern matching). #7138
  • Optimize JavaScript code generation by using x == null checks and improving type-based optimizations for string/number literals. #7141
  • Improve pattern matching on optional fields. #7143 #7144
  • Optimize compilation of switch statements for untagged variants when there are no literal cases. #7135
  • Further improve boolean optimizations. #7149
  • Simplify code generated for conditionals. #7151

🏠 Internal

  • Move rescript-editor-analysis and rescript-tools into compiler repo. #7000