|
| 1 | +--- |
| 2 | +author: rescript-team |
| 3 | +date: "2024-01-11" |
| 4 | +previewImg: /static/blog/compiler_release_11_0.jpg |
| 5 | +title: ReScript 11.0 |
| 6 | +badge: release |
| 7 | +description: | |
| 8 | + The ReScript developer experience now goes up to eleven! |
| 9 | +--- |
| 10 | + |
| 11 | +Almost a year after the last release, ReScript is available in version 11! It marks the second major community-driven release and we are very thankful that there are so many willing contributors who invested their spare time into improving the compiler and its ecosystem. |
| 12 | + |
| 13 | +To upgrade your project or to find out if there are any breaking changes that affect you, please follow the [migration guide](/docs/manual/latest/migrate-to-v11). |
| 14 | + |
| 15 | +The complete list of changes can be found [here](https://github.com/rescript-lang/rescript-compiler/blob/11.0_release/CHANGELOG.md). Let's have a look at the most notable improvements. |
| 16 | + |
| 17 | +## Compiler |
| 18 | + |
| 19 | +As this release is packed, please refer to the following blogposts for a detailed breakdown of each of the main new features: |
| 20 | + |
| 21 | +- [Better interop with customizable variants](/blog/improving-interop) |
| 22 | +- [Enhanced Ergonomics for Record Types](/blog/enhanced-ergonomics-for-record-types) |
| 23 | +- [First-class Dynamic Import Support](/blog/first-class-dynamic-import-support) |
| 24 | +- [Uncurried Mode](/blog/uncurried-mode) |
| 25 | + |
| 26 | +## Ecosystem |
| 27 | + |
| 28 | +### Create-ReScript-App |
| 29 | + |
| 30 | +Previously, the rescript binary was able to initialize new projects itself. But it was required to have a global npm install to use it. This functionality has been removed. |
| 31 | + |
| 32 | +Going forward, create-rescript-app is the new recommended way to setup a new project. It can even be used to quickly add ReScript to an existing project. Have a look at the updated [installation instructions](/docs/manual/latest/installation) for how to use it. |
| 33 | + |
| 34 | +### ReScript-React v0.12 |
| 35 | + |
| 36 | +In tandem with the new ReScript release, a new version of ReScript-React is released as well. Check out the [corresponding docs](/docs/react/latest/installation). |
| 37 | + |
| 38 | +### Rescript Core |
| 39 | + |
| 40 | +[ReScript Core](https://github.com/rescript-association/rescript-core) is ReScript's new standard library. It replaces the complete `Js` module as well as some of the more frequently used modules from `Belt` and is recommended to use with uncurried mode. |
| 41 | + |
| 42 | +The latest docs on [https://rescript-lang.org](/) already use it for the examples, but please bear in mind that the [API docs](/docs/manual/latest/api) are not updated to it yet. This will happen soon, though as the next section suggests. |
| 43 | + |
| 44 | +### ReScript Tools / Documentation Extraction |
| 45 | + |
| 46 | +There is a new experimental tool available that is a building block for documentation generation from ReScript files. It can be installed and used as follows: |
| 47 | + |
| 48 | +```sh |
| 49 | +npm install --save-dev @rescript/tools |
| 50 | +npx rescript-tools doc src/MyFile.res > doc.json |
| 51 | +``` |
| 52 | + |
| 53 | +### LSP |
| 54 | + |
| 55 | +And also we now ship a standalone [Language Server binary](https://www.npmjs.com/package/@rescript/language-server), which can be installed and used like so: |
| 56 | + |
| 57 | +```sh |
| 58 | +npm install -g @rescript/language-server |
| 59 | +npx rescript-language-server --stdio |
| 60 | +``` |
| 61 | + |
| 62 | +## What's next |
| 63 | + |
| 64 | +The following features are planned to be implemented in upcoming versions: |
| 65 | + |
| 66 | +- Make JSX usable beyond React: |
| 67 | + - [Generic JSX transform](https://github.com/rescript-lang/rescript-compiler/issues/6408) |
| 68 | + - [JSX preserve mode](https://github.com/rescript-lang/rescript-compiler/issues/6197) |
| 69 | +- Integrate the Rescript Core standard library into the compiler |
| 70 | + - remove the OCaml standard library |
| 71 | + - remove `Belt` but keep it available as external package |
| 72 | +- Make maintaining TS libraries with ReScript a breeze, [thanks to genType](https://github.com/rescript-lang/rescript-compiler/issues/6210) |
| 73 | +- Support [tagged template literals](https://github.com/rescript-lang/rescript-compiler/pull/6250) |
| 74 | +- [Dedicated syntax for creating Dicts](https://github.com/rescript-lang/rescript-compiler/issues/6545) |
| 75 | +- [Array spread syntax](https://github.com/rescript-lang/rescript-compiler/issues/6546) |
| 76 | +- A [new custom build system](https://github.com/rolandpeelen/rewatch) with better support for workspaces / monorepos |
| 77 | + |
| 78 | +## Acknowledgements |
| 79 | + |
| 80 | +We want to thank everyone from the community who volunteered their precious time to support this project with contributions of any kind, from documentation, to PRs, to discussions in the forum. |
| 81 | + |
| 82 | +## That's it |
| 83 | + |
| 84 | +We hope you enjoy the newest improvements as much as we do. |
| 85 | + |
| 86 | +In case of issues / problems, make sure to report bugs to one of the following repositories: |
| 87 | + |
| 88 | +- [rescript-lang/rescript-compiler](https://github.com/rescript-lang/rescript-compiler) (language / syntax / jsx) |
| 89 | +- [rescript-lang/rescript-react](https://github.com/rescript-lang/rescript-react) (React bindings) |
| 90 | +- [rescript-lang/rescript-vscode](https://github.com/rescript-lang/rescript-vscode) (VSCode language support, LSP, tools) |
| 91 | +- [rescript-lang/create-rescript-app](https://github.com/rescript-lang/create-rescript-app) (project generator) or |
| 92 | +- [rescript-association/rescript-lang.org](https://github.com/rescript-association/rescript-lang.org) (documentation) |
0 commit comments