rescript-compiler

The compiler for ReScript.

OTHER License

Downloads
67.3K
Stars
6.5K
Committers
365

Bot releases are hidden (Show)

rescript-compiler - 10.1.0-rc.5

Published by cknitt almost 2 years ago

πŸ› Bug Fix

rescript-compiler - 10.1.0-rc.4

Published by cknitt almost 2 years ago

πŸš€ New Feature

πŸ› Bug Fix

rescript-compiler - 10.1.0-rc.3

Published by cknitt almost 2 years ago

πŸš€ New Feature

πŸ› Bug Fix

πŸ’… Polish

rescript-compiler - 10.1.0-rc.2

Published by cknitt about 2 years ago

πŸ› Bug Fix

rescript-compiler - 10.1.0-rc.1

Published by cknitt about 2 years ago

πŸ’₯ Breaking Change

πŸš€ New Feature

πŸ› Bug Fix

πŸ‘“ Spec Compliance

  • Functions with consecutive dots now print as multiple arrow functions like in JavaScript.

πŸ’… Polish

  • Add loading, aria-* DOM element attributes in JsxDOM.domProps: ariaCurrent, ariaInvalid, ariaAutocomplete, etc.
  • Change the internal representation of props for the lowercase components to record. https://github.com/rescript-lang/syntax/pull/665
rescript-compiler - 10.1.0-alpha.2

Published by cknitt about 2 years ago

πŸš€ New Feature

πŸ› Bug Fix

πŸ’… Polish

rescript-compiler - 10.1.0-alpha.1

Published by cknitt about 2 years ago

πŸ’₯ 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

πŸ› Bug Fix

πŸ’… Polish

rescript-compiler - 10.0.1

Published by cknitt about 2 years ago

πŸ› Bug Fix

rescript-compiler - 10.0.0

Published by cknitt about 2 years ago

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

πŸ› 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 https://github.com/rescript-lang/syntax/pull/597 https://github.com/rescript-lang/syntax/pull/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

πŸ› Bug Fix

πŸ’… 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

rescript-compiler - 10.0.0-rc.1

Published by cknitt about 2 years ago

Release Candidate 1

10.0.0-rc.1

πŸ› Bug Fix

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

πŸ› 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 https://github.com/rescript-lang/syntax/pull/597 https://github.com/rescript-lang/syntax/pull/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

πŸ’… 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

rescript-compiler - 10.0.0-beta.3

Published by cknitt over 2 years ago

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

πŸ› 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

πŸ’… 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

rescript-compiler - 10.0.0-beta.2

Published by cknitt over 2 years ago

* 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

Playground

rescript-compiler - 10.0.0-beta.1

Published by cknitt over 2 years ago

* 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

Playground

rescript-compiler - 10.0.0-alpha.1

Published by cknitt over 2 years ago

* 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

Playground

rescript-compiler - 9.1.4

Published by bobzhang over 3 years ago

rescript-compiler - 9.1.3

Published by bobzhang over 3 years ago

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

rescript-compiler - 9.1.2

Published by bobzhang over 3 years ago

rescript-compiler - 9.0.2

Published by bobzhang over 3 years ago

rescript-compiler - 9.0.1

Published by bobzhang over 3 years ago

A bug fix release coming after 9.0.
More details: https://rescript-lang.org/blog/release-9-0

rescript-compiler - 9.0

Published by bobzhang over 3 years ago