|
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