Skip to content

Releases: rescript-lang/rescript

10.1.0-alpha.1

10 Sep 09:12
95429e5
Compare
Choose a tag to compare
10.1.0-alpha.1 Pre-release
Pre-release

💥 Breaking Change

  • Vendor genType, which does not need to be installed separately anymore. Only TypeScript back-end supported.
  • Pipe -> does not support a code block on the right-hand side e.g. x->{ open A; get("test") }

🚀 New Feature

  • Experimental support for for async/await #5537

  • Make promise a built-in type #5650

  • Initial support for JSX V4 including genType, still work in progress.

    • 💥 when V4 is activated, at most one component is allowed for each module.
  • Add placeholder types for ES6 collections: Set, Map, WeakSet, and WeakMap #5630

🐛 Bug Fix

  • Fix issue with arrays and creation of recursive values #5640
  • Fix issue where characters such as newlines would be escaped in a template string expression #5638
  • Fix issue where pipe -> processing eats up attributes #5581
  • Fix issue where cancelling rescript build would leave the .bsb.lock file behind and block future builds

💅 Polish

  • Print patterns in warnings using rescript printer #5492

10.0.1

31 Aug 11:05
8149ea2
Compare
Choose a tag to compare

🐛 Bug Fix

  • Fix issue where watch mode would give an error on Windows #5621

10.0.0

24 Aug 13:18
Compare
Choose a tag to compare

Compiler

💥 Breaking Change

  • bsconfig.json does not support // line comments anymore.
    • Example: "suffix": ".bs.js" // determine the suffix
    • Fix: remove the comment and use standard json.
  • Changed return type of Js.String.match_ as it was wrong. #5070
    • Example: any use of Js.String.match_ and Js.String2.match_
    • Fix: follow the type errors

🚀 New Feature

  • New records with optional fields e.g. type opt = {x: int, y?: string} were added as an experimental feature #5423 #5452 New Syntax
  • Add support for @new @variadic (see #5364)

🐛 Bug Fix

  • Classify bigint correctly #5351
  • Fixed crash in rescript build on Windows #5516
  • Fixed rescript init command not working #5526
  • Fix issue with compiler log not terminated that causes problems with editor extension not clearing issues when fixed #5545
💅 Polish
  • Changed Linux build to depend on GLIBC 2.28 again for compatibility with Debian 10.
  • Proper M1 support (CI now supports M1 native builds)

Syntax

💥 Breaking Change

  • @bs.send.pipe is now removed. Earlier it was deprecated.
  • Missing labels in function application is now an error (https://forum.rescript-lang.org/t/ann-more-strict-checks-in-missed-labels/2117).
    • Example: let f = (x, ~z) => x + z; f(1, 2)
    • Fix: do let f = (x, ~z) => x + z; f(1, ~z=2) instead
  • Externals without @val annotations do not work anymore, and externals with = "" give an error.
    • Example: external setTimeout: (unit => unit, int) => float = "setTimeout" is not supported anymore.
    • Fix: use @val external setTimeout: (unit => unit, int) => float = "setTimeout" instead.
    • Example2: @val external setTimeout: (unit => unit, int) => float = "" is not supported anymore.
    • Fix2: use @val external setTimeout: (unit => unit, int) => float = "setTimeout" instead.
  • Strings processed at compile-time don't need escaping anymore.
    • Example: let blockCommentsRe = %re("/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\//g").
    • Fix: use let blockCommentsRe = %re("/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\//g") instead.
  • Remove parsing of "import" and "export" which was never officially supported rescript-lang/syntax#597 rescript-lang/syntax#599
    • Example: export type t = int
    • Fix: @genType type t = int
    • Example2: import realValue: complexNumber => float from "./MyMath"
    • Fix2: @genType.import("./MyMath") external realValue: complexNumber => float = "realValue"

🚀 New Feature

  • Unicode is now supported in regular strings and chars (when the symbol fits). This is now going to work: let str = "Σ". And, you'll be able to pattern match on unicode chars: switch c { | 'Σ' => "what a fine unicode char" | _ => "unicode is fun" }
  • Doc comments /** ... */ are now supported. Inernally, they are attributes, so are only valid at positions where @foo is allowed, or a syntax error is given. Similarly for module-level /*** comments */ that can go where @@attributes go.

🐛 Bug Fix

  • Fix printing for inline nullary functor types #477
  • Fix stripping of quotes for empty poly variants #474
  • Implement syntax for arity zero vs arity one in uncurried application in #139
  • Fix parsing of first class module exprs as part of binary/ternary expr in #256
  • Fix formatter hanging on deeply nested function calls #261

Libraries

💥 Breaking Change

  • "Attributes not allowed here". If you see this error chances are you're using a ppx that needs updating to a new version.
    See an exampe of how to update a ppx
    • Example: for rescript-relay 0.23.0 is not supported.
    • Fix: use rescript-relay@beta or the new version when released.
  • Removed printing modules (Printf, Format etc) and related functions. Details of files added/removed: 0fd8bb0.

🐛 Bug Fix

  • Fix library issue with missing bytes_to_string #5573 #5589

💅 Polish

  • Several Belt / Js libraries are now converted to ReScript syntax, with corresponding comments in Markdown format suitable for hovering. See #5361.

Playground

🏠 Internal

  • Added jsoo_playground_main.ml as the rescript-lang.org playground bundle entrypoint

💥 Breaking Change

  • Removed Reason syntax support for the playground experience. See #5375

10.0.0-rc.1

23 Jul 14:34
8e3ccc6
Compare
Choose a tag to compare
10.0.0-rc.1 Pre-release
Pre-release

Release Candidate 1

10.0.0-rc.1

🐛 Bug Fix

  • Fix library issue with missing bytes_to_string #5573

10.0.0-beta.3

Compiler

💥 Breaking Change

  • bsconfig.json does not support // line comments anymore.
    • Example: "suffix": ".bs.js" // determine the suffix
    • Fix: remove the comment and use standard json.
  • Changed return type of Js.String.match_ as it was wrong. #5070
    • Example: any use of Js.String.match_ and Js.String2.match_
    • Fix: follow the type errors

🚀 New Feature

  • New records with @optional fields e.g. type opt = {x: int, ?y: string} were added as an experimental feature #5423 #5452 New Syntax
  • Add support for @new @variadic (see #5364)

🐛 Bug Fix

  • Classify bigint correctly #5351
  • Fixed crash in rescript build on Windows #5516
  • Fixed rescript init command not working #5526
  • Fix issue with compiler log not terminated that causes problems with editor extension not clearing issues when fixed #5545
💅 Polish
  • Changed Linux build to depend on GLIBC 2.28 again for compatibility with Debian 10.

  • Proper M1 support (CI now supports M1 native builds)

Syntax

💥 Breaking Change

  • @bs.send.pipe is now removed. Earlier it was deprecated.
  • Missing labels in function application is now an error (https://forum.rescript-lang.org/t/ann-more-strict-checks-in-missed-labels/2117).
    • Example: let f = (x, ~z) => x + z; f(1, 2)
    • Fix: do let f = (x, ~z) => x + z; f(1, ~z=2) instead
  • Externals without @val annotations do not work anymore, and externals with = "" give an error.
    • Example: external setTimeout: (unit => unit, int) => float = "setTimeout" is not supported anymore.
    • Fix: use @val external setTimeout: (unit => unit, int) => float = "setTimeout" instead.
    • Example2: @val external setTimeout: (unit => unit, int) => float = "" is not supported anymore.
    • Fix2: use @val external setTimeout: (unit => unit, int) => float = "setTimeout" instead.
  • Strings processed at compile-time don't need escaping anymore.
    • Example: let blockCommentsRe = %re("/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\//g").
    • Fix: use let blockCommentsRe = %re("/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\//g") instead.
  • Remove parsing of "import" and "export" which was never officially supported rescript-lang/syntax#597 rescript-lang/syntax#599
    • Example: export type t = int
    • Fix: @genType type t = int
    • Example2: import realValue: complexNumber => float from "./MyMath"
    • Fix2: @genType.import("./MyMath") external realValue: complexNumber => float = "realValue"

🚀 New Feature

  • Doc comments /** ... */ are now supported. Inernally, they are attributes, so are only valid at positions where @foo is allowed, or a syntax error is given. Similarly for module-level /*** comments */ that can go where @@attributes go.

🐛 Bug Fix

  • Fix printing for inline nullary functor types #477
  • Fix stripping of quotes for empty poly variants #474
  • Implement syntax for arity zero vs arity one in uncurried application in #139
  • Fix parsing of first class module exprs as part of binary/ternary expr in #256
  • Fix formatter hanging on deeply nested function calls #261

Libraries

💥 Breaking Change

  • "Attributes not allowed here". If you see this error chances are you're using a ppx that needs updating to a new version.
    See an exampe of how to update a ppx
    • Example: for rescript-relay 0.23.0 is not supported.
    • Fix: use rescript-relay@beta or the new version when released.
  • Removed printing modules (Printf, Format etc) and related functions. Details of files added/removed: 0fd8bb0.

💅 Polish

  • Several Belt / Js libraries are now converted to ReScript syntax, with corresponding comments in Markdown format suitable for hovering. See #5361.

Playground

🏠 Internal

  • Added jsoo_playground_main.ml as the rescript-lang.org playground bundle entrypoint

💥 Breaking Change

  • Removed Reason syntax support for the playground experience. See #5375

10.0.0-beta.3

14 Jul 07:57
Compare
Choose a tag to compare
10.0.0-beta.3 Pre-release
Pre-release

Beta 3

🐛 Bug Fix

  • Fix issue with compiler log not terminated that causes problems with editor extension not clearing issues when fixed #5545

Beta 2

💅 Polish
  • Changed Linux build to depend on GLIBC 2.28 again for compatibility with Debian 10.

Beta 1

🐛 Bug Fix

  • Fixed crash in rescript build on Windows #5516
  • Fixed rescript init command not working #5526

💥 Breaking Change

  • bsconfig.json does not support // line comments anymore
  • Externals without @val annotations do not work anymore, and externals with = "" give an error.
  • Regular expressions don't need escaping. E.g. let blockCommentsRe = %re("/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\//g") is now let blockCommentsRe = %re("/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\//g").

Alpha 1

Compiler

🚀 New Feature

  • Add support for @new @variadic (see #5364)
  • New records with @optional fields #5423 #5452

🐛 Bug Fix

  • Classify bigint correctly #5351

💥 Breaking Change

🏠 [Internal]

  • Proper M1 support (CI now supports M1 native builds)

Syntax

🚀 New Feature

  • Doc comments /** ... */ are now supported. Inernally, they are attributes, so are only valid at positions where @foo is allowed, or a syntax error is given. Similarly for module-level /*** comments */ that can go where @@attributes go.

🐛 Bug Fix

  • Fix printing for inline nullary functor types #477
  • Fix stripping of quotes for empty poly variants #474
  • Implement syntax for arity zero vs arity one in uncurried application in #139
  • Fix parsing of first class module exprs as part of binary/ternary expr in #256
  • Fix formatter hanging on deeply nested function calls #261

💥 Breaking Change

  • Remove parsing of "import" and "export" which was never officially supported.

Libraries

💥 Breaking Change

  • Removed printing modules (Printf, Format etc) and related functions. Details of files added/removed: 0fd8bb0.
  • There could be issues with rescript-relay. See #5493.

💅 Polish

  • Several Belt / Js libraries are now converted to ReScript syntax, with corresponding comments in Markdown format suitable for hovering. See #5361.

Playground

🏠 Internal

  • Added jsoo_playground_main.ml as the rescript-lang.org playground bundle entrypoint

💥 Breaking Change

  • * Removed Reason syntax support for the playground experience. See #5375

10.0.0-beta.2

11 Jul 05:33
Compare
Choose a tag to compare
10.0.0-beta.2 Pre-release
Pre-release

* means potential breaking changes

New since beta.1:

  • Changed Linux build to depend on GLIBC 2.28 again for compatibility with Debian 10.

New since alpha.1:

  • Fixed crash in rescript build on Windows #5516
  • Fixed rescript init command not working #5526
  • * bsconfig.json does not support // line comments anymore
  • * Externals without @val annotations do not work anymore, and externals with = "" give an error.
  • * Regular expressions don't need escaping. E.g. let blockCommentsRe = %re("/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\//g") is now let blockCommentsRe = %re("/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\//g").

Compiler

Syntax

  • Doc comments /** ... */ are now supported. Inernally, they are attributes, so are only valid at positions where @foo is allowed, or a syntax error is given. Similarly for module-level /*** comments */ that can go where @@attributes go.
  • Fix printing for inline nullary functor types #477
  • Fix stripping of quotes for empty poly variants #474
  • Implement syntax for arity zero vs arity one in uncurried application in #139
  • Fix parsing of first class module exprs as part of binary/ternary expr in #256
  • Fix formatter hanging on deeply nested function calls #261
  • Remove parsing of "import" and "export" which was never officially supported.

Libraries

  • * Removed printing modules (Printf, Format etc) and related functions. Details of files added/removed: 0fd8bb0.
  • * There could be issues with rescript-relay. See #5493.
  • Several Belt / Js libraries are now converted to ReScript syntax, with corresponding comments in Markdown format suitable for hovering. See #5361.

Playground

  • Added jsoo_playground_main.ml as the rescript-lang.org playground bundle entrypoint
  • * Removed Reason syntax support for the playground experience. See #5375

10.0.0-beta.1

11 Jul 05:33
Compare
Choose a tag to compare
10.0.0-beta.1 Pre-release
Pre-release

* means potential breaking changes

New since alpha.1:

  • Fixed crash in rescript build on Windows #5516
  • Fixed rescript init command not working #5526
  • * bsconfig.json does not support // line comments anymore
  • * Externals without @val annotations do not work anymore, and externals with = "" give an error.
  • * Regular expressions don't need escaping. E.g. let blockCommentsRe = %re("/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\//g") is now let blockCommentsRe = %re("/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\//g").

Compiler

Syntax

  • Doc comments /** ... */ are now supported. Inernally, they are attributes, so are only valid at positions where @foo is allowed, or a syntax error is given. Similarly for module-level /*** comments */ that can go where @@attributes go.
  • Fix printing for inline nullary functor types #477
  • Fix stripping of quotes for empty poly variants #474
  • Implement syntax for arity zero vs arity one in uncurried application in #139
  • Fix parsing of first class module exprs as part of binary/ternary expr in #256
  • Fix formatter hanging on deeply nested function calls #261
  • Remove parsing of "import" and "export" which was never officially supported.

Libraries

  • * Removed printing modules (Printf, Format etc) and related functions. Details of files added/removed: 0fd8bb0.
  • * There could be issues with rescript-relay. See #5493.
  • Several Belt / Js libraries are now converted to ReScript syntax, with corresponding comments in Markdown format suitable for hovering. See #5361.

Playground

  • Added jsoo_playground_main.ml as the rescript-lang.org playground bundle entrypoint
  • * Removed Reason syntax support for the playground experience. See #5375

10.0.0-alpha.1

11 Jul 05:32
90ed829
Compare
Choose a tag to compare
10.0.0-alpha.1 Pre-release
Pre-release

* means potential breaking changes

Compiler

Syntax

  • Doc comments /** ... */ are now supported. Inernally, they are attributes, so are only valid at positions where @foo is allowed, or a syntax error is given. Similarly for module-level /*** comments */ that can go where @@attributes go.
  • Fix printing for inline nullary functor types #477
  • Fix stripping of quotes for empty poly variants #474
  • Implement syntax for arity zero vs arity one in uncurried application in #139
  • Fix parsing of first class module exprs as part of binary/ternary expr in #256
  • Fix formatter hanging on deeply nested function calls #261
  • Remove parsing of "import" and "export" which was never officially supported.

Libraries

  • * Removed printing modules (Printf, Format etc) and related functions. Details of files added/removed: 0fd8bb0.
  • * There could be issues with rescript-relay. See #5493.
  • Several Belt / Js libraries are now converted to ReScript syntax, with corresponding comments in Markdown format suitable for hovering. See #5361.

Playground

  • Added jsoo_playground_main.ml as the rescript-lang.org playground bundle entrypoint
  • * Removed Reason syntax support for the playground experience. See #5375

9.1.4

20 Jun 03:29
Compare
Choose a tag to compare
snapshot

add darwin binaries

add win32 binaries

add linux binaries

add darwin binaries

update the binary

update linux binary

update win32 binaries

snapshot && update darwin binaries

update win32 binaries

update linux binaries

snapshot

update  ninja file

update binary files

update linux binaries

udpate win32 ninja

update win32 binaries

snapshot

bump the version

snapshot

update binaries

update win32 binaries

update linux bin

9.1.3

31 May 13:25
Compare
Choose a tag to compare

Bug fix release for 9.1

The bugs fixed are listed below:

Build system
#5154 when toplevel package-specs get changed, its dependencies should be rebuilt
#5152 Rebuild not triggered when deletion with nested modules
#5153 when Different compiler version triggered,
it should clean the whole dependencies instead of just the repo itself
#5080 Add back -ws option for the build

Frontend parser/printing (issues are pinned to @rescript-lang/syntax)
#425 fix CRLF handling for windows
#414 Fix printing of underscore Pexp_fun sugar in context of Array.get
#408 Don’t parse Int token with suffices as hash ident for poly variants
#410 Fix parsing of arrow type with objects in constructor declaration args
#404 fix printing of Osig_module in outcome printer
#402 Implement printing of Otyp_module in outcome printe