Skip to content

Releases: rescript-lang/rescript

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

12.0.0-alpha.4

23 Oct 08:52
eec9b2a
Compare
Choose a tag to compare
12.0.0-alpha.4 Pre-release
Pre-release

💥 Breaking Change

  • OCaml compatibility in the stdlib and primitives are dropped/deprecated. #6984
  • Remove JSX v3. #7072
  • Remove js_cast.res. #7075

🚀 New Feature

  • Use FORCE_COLOR environmental variable to force colorized output. #7033
  • Allow spreads of variants in patterns (| ...someVariant as v => ) when the variant spread is a subtype of the variant matched on. #6721
  • Fix the issue where dynamic imports are not working for function-defined externals. #7060
  • Allow pattern matching on dicts. switch someDict { | dict{"one": 1} => Js.log("one is one") }. #7059
  • "ReScript Core" standard library is now included in the rescript npm package. #7108 #7116
  • Handle absolute filepaths in gentype. #7104

🐛 Bug fix

  • Fix tuple coercion. #7024
  • Fix attribute printing. #7025
  • Fix "rescript format" with many files. #7081
  • Fix bigint max, min. #7088
  • Fix parsing issue with nested variant pattern type spreads. #7080
  • Fix JSX settings inheritance: only 'version' propagates to dependencies, preserving their 'mode' and 'module'. #7094
  • Fix variant cast to int. #7058
  • Fix comments formatted away in function without arguments. #7095
  • Fix genType JSX component compilation. #7107

💅 Polish

  • Add some context to error message for unused variables. #7050
  • Improve error message when passing children prop to a component that doesn't accept it. #7044
  • Improve error messages for pattern matching on option vs non-option, and vice versa. #7035
  • Improve bigint literal comparison. #7029
  • Improve output of @variadic bindings. #7030
  • Improve error messages around JSX components. #7038
  • Improve output of record copying. #7043
  • Provide additional context in error message when unit is expected. #7045
  • Improve error message when passing an object where a record is expected. #7101

🏠 Internal

  • Remove uncurried flag from bsb. #7049
  • Build runtime/stdlib files with rescript/bsb instead of ninja.js. #7063
  • Build tests with bsb and move them out of jscomp. #7068
  • Run build_tests on Windows. #7065
  • Rename folder "jscomp" to "compiler". #7086
  • Disable -bs-cross-module-opt for tests. #7071
  • Move ounit_tests into the tests folder. #7096
  • Move syntax_tests into the tests folder. #7090 #7097
  • Capitalize runtime filenames. #7110
  • Build mocha tests as esmodule / .mjs. #7115

11.1.4

10 Sep 09:58
Compare
Choose a tag to compare

🐛 Bug Fix

  • Fix issue where long layout break added a trailing comma in partial application .... #6949
  • Fix incorrect format of function under unary operator. #6953
  • Fix incorrect incorrect printing of module binding with signature. #6963
  • Disallow spreading anything but regular variants inside of other variants. #6980
  • Fix comment removed when function signature has type keyword. #6997
  • Fix parse error on doc comment before "and" in type def. #7001
  • Fix tuple coercion. #7024

12.0.0-alpha.3

07 Sep 05:45
a50bbab
Compare
Choose a tag to compare
12.0.0-alpha.3 Pre-release
Pre-release

🐛 Bug fix

  • Revert "Throws an instance of JavaScript's new Error() and adds the extension payload for cause option" (#6611). #7016
  • Fix dict literals error. #7019