From 779b984006f440c9ed86bba163812347555c7730 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Mon, 23 Sep 2024 17:51:29 +0200 Subject: [PATCH 1/6] Release blogpost for v11.1.x --- _blogposts/2024-09-30-release-11-1-5.mdx | 136 +++++++++++++++++++++++ src/layouts/LandingPageLayout.res | 16 +-- 2 files changed, 144 insertions(+), 8 deletions(-) create mode 100644 _blogposts/2024-09-30-release-11-1-5.mdx diff --git a/_blogposts/2024-09-30-release-11-1-5.mdx b/_blogposts/2024-09-30-release-11-1-5.mdx new file mode 100644 index 000000000..bc8209cb2 --- /dev/null +++ b/_blogposts/2024-09-30-release-11-1-5.mdx @@ -0,0 +1,136 @@ +--- +author: rescript-team +date: "2024-09-30" +title: ReScript 11.1.x +badge: release +description: | + ReScript 11.1 bugfix releases and deprecation warnings +--- + +In preparation for the next major release of ReScript, we decided to deprecate JSX V3 in ReScript 11.1.5, in order to remove it completely in ReScript 12. During the development of V12, we fixed some parser and formatter issues that got backported to V11 as well. Furthermore, some compiler bugfixes happened as well. And last but not least, we improved Windows support a bit. + +Please ensure to be on the latest patch release: + +```sh +npm install rescript@11.1 +``` + +All changes can be found in the changelog ([11.1.1](https://github.com/rescript-lang/rescript-compiler/blob/11.0_release/CHANGELOG.md#1111) - [11.1.5](https://github.com/rescript-lang/rescript-compiler/blob/11.0_release/CHANGELOG.md#1115)), but the most important ones are: + +## Deprecation of JSX 3 + +JSX 3 has been officially deprecated. Moving forward, developers should only use JSX 4 so we can safely remove it from ReScript V12 and also to ensure binding libraries will use it as the blessed path. Read more on the [deprecation pull request](https://github.com/rescript-lang/rescript-compiler/pull/7042). + +## Some parser and formatter fixes + +On the way to remove the legacy `Pervasives` standard library out of the compiler, we adapted a lot of compiler tests and found some parser and formatter issues, see below: + +### Trailing Comma Issue Fixed in Partial Applications + +A bug that caused a trailing comma in partial applications (`...`) during long layout breaks has been fixed. This resolves formatting inconsistencies that could arise in such cases. [More details](https://github.com/rescript-lang/rescript-compiler/pull/6949). + +### Unary Operator Function Format Fix + +Previously, functions placed under unary operators could end up incorrectly formatted. This issue has now been resolved, ensuring that such scenarios are handled cleanly. [PR link](https://github.com/rescript-lang/rescript-compiler/pull/6953). + +### Correct printing of module binding with signature + +An issue where the module binding with a signature was incorrectly printed has been addressed. The formatting now works as expected, improving readability and reducing confusion. [Learn more](https://github.com/rescript-lang/rescript-compiler/pull/6963). + +### Comment Retention in Function Signatures with `type` + +Comments were sometimes removed when a function signature included the `type` keyword. This bug has been fixed, ensuring that comments remain intact and improve code clarity. [PR details](https://github.com/rescript-lang/rescript-compiler/pull/6997). + +### Parsing Error Fixed in Type Definitions + +A parsing error that occurred when a doc comment appeared before an "and" in a type definition has been corrected. Developers can now rely on proper parsing in such scenarios. [See the PR](https://github.com/rescript-lang/rescript-compiler/pull/7001). + +### Tuple Coercion Fix + +A bug in tuple coercion has been addressed, ensuring proper behavior in tuple-related type coercion. [More here](https://github.com/rescript-lang/rescript-compiler/pull/7024). + +### Comment Handling in Uncurried Functions + +The formatter now properly retains comments in the first argument of uncurried functions, improving code readability during formatting. [Details in the PR](https://github.com/rescript-lang/rescript-compiler/pull/6763). + +### Parenthesis Retention in Pipe Operators + +A formatter bug where parentheses were removed in pipe operators with anonymous uncurried functions has been fixed, ensuring that the intended operator precedence is preserved. [More details](https://github.com/rescript-lang/rescript-compiler/pull/6766). + +### Improved Support for Capitalized Type Variables + +A bug preventing capitalized type variables from being used in certain positions has been fixed, allowing greater flexibility in type variable naming. [Details here](https://github.com/rescript-lang/rescript-compiler/pull/6820). + +## Compiler improvements + +### Stricter Variant Spreading Rules + +The compiler now disallows spreading anything other than regular variants inside other variants. This change enforces stricter type-safety rules, making your code more predictable and reducing potential edge-case errors. [PR link](https://github.com/rescript-lang/rescript-compiler/pull/6980). + +### Improved Error Reporting in Tag Functions + +Compiler error reports related to tag functions have been improved, ensuring accurate error locations for easier debugging. [Details in the PR](https://github.com/rescript-lang/rescript-compiler/pull/6816). + +### Infinite Loops Fix in Recursive Types + +An infinite loop issue arising from recursive types with type errors has been fixed. This significantly improves the compiler’s robustness when handling more complex type definitions. [PR link](https://github.com/rescript-lang/rescript-compiler/pull/6867). + +### Better Handling of `@uncurry` in Uncurried Mode + +The `@uncurry` attribute is now ignored in uncurried mode, preventing unnecessary runtime calls to `Curry`, which optimizes performance and reduces overhead. [More on the fix](https://github.com/rescript-lang/rescript-compiler/pull/6869). As uncurried mode will be the only mode of V12, the attribute will also be removed. + +### Arity Adjustment Without `Curry` Calls + +The compiler now avoids generating `Curry` calls when adjusting the arity of uncurried functions, further improving runtime efficiency. [Details in the PR](https://github.com/rescript-lang/rescript-compiler/pull/6870). + +### Recursive Function Fix for `_param` + +An uninitialized `_param` in recursive functions with unit arguments has been fixed, improving reliability in recursive function calls. [See the PR](https://github.com/rescript-lang/rescript-compiler/pull/6907). + +### Optional Labels in Record Value Construction + +An issue where optional labels were not considered during record value construction has been fixed, making record creation more consistent and error-free. [PR link](https://github.com/rescript-lang/rescript-compiler/pull/6798). + +### Gentype Improvements for `Jsx.element` + +A bug in Gentype when the `Jsx.element` type surfaced to the user has been addressed, ensuring better interoperability between Gentype and JSX elements. [Read more](https://github.com/rescript-lang/rescript-compiler/pull/6808). + +### Untagged Variant Fixes + +The compiler now correctly handles inclusion checks for untagged variants and improves the outcome printer to properly display tags. [Details in the PR](https://github.com/rescript-lang/rescript-compiler/pull/6669). + +### Encoding Fix in Tagged Template Literals + +An encoding issue in tagged template literals has been fixed, ensuring that template literals work correctly with special character encodings. [Learn more](https://github.com/rescript-lang/rescript-compiler/pull/6810). + +### Switch Case Issue Fixed for Mixed Objects and Arrays + +A bug causing incorrect switch case behavior when mixing objects and arrays with identical bodies has been resolved, improving the correctness of switch case statements. [PR link](https://github.com/rescript-lang/rescript-compiler/pull/6792). + +## Platform support and build system + +### Deno Compatibility on Windows + +The ReScript compiler now resolves compatibility issues when using Deno on Windows, making development smoother for Windows users working with Deno. [Read more](https://github.com/rescript-lang/rescript-compiler/pull/6850). + +### Windows 11 ARM Support + +The compiler now supports Windows 11 ARM, using x64 binaries in emulation mode, expanding ReScript’s compatibility with new hardware architectures. [Learn more](https://github.com/rescript-lang/rescript-compiler/pull/6813). + +### Build Fix Without `-warn-error` + +A specific build issue that occurred when running the compiler without `-warn-error` has been resolved. This improves the flexibility of build configurations. [Learn more](https://github.com/rescript-lang/rescript-compiler/pull/6877). + +### Omit Standard Library in Load Path + +If the `-nostdlib` flag is set, the standard library directory will now be omitted from the load path, giving developers more control over their environment. [PR link](https://github.com/rescript-lang/rescript-compiler/pull/6833). + +## v12 outlook + +We are deep in the process of removing a lot of legacy compiler internals as well as support for ml syntax. With v12, ReScript will be a language with just _one_ syntax, targeting _one_ platform and, ideally, _one_ standard library that ships with the compiler directly. We hope it will enable us to tailor ReScript even more to the JS platform. + +## Acknowledgements + +There is a good amount of recurring contributors who deliver some very good work now. So once again we have to thank you all, you are amazing! The most recent patch releases had contributions by: + +[@aspeddro](https://github.com/aspeddro), [@cknitt](https://github.com/cknitt), [@cristianoc](https://github.com/cristianoc), [@fhammerschmidt](https://github.com/fhammerschmidt), [@rlidwka](https://github.com/rlidwka), [@shulhi](https://github.com/shulhi), [@tsnobip](https://github.com/tsnobip), [@zth](https://github.com/zth) diff --git a/src/layouts/LandingPageLayout.res b/src/layouts/LandingPageLayout.res index f5b78d7fb..e54a56f3d 100644 --- a/src/layouts/LandingPageLayout.res +++ b/src/layouts/LandingPageLayout.res @@ -707,14 +707,14 @@ let make = (~components=MarkdownComponents.default, ~children) => {
- // Delete this again, when ReScript 11.1 is out for some time. - - {React.string("ReScript 11.1 is out! Read the ")} - - {React.string("announcement blog post")} - - {React.string(".")} - + // Uncomment this when ReScript 12 is out. + // + // {React.string("ReScript 12 is out! Read the ")} + // + // {React.string("announcement blog post")} + // + // {React.string(".")} + //
From ecff4f6079e38ceef6c61240b01fef1484b0413e Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Tue, 24 Sep 2024 09:37:54 +0200 Subject: [PATCH 2/6] Shorten blogpost a bit --- _blogposts/2024-09-30-release-11-1-5.mdx | 111 +++-------------------- 1 file changed, 14 insertions(+), 97 deletions(-) diff --git a/_blogposts/2024-09-30-release-11-1-5.mdx b/_blogposts/2024-09-30-release-11-1-5.mdx index bc8209cb2..f672112c8 100644 --- a/_blogposts/2024-09-30-release-11-1-5.mdx +++ b/_blogposts/2024-09-30-release-11-1-5.mdx @@ -23,107 +23,24 @@ JSX 3 has been officially deprecated. Moving forward, developers should only use ## Some parser and formatter fixes -On the way to remove the legacy `Pervasives` standard library out of the compiler, we adapted a lot of compiler tests and found some parser and formatter issues, see below: +On the way to remove the legacy `Pervasives` standard library out of the compiler, we adapted a lot of compiler tests and found and fixed some parser and formatter issues, for instance: -### Trailing Comma Issue Fixed in Partial Applications +- [Trailing Comma Issue Fixed in Partial Applications](https://github.com/rescript-lang/rescript-compiler/pull/6949) +- [Unary Operator Function Format Fix](https://github.com/rescript-lang/rescript-compiler/pull/6953) +- [Correct printing of module binding with signature](https://github.com/rescript-lang/rescript-compiler/pull/6963) +- [Comment Retention in Function Signatures with `type`](https://github.com/rescript-lang/rescript-compiler/pull/6997) +- [Parsing Error Fixed in Type Definitions](https://github.com/rescript-lang/rescript-compiler/pull/7001) -A bug that caused a trailing comma in partial applications (`...`) during long layout breaks has been fixed. This resolves formatting inconsistencies that could arise in such cases. [More details](https://github.com/rescript-lang/rescript-compiler/pull/6949). +## Compiler fixes -### Unary Operator Function Format Fix +The compiler also received some improvements, mostly around error reporting, (untagged) variant checks and producing more efficient code in uncurried mode. Furthermore, there were some Windows support improvements. Some notable changes are: -Previously, functions placed under unary operators could end up incorrectly formatted. This issue has now been resolved, ensuring that such scenarios are handled cleanly. [PR link](https://github.com/rescript-lang/rescript-compiler/pull/6953). - -### Correct printing of module binding with signature - -An issue where the module binding with a signature was incorrectly printed has been addressed. The formatting now works as expected, improving readability and reducing confusion. [Learn more](https://github.com/rescript-lang/rescript-compiler/pull/6963). - -### Comment Retention in Function Signatures with `type` - -Comments were sometimes removed when a function signature included the `type` keyword. This bug has been fixed, ensuring that comments remain intact and improve code clarity. [PR details](https://github.com/rescript-lang/rescript-compiler/pull/6997). - -### Parsing Error Fixed in Type Definitions - -A parsing error that occurred when a doc comment appeared before an "and" in a type definition has been corrected. Developers can now rely on proper parsing in such scenarios. [See the PR](https://github.com/rescript-lang/rescript-compiler/pull/7001). - -### Tuple Coercion Fix - -A bug in tuple coercion has been addressed, ensuring proper behavior in tuple-related type coercion. [More here](https://github.com/rescript-lang/rescript-compiler/pull/7024). - -### Comment Handling in Uncurried Functions - -The formatter now properly retains comments in the first argument of uncurried functions, improving code readability during formatting. [Details in the PR](https://github.com/rescript-lang/rescript-compiler/pull/6763). - -### Parenthesis Retention in Pipe Operators - -A formatter bug where parentheses were removed in pipe operators with anonymous uncurried functions has been fixed, ensuring that the intended operator precedence is preserved. [More details](https://github.com/rescript-lang/rescript-compiler/pull/6766). - -### Improved Support for Capitalized Type Variables - -A bug preventing capitalized type variables from being used in certain positions has been fixed, allowing greater flexibility in type variable naming. [Details here](https://github.com/rescript-lang/rescript-compiler/pull/6820). - -## Compiler improvements - -### Stricter Variant Spreading Rules - -The compiler now disallows spreading anything other than regular variants inside other variants. This change enforces stricter type-safety rules, making your code more predictable and reducing potential edge-case errors. [PR link](https://github.com/rescript-lang/rescript-compiler/pull/6980). - -### Improved Error Reporting in Tag Functions - -Compiler error reports related to tag functions have been improved, ensuring accurate error locations for easier debugging. [Details in the PR](https://github.com/rescript-lang/rescript-compiler/pull/6816). - -### Infinite Loops Fix in Recursive Types - -An infinite loop issue arising from recursive types with type errors has been fixed. This significantly improves the compiler’s robustness when handling more complex type definitions. [PR link](https://github.com/rescript-lang/rescript-compiler/pull/6867). - -### Better Handling of `@uncurry` in Uncurried Mode - -The `@uncurry` attribute is now ignored in uncurried mode, preventing unnecessary runtime calls to `Curry`, which optimizes performance and reduces overhead. [More on the fix](https://github.com/rescript-lang/rescript-compiler/pull/6869). As uncurried mode will be the only mode of V12, the attribute will also be removed. - -### Arity Adjustment Without `Curry` Calls - -The compiler now avoids generating `Curry` calls when adjusting the arity of uncurried functions, further improving runtime efficiency. [Details in the PR](https://github.com/rescript-lang/rescript-compiler/pull/6870). - -### Recursive Function Fix for `_param` - -An uninitialized `_param` in recursive functions with unit arguments has been fixed, improving reliability in recursive function calls. [See the PR](https://github.com/rescript-lang/rescript-compiler/pull/6907). - -### Optional Labels in Record Value Construction - -An issue where optional labels were not considered during record value construction has been fixed, making record creation more consistent and error-free. [PR link](https://github.com/rescript-lang/rescript-compiler/pull/6798). - -### Gentype Improvements for `Jsx.element` - -A bug in Gentype when the `Jsx.element` type surfaced to the user has been addressed, ensuring better interoperability between Gentype and JSX elements. [Read more](https://github.com/rescript-lang/rescript-compiler/pull/6808). - -### Untagged Variant Fixes - -The compiler now correctly handles inclusion checks for untagged variants and improves the outcome printer to properly display tags. [Details in the PR](https://github.com/rescript-lang/rescript-compiler/pull/6669). - -### Encoding Fix in Tagged Template Literals - -An encoding issue in tagged template literals has been fixed, ensuring that template literals work correctly with special character encodings. [Learn more](https://github.com/rescript-lang/rescript-compiler/pull/6810). - -### Switch Case Issue Fixed for Mixed Objects and Arrays - -A bug causing incorrect switch case behavior when mixing objects and arrays with identical bodies has been resolved, improving the correctness of switch case statements. [PR link](https://github.com/rescript-lang/rescript-compiler/pull/6792). - -## Platform support and build system - -### Deno Compatibility on Windows - -The ReScript compiler now resolves compatibility issues when using Deno on Windows, making development smoother for Windows users working with Deno. [Read more](https://github.com/rescript-lang/rescript-compiler/pull/6850). - -### Windows 11 ARM Support - -The compiler now supports Windows 11 ARM, using x64 binaries in emulation mode, expanding ReScript’s compatibility with new hardware architectures. [Learn more](https://github.com/rescript-lang/rescript-compiler/pull/6813). - -### Build Fix Without `-warn-error` - -A specific build issue that occurred when running the compiler without `-warn-error` has been resolved. This improves the flexibility of build configurations. [Learn more](https://github.com/rescript-lang/rescript-compiler/pull/6877). - -### Omit Standard Library in Load Path - -If the `-nostdlib` flag is set, the standard library directory will now be omitted from the load path, giving developers more control over their environment. [PR link](https://github.com/rescript-lang/rescript-compiler/pull/6833). +- [Stricter Variant Spreading Rules](https://github.com/rescript-lang/rescript-compiler/pull/6980) +- [Improved Error Reporting in Tag Functions](https://github.com/rescript-lang/rescript-compiler/pull/6816) +- [Better Handling of `@uncurry` in Uncurried Mode](https://github.com/rescript-lang/rescript-compiler/pull/6869) +- [Untagged Variant Fixes](https://github.com/rescript-lang/rescript-compiler/pull/6669) +- [Deno Compatibility on Windows](https://github.com/rescript-lang/rescript-compiler/pull/6850) +- [Windows 11 ARM Support](https://github.com/rescript-lang/rescript-compiler/pull/6813) ## v12 outlook From 436cbe6ff598a3e232ec76cd40b1d26529f28cdc Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Tue, 24 Sep 2024 09:46:22 +0200 Subject: [PATCH 3/6] Update _blogposts/2024-09-30-release-11-1-5.mdx Co-authored-by: Gabriel Nordeborn --- _blogposts/2024-09-30-release-11-1-5.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/_blogposts/2024-09-30-release-11-1-5.mdx b/_blogposts/2024-09-30-release-11-1-5.mdx index f672112c8..bc357447b 100644 --- a/_blogposts/2024-09-30-release-11-1-5.mdx +++ b/_blogposts/2024-09-30-release-11-1-5.mdx @@ -6,6 +6,7 @@ badge: release description: | ReScript 11.1 bugfix releases and deprecation warnings --- +Here's a short update from the ReScript team on what's going on right now, what's going on with the `11.x.x` versions, and what we're working on for version 12. In preparation for the next major release of ReScript, we decided to deprecate JSX V3 in ReScript 11.1.5, in order to remove it completely in ReScript 12. During the development of V12, we fixed some parser and formatter issues that got backported to V11 as well. Furthermore, some compiler bugfixes happened as well. And last but not least, we improved Windows support a bit. From 1a864626a4962236c8c6fb8258eb70ede9b10ed1 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Tue, 24 Sep 2024 09:51:52 +0200 Subject: [PATCH 4/6] Update _blogposts/2024-09-30-release-11-1-5.mdx Co-authored-by: Gabriel Nordeborn --- _blogposts/2024-09-30-release-11-1-5.mdx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/_blogposts/2024-09-30-release-11-1-5.mdx b/_blogposts/2024-09-30-release-11-1-5.mdx index bc357447b..50d195990 100644 --- a/_blogposts/2024-09-30-release-11-1-5.mdx +++ b/_blogposts/2024-09-30-release-11-1-5.mdx @@ -44,6 +44,13 @@ The compiler also received some improvements, mostly around error reporting, (un - [Windows 11 ARM Support](https://github.com/rescript-lang/rescript-compiler/pull/6813) ## v12 outlook +ReScript version 12 is well under way and we're working hard to streamline our platform and development process more. A sneak peak of some of the things we're working on: +- Uncurried only, making sure the generated JS is as fast and clean as possible +- A new significantly faster (up to 60% faster in some cases) and more robust build system in [`Rewatch`](https://github.com/rescript-lang/rewatch), with full monorepo support +- [ReScript Core](https://github.com/rescript-association/rescript-core) moves into the compiler and becomes the standard library +- Streamlined and improved TypeScript <-> ReScript interop through a revamp of Gentype + +...and many more things. More blog posts on v12 to follow! We are deep in the process of removing a lot of legacy compiler internals as well as support for ml syntax. With v12, ReScript will be a language with just _one_ syntax, targeting _one_ platform and, ideally, _one_ standard library that ships with the compiler directly. We hope it will enable us to tailor ReScript even more to the JS platform. From 29de83af20b5d168c782b217f890151d47dd0ffe Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Tue, 24 Sep 2024 10:00:19 +0200 Subject: [PATCH 5/6] Escape fix --- _blogposts/2024-09-30-release-11-1-5.mdx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/_blogposts/2024-09-30-release-11-1-5.mdx b/_blogposts/2024-09-30-release-11-1-5.mdx index 50d195990..02a574d5f 100644 --- a/_blogposts/2024-09-30-release-11-1-5.mdx +++ b/_blogposts/2024-09-30-release-11-1-5.mdx @@ -6,6 +6,7 @@ badge: release description: | ReScript 11.1 bugfix releases and deprecation warnings --- + Here's a short update from the ReScript team on what's going on right now, what's going on with the `11.x.x` versions, and what we're working on for version 12. In preparation for the next major release of ReScript, we decided to deprecate JSX V3 in ReScript 11.1.5, in order to remove it completely in ReScript 12. During the development of V12, we fixed some parser and formatter issues that got backported to V11 as well. Furthermore, some compiler bugfixes happened as well. And last but not least, we improved Windows support a bit. @@ -44,11 +45,13 @@ The compiler also received some improvements, mostly around error reporting, (un - [Windows 11 ARM Support](https://github.com/rescript-lang/rescript-compiler/pull/6813) ## v12 outlook + ReScript version 12 is well under way and we're working hard to streamline our platform and development process more. A sneak peak of some of the things we're working on: + - Uncurried only, making sure the generated JS is as fast and clean as possible - A new significantly faster (up to 60% faster in some cases) and more robust build system in [`Rewatch`](https://github.com/rescript-lang/rewatch), with full monorepo support -- [ReScript Core](https://github.com/rescript-association/rescript-core) moves into the compiler and becomes the standard library -- Streamlined and improved TypeScript <-> ReScript interop through a revamp of Gentype +- [ReScript Core](https://github.com/rescript-association/rescript-core) moves into the compiler and becomes the standard library +- Streamlined and improved TypeScript \<-> ReScript interop through a revamp of Gentype ...and many more things. More blog posts on v12 to follow! From 1db7119d1d6aa208986a18f33f323ef6fd131456 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Thu, 3 Oct 2024 15:19:02 +0200 Subject: [PATCH 6/6] Update _blogposts/2024-09-30-release-11-1-5.mdx Co-authored-by: Gabriel Nordeborn --- _blogposts/2024-09-30-release-11-1-5.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_blogposts/2024-09-30-release-11-1-5.mdx b/_blogposts/2024-09-30-release-11-1-5.mdx index 02a574d5f..b3d7301a4 100644 --- a/_blogposts/2024-09-30-release-11-1-5.mdx +++ b/_blogposts/2024-09-30-release-11-1-5.mdx @@ -52,7 +52,7 @@ ReScript version 12 is well under way and we're working hard to streamline our p - A new significantly faster (up to 60% faster in some cases) and more robust build system in [`Rewatch`](https://github.com/rescript-lang/rewatch), with full monorepo support - [ReScript Core](https://github.com/rescript-association/rescript-core) moves into the compiler and becomes the standard library - Streamlined and improved TypeScript \<-> ReScript interop through a revamp of Gentype - +- First classing dictionaries (`dict<'t>`) in the compiler, including supporting pattern matching and actual syntax for creating dicts, all zero cost ...and many more things. More blog posts on v12 to follow! We are deep in the process of removing a lot of legacy compiler internals as well as support for ml syntax. With v12, ReScript will be a language with just _one_ syntax, targeting _one_ platform and, ideally, _one_ standard library that ships with the compiler directly. We hope it will enable us to tailor ReScript even more to the JS platform.