|
10 | 10 | > - :house: [Internal]
|
11 | 11 | > - :nail_care: [Polish]
|
12 | 12 |
|
| 13 | +# 11.0.0-alpha.1 |
| 14 | + |
| 15 | +#### :rocket: New Feature |
| 16 | + |
| 17 | +- Introduce experimental uncurried by default mode. Can be turned on mid-file by adding standalone annotation `@@uncurried`. For experimentation only. https://github.com/rescript-lang/rescript-compiler/pull/5796 |
| 18 | +- Adding `@@toUncurried` to the file and reformat will convert to uncurried syntax https://github.com/rescript-lang/rescript-compiler/pull/5800 |
| 19 | +- Add support for unary uncurried pipe in uncurried mode https://github.com/rescript-lang/rescript-compiler/pull/5804 |
| 20 | +- Add support for partial application of uncurried functions: with uncurried application one can provide a |
| 21 | +subset of the arguments, and return a curried type with the remaining ones https://github.com/rescript-lang/rescript-compiler/pull/5805 |
| 22 | +- Add support for uncurried externals https://github.com/rescript-lang/rescript-compiler/pull/5815 https://github.com/rescript-lang/rescript-compiler/pull/5819 |
| 23 | + |
| 24 | +#### :boom: Breaking Change |
| 25 | + |
| 26 | +- Remove support for the legacy Reason syntax. Existing Reason code can be converted to ReScript syntax using ReScript 9 as follows: |
| 27 | + - `npm i -g rescript@9` |
| 28 | + - `rescript convert <reason files>` |
| 29 | +- Remove obsolete built-in project templates and the "rescript init" functionality. This will be replaced by the create-rescript-app project that is maintained separately. |
| 30 | +- Parse the attributes of labelled argument to the pattern attributes of argument instead of function. |
| 31 | +- Made pinned dependencies transitive: if *a* is a pinned dependency of *b* and *b* is a pinned dependency of *c*, then *a* is implicitly a pinned dependency of *c*. This change is only breaking if your build process assumes non-transitivity. |
| 32 | +- Curried after uncurried is not fused anymore: `(. x) => y => 3` is not equivalent to `(. x, y) => 3` anymore. It's instead equivalent to `(. x) => { y => 3 }`. |
| 33 | +Also, `(. int) => string => bool` is not equivalen to `(. int, string) => bool` anymore. |
| 34 | +These are only breaking changes for unformatted code. |
| 35 | +- Distinguish between uncurried type `(. ()) => int`, whch takes 0 arguments, and `(. unit) => int` which takes 1 argument of type `unit` https://github.com/rescript-lang/rescript-compiler/pull/5821 |
| 36 | + |
| 37 | +#### :bug: Bug Fix |
| 38 | + |
| 39 | +- Fix issue where uncurried was not supported with pipe https://github.com/rescript-lang/rescript-compiler/pull/5803 |
| 40 | +- Fix printing of nested types in uncurried mode https://github.com/rescript-lang/rescript-compiler/pull/5826 |
| 41 | +- Fix issue in printing uncurried callbacks https://github.com/rescript-lang/rescript-compiler/pull/5828 |
| 42 | + |
| 43 | +#### :nail_care: Polish |
| 44 | + |
| 45 | +- Syntax: process uncurried types explicitly in the parser/printer https://github.com/rescript-lang/rescript-compiler/pull/5784 https://github.com/rescript-lang/rescript-compiler/pull/5822 |
| 46 | +- Syntax: process uncurried function declarations explicitly in the parser/printer https://github.com/rescript-lang/rescript-compiler/pull/5794 |
| 47 | +- PPX V4: allow uncurried `make` function and treat it like a curried one [#5802](https://github.com/rescript-lang/rescript-compiler/pull/5802) [#5808](https://github.com/rescript-lang/rescript-compiler/pull/5808) [#5812](https://github.com/rescript-lang/rescript-compiler/pull/5812) |
| 48 | + |
| 49 | +# 10.1.0-rc.6 |
| 50 | + |
| 51 | +#### :bug: Bug Fix |
| 52 | + |
| 53 | +- Fix issue where optional field in the inlined record caused the type error https://github.com/rescript-lang/rescript-compiler/pull/5827 |
| 54 | + |
13 | 55 | # 10.1.0-rc.5
|
14 | 56 |
|
15 | 57 | #### :bug: Bug Fix
|
|
0 commit comments