|
26 | 26 |
|
27 | 27 | # 10.0.0-beta.3
|
28 | 28 |
|
29 |
| -#### :bug: Bug Fix |
30 |
| - |
31 |
| -- Fix issue with compiler log not terminated that causes problems with editor extension not clearing issues when fixed [#5545](https://github.com/rescript-lang/rescript-compiler/issues/5545) |
32 |
| - |
33 |
| -# 10.0.0-beta.2 |
34 |
| - |
35 |
| -##### :nail_care: Polish |
36 |
| - |
37 |
| -- Changed Linux build to depend on GLIBC 2.28 again for compatibility with Debian 10. |
38 |
| - |
39 |
| -# 10.0.0-beta.1 |
| 29 | +**Compiler** |
40 | 30 |
|
41 | 31 | #### :boom: Breaking Change
|
42 | 32 |
|
43 | 33 | - `bsconfig.json` does not support `// line` comments anymore.
|
44 | 34 | - Example: `"suffix": ".bs.js" // determine the suffix`
|
45 | 35 | - Fix: remove the comment and use standard json.
|
46 |
| -- Externals without `@val` annotations do not work anymore, and externals with `= ""` give an error. |
47 |
| - - Example: `external setTimeout: (unit => unit, int) => float = "setTimeout"` is not supported anymore. |
48 |
| - - Fix: use `[@val] external setTimeout: (unit => unit, int) => float = "setTimeout"` instead. |
49 |
| - - Example2: `[@val] external setTimeout: (unit => unit, int) => float = ""` is not supported anymore. |
50 |
| - - Fix2: use `[@val] external setTimeout: (unit => unit, int) => float = "setTimeout"` instead. |
51 |
| -- String constants don't need escaping anymore. |
52 |
| - - Example: `let blockCommentsRe = %re("/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\//g")`. |
53 |
| - - Fix: use `let blockCommentsRe = %re("/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\//g")` instead. |
54 |
| - |
55 |
| -#### :bug: Bug Fix |
56 |
| - |
57 |
| -- Fixed crash in `rescript build` on Windows [#5516](https://github.com/rescript-lang/rescript-compiler/pull/5516) |
58 |
| -- Fixed `rescript init` command not working [#5526](https://github.com/rescript-lang/rescript-compiler/pull/5526) |
59 |
| - |
60 |
| -# 10.0.0-alpha.1 |
61 |
| - |
62 |
| -**Compiler** |
63 |
| - |
64 |
| -#### :boom: Breaking Change |
65 |
| - |
66 |
| -- `@bs.send.pipe` is now removed. Earlier it was deprecated. |
67 |
| -- Missing labels in function application is now an error (https://forum.rescript-lang.org/t/ann-more-strict-checks-in-missed-labels/2117). |
68 |
| - - Example: `let f = (x, ~z) => x + z; f(1, 2)` |
69 |
| - - Fix: do `let f = (x, ~z) => x + z; f(1, ~z=2)` instead |
70 | 36 | - Changed return type of `Js.String.match_` as it was wrong. [#5070](https://github.com/rescript-lang/rescript-compiler/pull/5070)
|
71 | 37 | - Example: any use of `Js.String.match_` and `Js.String2.match_`
|
72 | 38 | - Fix: follow the type errors
|
73 | 39 |
|
74 | 40 | #### :rocket: New Feature
|
75 | 41 |
|
| 42 | +- New records with `@optional` fields e.g. `type opt = {x: int, ?y: string}` were added as an experimental feature [#5423](https://github.com/rescript-lang/rescript-compiler/pull/5423) [#5452](https://github.com/rescript-lang/rescript-compiler/issues/5452) [New Syntax](https://github.com/rescript-lang/syntax/pull/589/files) |
76 | 43 | - Add support for `@new @variadic` (see https://github.com/rescript-lang/rescript-compiler/pull/5364)
|
77 |
| -- New records with `@optional` fields [#5423](https://github.com/rescript-lang/rescript-compiler/pull/5423) [#5452](https://github.com/rescript-lang/rescript-compiler/issues/5452) |
78 | 44 |
|
79 | 45 | #### :bug: Bug Fix
|
80 | 46 |
|
81 | 47 | - Classify bigint correctly [#5351](https://github.com/rescript-lang/rescript-compiler/pull/5351)
|
| 48 | +- Fixed crash in `rescript build` on Windows [#5516](https://github.com/rescript-lang/rescript-compiler/pull/5516) |
| 49 | +- Fixed `rescript init` command not working [#5526](https://github.com/rescript-lang/rescript-compiler/pull/5526) |
| 50 | +- Fix issue with compiler log not terminated that causes problems with editor extension not clearing issues when fixed [#5545](https://github.com/rescript-lang/rescript-compiler/issues/5545) |
82 | 51 |
|
83 |
| -#### :house: [Internal] |
| 52 | +##### :nail_care: Polish |
| 53 | + |
| 54 | +- Changed Linux build to depend on GLIBC 2.28 again for compatibility with Debian 10. |
84 | 55 |
|
85 | 56 | - Proper M1 support (CI now supports M1 native builds)
|
86 | 57 |
|
87 | 58 | **Syntax**
|
88 | 59 |
|
89 | 60 | #### :boom: Breaking Change
|
90 | 61 |
|
91 |
| -- 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 |
92 |
| - - Example: `export type t = int` |
93 |
| - - Fix: `@genType type t = int` |
94 |
| - - Example2: `import realValue: complexNumber => float from "./MyMath"` |
95 |
| - - Fix2: `@genType.import("./MyMath") external realValue: complexNumber => float = "realValue"` |
| 62 | +- `@bs.send.pipe` is now removed. Earlier it was deprecated. |
| 63 | +- Missing labels in function application is now an error (https://forum.rescript-lang.org/t/ann-more-strict-checks-in-missed-labels/2117). |
| 64 | + - Example: `let f = (x, ~z) => x + z; f(1, 2)` |
| 65 | + - Fix: do `let f = (x, ~z) => x + z; f(1, ~z=2)` instead |
| 66 | +- Externals without `@val` annotations do not work anymore, and externals with `= ""` give an error. |
| 67 | + - Example: `external setTimeout: (unit => unit, int) => float = "setTimeout"` is not supported anymore. |
| 68 | + - Fix: use `[@val] external setTimeout: (unit => unit, int) => float = "setTimeout"` instead. |
| 69 | + - Example2: `[@val] external setTimeout: (unit => unit, int) => float = ""` is not supported anymore. |
| 70 | + - Fix2: use `[@val] external setTimeout: (unit => unit, int) => float = "setTimeout"` instead. |
| 71 | +- String constants don't need escaping anymore. |
| 72 | + - Example: `let blockCommentsRe = %re("/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\//g")`. |
| 73 | + - Fix: use `let blockCommentsRe = %re("/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\//g")` instead. |
| 74 | +- Externals without `@val` annotations do not work anymore, and externals with `= ""` give an error. |
| 75 | + - Example: `external setTimeout: (unit => unit, int) => float = "setTimeout"` is not supported anymore. |
| 76 | + - Fix: use `[@val] external setTimeout: (unit => unit, int) => float = "setTimeout"` instead. |
| 77 | + - Example2: `[@val] external setTimeout: (unit => unit, int) => float = ""` is not supported anymore. |
| 78 | + - Fix2: use `[@val] external setTimeout: (unit => unit, int) => float = "setTimeout"` instead. |
| 79 | +- String constants don't need escaping anymore. |
| 80 | + - Example: `let blockCommentsRe = %re("/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\//g")`. |
| 81 | + - Fix: use `let blockCommentsRe = %re("/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\//g")` instead. |
96 | 82 |
|
97 | 83 | #### :rocket: New Feature
|
98 | 84 |
|
|
0 commit comments