Releases: rescript-lang/rescript
Releases · rescript-lang/rescript
11.2.0-beta.2
🏠 Internal
- Playground: use TLS 1.2 to upload files to CDN using FTP. #7307
12.0.0-alpha.9
💥 Breaking Change
- Clean list API. #7290
💅 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
11.2.0-beta.1
💥 Breaking Change
- Deprecate JSX 3. #7042
- Deprecate js_cast.res. #7074
- Deprecate top-level
"suffix"
option inrescript.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
🐛 Bug fix
- Editor: Fix issue where pipe completions would not trigger with generic type arguments. #7231
- Fix leftover
assert false
in code fornull != 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
🐛 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
🚀 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
🚀 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
andeval
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
💥 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 thetests
folder. #7096 - Move
syntax_tests
into thetests
folder. #7090 #7097 - Capitalize runtime filenames. #7110
- Build mocha tests as esmodule / .mjs. #7115
11.1.4
🐛 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