From 75bcff241b74c45e6e7b116f6c5bbbe92e9648b1 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Wed, 21 Feb 2024 23:24:08 +0100 Subject: [PATCH 01/21] Release blogpost for v11.1 --- _blogposts/2024-02-01-release-11-1.mdx | 117 +++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 _blogposts/2024-02-01-release-11-1.mdx diff --git a/_blogposts/2024-02-01-release-11-1.mdx b/_blogposts/2024-02-01-release-11-1.mdx new file mode 100644 index 000000000..861a778e1 --- /dev/null +++ b/_blogposts/2024-02-01-release-11-1.mdx @@ -0,0 +1,117 @@ +--- +author: rescript-team +date: "2024-02-29" +previewImg: /static/blog/compiler_release_11_0.jpg +title: ReScript 11.1 +badge: release +description: | + Unleashing ReScript from React +--- + +A couple of weeks ago, the ReScript team released ReScript 11.0, which laid ground work for a lot of possible improvements to make it easier to interact with the JavaScript ecosystem. It also came with a lot of breaking changes, unfortunately. + +Good news, this next minor release has none of them. Instead we have some wonderful additions to the ReScript toolbelt for you today. + +To install, use your favorite package manager to install the new compiler release, e.g: + +```sh +npm install rescript@11.1 +``` + +Find a list of all the new features below: + +## Generic JSX transform + +TODO + +## Tagged template literals + +This release comes with support for [tagged templates](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates). + +A tag function in JavaScript is a function that expects an array of strings and variadic parameters as input. Now it's possibe to bind to such functions with the new [`@taggedTemplate`](/syntax-lookup#taggedTemplate-decorator) decorator: + +```rescript +// see https://bun.sh/docs/runtime/shell +type result = {exitCode: int} +@module("bun") @taggedTemplate +external sh: (array, array) => promise = "$" + +let filename = "index.res" +let result = await sh`ls ${filename}` +``` + +Of course you can also create your own tag functions in ReScript now as well, it is just a function with the following signature. + +```rescript +let myTagFunction : (array, array<'param>) => 'output +``` + +Refer to the docs to find a [detailed example](/docs/manual/latest/tagged-templates). + +## Import attributes + +Import attributes is a JS feature that is [currently in standardization](https://github.com/tc39/proposal-import-attributes), but is already implemented by many JS tools. Now, ReScript supports it too, as long as the compiler is configured to output ES6. + + + +```res +@module({from: "./myJson.json", with: {type_: "json", \"some-identifier": "yep"}}) +external myJson: Js.Json.t = "default" +Console.log(myJson) + +@module({from: "./myCss.css", with: {type_: "css", \"some-identifier": "yep"}}) +external buttonCss: string = "button" +Console.log(buttonCss) +``` +```js +import * as MyCssCss from "./myCss.css" with {"type": "css", "some-identifier": "yep"}; +import MyJsonJson from "./myJson.json" with {"type": "json", "some-identifier": "yep"}; + +var myJson = MyJsonJson; +console.log(myJson); + +var buttonCss = MyCssCss.button; +console.log(buttonCss); +``` + + +## Array spread syntax + +The spread syntax, which was already supported for records and lists for a long time, now also supports arrays! + +```rescript +let animals = ["🐶", "🐱", "🐷"] +let moreAnimals = [...animals, "🐔", "🐴", "🐮"] +```` + +## Hyphens in JSX tag names + +We lifted restrictions on JSX tag names. This means you no longer need to use the [illegal identifier syntax](/docs/manual/latest/use-illegal-identifier-names) to use tag names that contain hyphens: + +Previously: + +```rescript +let x = <\"custom-tag" /> +let y = +``` + +Now: + +```rescript +let x = +let y= +``` + +## Acknowledgements + +Once again 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. But especially we want to thank the following people, who helped landing this release: + +[cknitt](https://github.com/cknitt), [@cometkim](https://github.com/cometkim), [@cristianoc](https://github.com/cristianoc), [@diogomqbm](https://github.com/diogomqbm), [@kevinbarabash](https://github.com/kevinbarabash), [@shulhi](https://github.com/shulhi), [@tsnobip](https://github.com/tsnobip), [@zth](https://github.com/zth). + +## That's it + +We hope you enjoy the newest improvements as much as we do. + +If you find any problems with this new release, make sure to report them here: + +- [rescript-lang/rescript-compiler](https://github.com/rescript-lang/rescript-compiler/issues/new/choose) From 6a7a7c33a6c3ea68e8f3a7abd5da49b2f1053763 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Thu, 22 Feb 2024 11:32:49 +0100 Subject: [PATCH 02/21] Adapt to comments --- _blogposts/2024-02-01-release-11-1.mdx | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/_blogposts/2024-02-01-release-11-1.mdx b/_blogposts/2024-02-01-release-11-1.mdx index 861a778e1..6d503421d 100644 --- a/_blogposts/2024-02-01-release-11-1.mdx +++ b/_blogposts/2024-02-01-release-11-1.mdx @@ -8,9 +8,9 @@ description: | Unleashing ReScript from React --- -A couple of weeks ago, the ReScript team released ReScript 11.0, which laid ground work for a lot of possible improvements to make it easier to interact with the JavaScript ecosystem. It also came with a lot of breaking changes, unfortunately. +A couple of weeks ago, the ReScript team released ReScript 11.0, which laid ground work for a lot of possible improvements to make it easier to interact with the JavaScript ecosystem. -Good news, this next minor release has none of them. Instead we have some wonderful additions to the ReScript toolbelt for you today. +This next minor has some wonderful additions to the ReScript toolbelt for you today. To install, use your favorite package manager to install the new compiler release, e.g: @@ -30,6 +30,8 @@ This release comes with support for [tagged templates](https://developer.mozilla A tag function in JavaScript is a function that expects an array of strings and variadic parameters as input. Now it's possibe to bind to such functions with the new [`@taggedTemplate`](/syntax-lookup#taggedTemplate-decorator) decorator: + + ```rescript // see https://bun.sh/docs/runtime/shell type result = {exitCode: int} @@ -39,6 +41,16 @@ external sh: (array, array) => promise = "$" let filename = "index.res" let result = await sh`ls ${filename}` ``` +```js +var $$Bun = require("bun"); + +var filename = "index.res"; + +var result = await $$Bun.$`ls ${filename}`; +``` + + + Of course you can also create your own tag functions in ReScript now as well, it is just a function with the following signature. @@ -86,7 +98,7 @@ let moreAnimals = [...animals, "🐔", "🐴", "🐮"] ## Hyphens in JSX tag names -We lifted restrictions on JSX tag names. This means you no longer need to use the [illegal identifier syntax](/docs/manual/latest/use-illegal-identifier-names) to use tag names that contain hyphens: +We lifted restrictions on JSX tag names. This means you no longer need to escape tag names that contain hyphens: Previously: @@ -99,14 +111,14 @@ Now: ```rescript let x = -let y= +let y = ``` ## Acknowledgements Once again 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. But especially we want to thank the following people, who helped landing this release: -[cknitt](https://github.com/cknitt), [@cometkim](https://github.com/cometkim), [@cristianoc](https://github.com/cristianoc), [@diogomqbm](https://github.com/diogomqbm), [@kevinbarabash](https://github.com/kevinbarabash), [@shulhi](https://github.com/shulhi), [@tsnobip](https://github.com/tsnobip), [@zth](https://github.com/zth). +[@cknitt](https://github.com/cknitt), [@cometkim](https://github.com/cometkim), [@cristianoc](https://github.com/cristianoc), [@diogomqbm](https://github.com/diogomqbm), [@kevinbarabash](https://github.com/kevinbarabash), [@shulhi](https://github.com/shulhi), [@tsnobip](https://github.com/tsnobip), [@zth](https://github.com/zth). ## That's it From cc33db54daec9b33884392e412169ce3d38fd5f4 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Thu, 22 Feb 2024 11:33:09 +0100 Subject: [PATCH 03/21] Add v11.1 image to blogpost --- _blogposts/2024-02-01-release-11-1.mdx | 2 +- public/static/blog/compiler_release_11_1.jpg | Bin 0 -> 90389 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 public/static/blog/compiler_release_11_1.jpg diff --git a/_blogposts/2024-02-01-release-11-1.mdx b/_blogposts/2024-02-01-release-11-1.mdx index 6d503421d..ceb08e3db 100644 --- a/_blogposts/2024-02-01-release-11-1.mdx +++ b/_blogposts/2024-02-01-release-11-1.mdx @@ -1,7 +1,7 @@ --- author: rescript-team date: "2024-02-29" -previewImg: /static/blog/compiler_release_11_0.jpg +previewImg: /static/blog/compiler_release_11_1.jpg title: ReScript 11.1 badge: release description: | diff --git a/public/static/blog/compiler_release_11_1.jpg b/public/static/blog/compiler_release_11_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..efece79a7de2ab1c18ceb47ef6a19a4e53622195 GIT binary patch literal 90389 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 literal 0 HcmV?d00001 From b1c37668ff844a6d9ad64ead9f189894039a2b02 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Thu, 22 Feb 2024 11:39:32 +0100 Subject: [PATCH 04/21] Fix missing . --- _blogposts/2024-01-11-release-11-0-0.mdx | 2 +- _blogposts/2024-02-01-release-11-1.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_blogposts/2024-01-11-release-11-0-0.mdx b/_blogposts/2024-01-11-release-11-0-0.mdx index 82558d6e7..85dfb82a2 100644 --- a/_blogposts/2024-01-11-release-11-0-0.mdx +++ b/_blogposts/2024-01-11-release-11-0-0.mdx @@ -10,7 +10,7 @@ description: | 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. -Use your favorite package manager to install the new compiler release, e.g: +Use your favorite package manager to install the new compiler release, e.g.: ```sh npm install rescript@11 diff --git a/_blogposts/2024-02-01-release-11-1.mdx b/_blogposts/2024-02-01-release-11-1.mdx index ceb08e3db..5d1fbbdc7 100644 --- a/_blogposts/2024-02-01-release-11-1.mdx +++ b/_blogposts/2024-02-01-release-11-1.mdx @@ -12,7 +12,7 @@ A couple of weeks ago, the ReScript team released ReScript 11.0, which laid grou This next minor has some wonderful additions to the ReScript toolbelt for you today. -To install, use your favorite package manager to install the new compiler release, e.g: +To install, use your favorite package manager to install the new compiler release, e.g.: ```sh npm install rescript@11.1 From f002855f9bcff1641b3aaee8c6f969dced2586b6 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Thu, 22 Feb 2024 12:21:58 +0100 Subject: [PATCH 05/21] Fix filename --- ...{2024-02-01-release-11-1.mdx => 2024-02-01-release-11-1-0.mdx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename _blogposts/{2024-02-01-release-11-1.mdx => 2024-02-01-release-11-1-0.mdx} (100%) diff --git a/_blogposts/2024-02-01-release-11-1.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx similarity index 100% rename from _blogposts/2024-02-01-release-11-1.mdx rename to _blogposts/2024-02-01-release-11-1-0.mdx From 18a47700e53cec7da34dc7f2629555222ce9f0db Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Thu, 22 Feb 2024 12:22:21 +0100 Subject: [PATCH 06/21] Point banner to new 11.1 post --- src/layouts/LandingPageLayout.res | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/layouts/LandingPageLayout.res b/src/layouts/LandingPageLayout.res index 383195ce3..c2548b9f4 100644 --- a/src/layouts/LandingPageLayout.res +++ b/src/layouts/LandingPageLayout.res @@ -707,10 +707,10 @@ let make = (~components=MarkdownComponents.default, ~children) => {
- // Delete this again, when ReScript 11 is out for some time. + // Delete this again, when ReScript 11.1 is out for some time. - {React.string("ReScript 11 is out! Read the ")} - + {React.string("ReScript 11.1 is out! Read the ")} + {React.string("announcement blog post")} {React.string(".")} From a3806715748425d768f48e8494f14d4ddf6303c2 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Thu, 22 Feb 2024 13:47:05 +0100 Subject: [PATCH 07/21] Add link to previous post --- _blogposts/2024-02-01-release-11-1-0.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index 5d1fbbdc7..245cced35 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -8,7 +8,7 @@ description: | Unleashing ReScript from React --- -A couple of weeks ago, the ReScript team released ReScript 11.0, which laid ground work for a lot of possible improvements to make it easier to interact with the JavaScript ecosystem. +A couple of weeks ago, the ReScript team [released ReScript 11.0](/blog/release-11-0-0), which laid ground work for a lot of possible improvements to make it easier to interact with the JavaScript ecosystem. This next minor has some wonderful additions to the ReScript toolbelt for you today. From 6f14e1936e44138dccd0bb32ddb8e2cfe3ec51b1 Mon Sep 17 00:00:00 2001 From: Gabriel Nordeborn Date: Mon, 26 Feb 2024 15:34:56 +0100 Subject: [PATCH 08/21] Blog post section on the generic JSX transform (#820) * blog post section on the generic JSX transform * reword * changing back to Preact --- _blogposts/2024-02-01-release-11-1-0.mdx | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index 245cced35..137778ddf 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -20,9 +20,29 @@ npm install rescript@11.1 Find a list of all the new features below: -## Generic JSX transform +## JSX for more than React -TODO +Historically, ReScript has focused mainly on React for its frontend support. This has led to ReScript having a great JSX transform built into the language itself. However, that JSX transform has been quite difficult to use with anything but React. + +With v11.1, that changes! The JSX transform can now be configured to work with any framework. First class React support is of course still the same, and remains a priority. This makes it possible to integrate any other framework's JSX idiomatically in ReScript. And, all the tooling like autocompletion of prop names and types just works. + +Many popular frameworks like Vue and Preact use JSX. But, JSX is also becoming more and more ubiquitous, and these days JSX can also be used for everything from building CLI apps to responsive e-mail templating. We're happy that ReScript users will now be able to leverage all of these innovations in a more idiomatic way than before. + +Here's an example of what a Preact integration could look like: + +```rescript +// Greet.res + +// @jsx.component works the same as @react.component does in React +@jsx.component +let make = (~name) => { +
+ {Preact.string("Hello " ++ name)} +
+} +``` + +Read more in the [`new documentation on the generic JSX transform`](/docs/manual/latest/jsx#generic-jsx-transform-jsx-beyond-react-experimental). ## Tagged template literals From eab52a1790907a43ef868ef2c1c09bce1247f42e Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Mon, 26 Feb 2024 16:40:57 +0100 Subject: [PATCH 09/21] Some more refinements --- _blogposts/2024-02-01-release-11-1-0.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index 137778ddf..4df996de6 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -124,16 +124,16 @@ Previously: ```rescript let x = <\"custom-tag" /> -let y = ``` Now: ```rescript let x = -let y = ``` +This is particularly useful when dealing with [web components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components), where element names tend to use hyphens. + ## Acknowledgements Once again 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. But especially we want to thank the following people, who helped landing this release: From 87b506442d6d6ee3d476357fc14b9d0b775887ed Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Mon, 26 Feb 2024 17:26:05 +0100 Subject: [PATCH 10/21] Fix link --- _blogposts/2024-02-01-release-11-1-0.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index 4df996de6..27f0d28ad 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -42,7 +42,7 @@ let make = (~name) => { } ``` -Read more in the [`new documentation on the generic JSX transform`](/docs/manual/latest/jsx#generic-jsx-transform-jsx-beyond-react-experimental). +Read more in the [new documentation on the generic JSX transform](/docs/manual/latest/jsx#generic-jsx-transform-jsx-beyond-react-experimental). ## Tagged template literals From 3fcaa88e5592643af29a88f3a02281a711aa1b36 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Mon, 26 Feb 2024 17:28:05 +0100 Subject: [PATCH 11/21] Add links to preact and vue --- _blogposts/2024-02-01-release-11-1-0.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index 27f0d28ad..c0627e7ea 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -26,7 +26,7 @@ Historically, ReScript has focused mainly on React for its frontend support. Thi With v11.1, that changes! The JSX transform can now be configured to work with any framework. First class React support is of course still the same, and remains a priority. This makes it possible to integrate any other framework's JSX idiomatically in ReScript. And, all the tooling like autocompletion of prop names and types just works. -Many popular frameworks like Vue and Preact use JSX. But, JSX is also becoming more and more ubiquitous, and these days JSX can also be used for everything from building CLI apps to responsive e-mail templating. We're happy that ReScript users will now be able to leverage all of these innovations in a more idiomatic way than before. +Many popular frameworks like [Vue](https://vuejs.org/) and [Preact](https://preactjs.com/) use JSX. But, JSX is also becoming more and more ubiquitous, and these days JSX can also be used for everything from building CLI apps to responsive e-mail templating. We're happy that ReScript users will now be able to leverage all of these innovations in a more idiomatic way than before. Here's an example of what a Preact integration could look like: From bf94b99e7226c7ed872dc432cdb13694c03629a5 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Wed, 28 Feb 2024 11:47:16 +0100 Subject: [PATCH 12/21] Update _blogposts/2024-02-01-release-11-1-0.mdx Co-authored-by: Gabriel Nordeborn --- _blogposts/2024-02-01-release-11-1-0.mdx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index c0627e7ea..87c141e1e 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -134,6 +134,9 @@ let x = This is particularly useful when dealing with [web components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components), where element names tend to use hyphens. +## v12 is next +v11.1 marks the completion of the v11 versions feature wise. We will of course continue to support the v11 release series with bug fixes and other important updates. With this release however, our focus for new feature development will move to v12. You'll hear more about v12 and the plans for that version soon. + ## Acknowledgements Once again 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. But especially we want to thank the following people, who helped landing this release: From d70d8da2788b2b85e08020ebf437da0da3920848 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Thu, 29 Feb 2024 11:25:17 +0100 Subject: [PATCH 13/21] Move release date --- _blogposts/2024-02-01-release-11-1-0.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index 87c141e1e..e803de7aa 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -1,6 +1,6 @@ --- author: rescript-team -date: "2024-02-29" +date: "2024-03-04" previewImg: /static/blog/compiler_release_11_1.jpg title: ReScript 11.1 badge: release From edb7991c8ee1d51dfeb57aa57e470868522d6773 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Thu, 14 Mar 2024 13:50:13 +0100 Subject: [PATCH 14/21] Update contributors and link to changelog --- _blogposts/2024-02-01-release-11-1-0.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index e803de7aa..72aaf6cff 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -134,6 +134,11 @@ let x = This is particularly useful when dealing with [web components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components), where element names tend to use hyphens. +## Other changes + +Of course we also got a bunch of other changes and bug fixes in this release. Check out the [compiler changelog](https://github.com/rescript-lang/rescript-compiler/blob/11.0_release/CHANGELOG.md#1110-rc1) if you are interested. + + ## v12 is next v11.1 marks the completion of the v11 versions feature wise. We will of course continue to support the v11 release series with bug fixes and other important updates. With this release however, our focus for new feature development will move to v12. You'll hear more about v12 and the plans for that version soon. @@ -141,7 +146,7 @@ v11.1 marks the completion of the v11 versions feature wise. We will of course c Once again 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. But especially we want to thank the following people, who helped landing this release: -[@cknitt](https://github.com/cknitt), [@cometkim](https://github.com/cometkim), [@cristianoc](https://github.com/cristianoc), [@diogomqbm](https://github.com/diogomqbm), [@kevinbarabash](https://github.com/kevinbarabash), [@shulhi](https://github.com/shulhi), [@tsnobip](https://github.com/tsnobip), [@zth](https://github.com/zth). +[@cknitt](https://github.com/cknitt), [@cometkim](https://github.com/cometkim), [@cristianoc](https://github.com/cristianoc), [@diogomqbm](https://github.com/diogomqbm), [@enzo-pellegrini](https://github.com/enzo-pellegrini), [@glennsl](https://github.com/glennsl), [@mununki](https://github.com/mununki), [@kevinbarabash](https://github.com/kevinbarabash), [@shulhi](https://github.com/shulhi), [@tsnobip](https://github.com/tsnobip), [@zth](https://github.com/zth). ## That's it From 41dfcd40a63882ea1a827e78dc3c41fb69222608 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Thu, 14 Mar 2024 15:22:27 +0100 Subject: [PATCH 15/21] Add example for omitting trailing undefineds --- _blogposts/2024-02-01-release-11-1-0.mdx | 41 ++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index 72aaf6cff..e01ae4052 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -134,6 +134,47 @@ let x = This is particularly useful when dealing with [web components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components), where element names tend to use hyphens. +## Omit trailing undefined in external function calls + +ReScript 11's uncurried mode allows for much more ergonomic external function bindings, because trailing units were not needed anymore. But, this comes with a potential problem. All arguments, whether they're actually supplied or not, were printed as `undefined` in the resulting JS. This is handled better now, as trailing `undefined`s are automatically omitted. + + + +```res +@val +external stringify: ( + 'a, + ~replacer: (string, JSON.t) => JSON.t=?, + ~space: int=?, +) => string = "JSON.stringify" + +let obj = {"test": 1} + +let result = stringify(obj) + +let result2 = stringify(obj, ~space=2) +``` +```js +var obj = { + test: 1 +}; + +var result = JSON.stringify(obj, undefined, undefined); + +var result2 = JSON.stringify(obj, undefined, 2); +``` +```js +var obj = { + test: 1 +}; + +var result = JSON.stringify(obj); + +var result2 = JSON.stringify(obj, undefined, 2); +``` + + + ## Other changes Of course we also got a bunch of other changes and bug fixes in this release. Check out the [compiler changelog](https://github.com/rescript-lang/rescript-compiler/blob/11.0_release/CHANGELOG.md#1110-rc1) if you are interested. From a084cbd9522c3c95391c041fcbc00a4f1c53e549 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Thu, 21 Mar 2024 13:29:43 +0100 Subject: [PATCH 16/21] Mention Jono as a contributor --- _blogposts/2024-02-01-release-11-1-0.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index e01ae4052..c0875766e 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -187,7 +187,7 @@ v11.1 marks the completion of the v11 versions feature wise. We will of course c Once again 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. But especially we want to thank the following people, who helped landing this release: -[@cknitt](https://github.com/cknitt), [@cometkim](https://github.com/cometkim), [@cristianoc](https://github.com/cristianoc), [@diogomqbm](https://github.com/diogomqbm), [@enzo-pellegrini](https://github.com/enzo-pellegrini), [@glennsl](https://github.com/glennsl), [@mununki](https://github.com/mununki), [@kevinbarabash](https://github.com/kevinbarabash), [@shulhi](https://github.com/shulhi), [@tsnobip](https://github.com/tsnobip), [@zth](https://github.com/zth). +[@cknitt](https://github.com/cknitt), [@cometkim](https://github.com/cometkim), [@cristianoc](https://github.com/cristianoc), [@diogomqbm](https://github.com/diogomqbm), [@enzo-pellegrini](https://github.com/enzo-pellegrini), [@glennsl](https://github.com/glennsl), [@JonoPrest](https://github.com/JonoPrest), [@mununki](https://github.com/mununki), [@kevinbarabash](https://github.com/kevinbarabash), [@shulhi](https://github.com/shulhi), [@tsnobip](https://github.com/tsnobip), [@zth](https://github.com/zth). ## That's it From a4fa47b2429627479e8ee9d6493f39c87df40e9e Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Fri, 19 Apr 2024 10:49:57 +0200 Subject: [PATCH 17/21] Mention %dtodo and -warn-error --- _blogposts/2024-02-01-release-11-1-0.mdx | 39 +++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index c0875766e..84dd898fd 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -174,6 +174,43 @@ var result2 = JSON.stringify(obj, undefined, 2); ``` +## %todo and warn-error + +Inspired by languages like [Elm](https://package.elm-lang.org/packages/elm/core/latest/Debug#todo) or [Gleam](https://tour.gleam.run/advanced-features/todo/), we introduced a new extension point: [`%todo`](/syntax-lookup#todo). + +It is used to tell the compiler that some code still needs to be implemented and it will crash when exectuted. + + + +```res +let implementMeLater = (): string => %todo("This should return a string eventually.") + +let x = implementMeLater() + +Console.log(x->String.includes("x")) +``` + +```js +var Js_exn = require("./stdlib/js_exn.js"); + +function implementMeLater() { + return Js_exn.raiseError("playground.res:1:37-42 - Todo: This should return a string eventually."); +} + +var x = Js_exn.raiseError("playground.res:1:37-42 - Todo: This should return a string eventually."); + +console.log(x.includes("x")); +``` + + + +We also made the compiler's `-warn-error` flag accessible by the build system, so that `%todo`s and other warnings can be turned into errors in production builds. + +```sh +rescript -warn-error +110 +``` + +See ["Compile with stricter errors in CI"](/docs/manual/latest/build-overview#compile-with-stricter-errors-in-ci). ## Other changes @@ -187,7 +224,7 @@ v11.1 marks the completion of the v11 versions feature wise. We will of course c Once again 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. But especially we want to thank the following people, who helped landing this release: -[@cknitt](https://github.com/cknitt), [@cometkim](https://github.com/cometkim), [@cristianoc](https://github.com/cristianoc), [@diogomqbm](https://github.com/diogomqbm), [@enzo-pellegrini](https://github.com/enzo-pellegrini), [@glennsl](https://github.com/glennsl), [@JonoPrest](https://github.com/JonoPrest), [@mununki](https://github.com/mununki), [@kevinbarabash](https://github.com/kevinbarabash), [@shulhi](https://github.com/shulhi), [@tsnobip](https://github.com/tsnobip), [@zth](https://github.com/zth). +[@cknitt](https://github.com/cknitt), [@cometkim](https://github.com/cometkim), [@cristianoc](https://github.com/cristianoc), [@diogomqbm](https://github.com/diogomqbm), [@enzo-pellegrini](https://github.com/enzo-pellegrini), [@fhammerschmidt](https://github.com/fhammerschmidt), [@glennsl](https://github.com/glennsl), [@JonoPrest](https://github.com/JonoPrest), [@mununki](https://github.com/mununki), [@kevinbarabash](https://github.com/kevinbarabash), [@shulhi](https://github.com/shulhi), [@tsnobip](https://github.com/tsnobip), [@zth](https://github.com/zth). ## That's it From 6640a018cd7e01ed652ca88e0c26714adba91637 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Fri, 19 Apr 2024 10:52:03 +0200 Subject: [PATCH 18/21] Mention bigint --- _blogposts/2024-02-01-release-11-1-0.mdx | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index 84dd898fd..509d37d26 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -107,6 +107,28 @@ console.log(buttonCss); ``` +## BigInt support + +ReScript now natively supports [JavaScript's `bigint` type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt). + + + +```res example +open! Js.BigInt + +let a = 9007199254740991n + 9007199254740991n +let b = 2n ** 2n +``` +```js +var a = 9007199254740991n + 9007199254740991n; + +var p = 2n ** 2n; +``` + + + +See [big integer docs](https://rescript-lang.org/docs/manual/latest/primitive-types#big-integers-experimental) for more. + ## Array spread syntax The spread syntax, which was already supported for records and lists for a long time, now also supports arrays! @@ -114,7 +136,7 @@ The spread syntax, which was already supported for records and lists for a long ```rescript let animals = ["🐶", "🐱", "🐷"] let moreAnimals = [...animals, "🐔", "🐴", "🐮"] -```` +``` ## Hyphens in JSX tag names From 11a1df3394f94f1b7d15a36bbcc2f3b1568d206a Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Fri, 19 Apr 2024 12:00:03 +0200 Subject: [PATCH 19/21] Rephrase intro --- _blogposts/2024-02-01-release-11-1-0.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index 509d37d26..7d62fe6c5 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -8,7 +8,7 @@ description: | Unleashing ReScript from React --- -A couple of weeks ago, the ReScript team [released ReScript 11.0](/blog/release-11-0-0), which laid ground work for a lot of possible improvements to make it easier to interact with the JavaScript ecosystem. +At the beginning of the year, the ReScript team [released ReScript 11.0](/blog/release-11-0-0), which laid ground work for a lot of possible improvements to make it easier to interact with the JavaScript ecosystem. This next minor has some wonderful additions to the ReScript toolbelt for you today. From 2306f3fa036264fe9c7155a28ffa80f301d0f16c Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Fri, 19 Apr 2024 12:37:47 +0200 Subject: [PATCH 20/21] Some more tweaks --- _blogposts/2024-02-01-release-11-1-0.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index 7d62fe6c5..357c8cc08 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -12,7 +12,7 @@ At the beginning of the year, the ReScript team [released ReScript 11.0](/blog/r This next minor has some wonderful additions to the ReScript toolbelt for you today. -To install, use your favorite package manager to install the new compiler release, e.g.: +Use your favorite package manager to install the new compiler release, e.g.: ```sh npm install rescript@11.1 @@ -72,7 +72,7 @@ var result = await $$Bun.$`ls ${filename}`; -Of course you can also create your own tag functions in ReScript now as well, it is just a function with the following signature. +Of course you can also create your own tag function in ReScript now as well, it is just a function with the following signature. ```rescript let myTagFunction : (array, array<'param>) => 'output @@ -158,7 +158,7 @@ This is particularly useful when dealing with [web components](https://developer ## Omit trailing undefined in external function calls -ReScript 11's uncurried mode allows for much more ergonomic external function bindings, because trailing units were not needed anymore. But, this comes with a potential problem. All arguments, whether they're actually supplied or not, were printed as `undefined` in the resulting JS. This is handled better now, as trailing `undefined`s are automatically omitted. +ReScript 11's uncurried mode allows for much more ergonomic external function bindings, because trailing units are not needed anymore. But, this comes with a potential problem. All arguments, whether they're actually supplied or not, were printed as `undefined` in the resulting JS. This is handled better now, as trailing `undefined`s are automatically omitted. @@ -200,7 +200,7 @@ var result2 = JSON.stringify(obj, undefined, 2); Inspired by languages like [Elm](https://package.elm-lang.org/packages/elm/core/latest/Debug#todo) or [Gleam](https://tour.gleam.run/advanced-features/todo/), we introduced a new extension point: [`%todo`](/syntax-lookup#todo). -It is used to tell the compiler that some code still needs to be implemented and it will crash when exectuted. +It is used to tell the compiler that some code still needs to be implemented and it will crash when executed. @@ -240,7 +240,7 @@ Of course we also got a bunch of other changes and bug fixes in this release. Ch ## v12 is next -v11.1 marks the completion of the v11 versions feature wise. We will of course continue to support the v11 release series with bug fixes and other important updates. With this release however, our focus for new feature development will move to v12. You'll hear more about v12 and the plans for that version soon. +v11.1 marks the completion of the v11 versions feature wise. We will of course continue to support the v11 release series with bug fixes and other important updates. However, our focus for new feature development will move to v12. You'll hear more about v12 and the plans for that version soon. ## Acknowledgements From 44674b6525bb6d1fa100845f19f635035c745572 Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Fri, 19 Apr 2024 12:49:03 +0200 Subject: [PATCH 21/21] Update date --- _blogposts/2024-02-01-release-11-1-0.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_blogposts/2024-02-01-release-11-1-0.mdx b/_blogposts/2024-02-01-release-11-1-0.mdx index 357c8cc08..590eb05a3 100644 --- a/_blogposts/2024-02-01-release-11-1-0.mdx +++ b/_blogposts/2024-02-01-release-11-1-0.mdx @@ -1,6 +1,6 @@ --- author: rescript-team -date: "2024-03-04" +date: "2024-04-19" previewImg: /static/blog/compiler_release_11_1.jpg title: ReScript 11.1 badge: release