Releases: rescript-lang/rescript
Releases · rescript-lang/rescript
12.0.0-alpha.13
💥 Breaking Change
- Rename
JsError
toJsExn
and error modules cleanup. #7408 - Make
BigInt.fromFloat
return an option rather than throwing an error in case it's passed a value with a decimal value. #7419
🚀 New Feature
- Add shift (
<<
,>>
,>>>
) operators forint
andbigint
. #7183 - Add bitwise AND (
&
) operator forint
andbigint
. #7415 - Add bitwise NOT (
~
) operator forint
andbigint
. #7418 - Significantly reduced the download size by splitting binaries into optional platform-specific dependencies (e.g,
@rescript/linux-x64
). #7395 - JSX: do not error on ref as prop anymore (which is allowed in React 19). #7420
- Add new attribute
@notUndefined
for abstract types to prevent unnecessary wrapping withPrimitive_option.some
in JS output. #7458 - Preserve JSX: enable by adding
"-bs-jsx-preserve"
to"bsc-flags"
(does require"jsx": { "version": 4 }
). #7387 - Add slot prop to
JsxDOM.domProps
. #7487
🐛 Bug fix
- Fix broken
bstracing
CLI location. #7398 - Fix field flattening optimization to avoid creating unnecessary copies of allocating constants. #7421
- Fix leading comments removed when braces inside JSX contains
let
assignment. #7424 - Fix JSON escaping in code editor analysis: JSON was not always escaped properly, which prevented code actions from being available in certain situations. #7435
- Fix regression in pattern matching for optional fields containing variants. #7440
- Fix missing checks for duplicate literals in variants with payloads. #7441
- Fix printer removing private for empty record. #7448
- Fix: handle dynamic imports with module aliases. #7452
- Fix missing unescaping when accessing prop with exotic name. #7469
- Fix syntax error with mutable nested record. #7470
🏠 Internal
- AST: Add bar location to
case
. #7407 - Clean up lazy from ASTs and back-end. #7474
- Compile runtime with rewatch and add rewatch tests to the compiler repo. #7422
💅 Polish
12.0.0-alpha.12
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_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
; addStdlib.Pair
andStdlib.Int.Ref
. #7371
12.0.0-alpha.10
🚀 New Feature
- Add
Dict.has
and doubleDict.forEachWithKey
/Dict.mapValues
performance. #7316 - Add popover attributes to
JsxDOM.domProps
. #7317 - Add
Array.removeInPlace
helper based onsplice
. #7321 - Add
inert
attribute toJsxDOM.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
tothrow
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
inDate.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 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 rescript
package does not triggerpostinstall
script anymore. #7350- Add Stdlib
Bool
andChar
modules 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 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