Releases: rescript-lang/rescript
Releases · rescript-lang/rescript
12.0.0-alpha.11
🐛 Bug fix
- Fix
Error.fromException. #7364 - Fix signature of
throw. #7365 - Fix formatter adds superfluous parens in pipe chain. #7370
🏠 Internal
- Remove
Stdlib_Charmodule for now. #7367 - Convert internal JavaScript codebase into ESM, ReScript package itself is now ESM (
"type": "module"). #6899
💅 Polish
- More deprecations in
Pervasives; addStdlib.PairandStdlib.Int.Ref. #7371
12.0.0-alpha.10
🚀 New Feature
- Add
Dict.hasand doubleDict.forEachWithKey/Dict.mapValuesperformance. #7316 - Add popover attributes to
JsxDOM.domProps. #7317 - Add
Array.removeInPlacehelper based onsplice. #7321 - Add
inertattribute toJsxDOM.domProps. #7326 - Make reanalyze exception tracking work with the new stdlib. #7328
- Fix
Pervasive.maxusing 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
raisetothrowto align with JavaScript vocabulary.raisehas been deprecated. #7346 - Add unified bitwise (
^) operator. #7216 - Stdlib: rename binary operations to match JavaScript terms. #7353
💥 Breaking Change
- Replace
~datewith~dayinDate.make. #7324 - Remove
-bs-jsx-mode. #7327 - Drop Node.js version <20 support, as it is reaching End-of-Life. #7354
- Treat
intmultiplication as a normal int32 operation instead of usingMath.imul. #7358
🏠 Internal
💅 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 rescriptpackage does not triggerpostinstallscript anymore. #7350- Add Stdlib
BoolandCharmodules and improve Pervasives deprecation messages. #7361
🐛 Bug fix
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 tto Stdlib modules. #7302 - Gentype: handle null/nullable/undefined from Stdlib. #7132
🐛 Bug fix
- Fix async context checking for module await. #7271
- Fix
%externalextension. #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.componentWithPropsno 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 falsein 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.componentand@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.asyncpayload 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.asyncattribute 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_instvarfrom AST. #7239 - AST cleanup: Remove
@res.partialattribute 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_typefrom 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.namedArgLocattribute 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.allhelpers. #7181 - Add
@react.componentWithPropsfor 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
argumentsandevalto 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 == nullchecks 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
rescriptnpm 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
childrenprop 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
@variadicbindings. #7030 - Improve error messages around JSX components. #7038
- Improve output of record copying. #7043
- Provide additional context in error message when
unitis 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_testson Windows. #7065 - Rename folder "jscomp" to "compiler". #7086
- Disable -bs-cross-module-opt for tests. #7071
- Move
ounit_testsinto thetestsfolder. #7096 - Move
syntax_testsinto thetestsfolder. #7090 #7097 - Capitalize runtime filenames. #7110
- Build mocha tests as esmodule / .mjs. #7115