You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are pleased to announce the release of Scala.js 1.18.0!
10
+
We are pleased to announce the release of Scala.js 1.18.1!
11
+
12
+
This is technically a hotfix patch release for 1.18.0, which was discovered to be [severely broken](https://github.com/scala-js/scala-js/issues/5107), and was therefore never announced.
13
+
These release notes therefore present it as a "minor release" compared to 1.17.0.
11
14
12
15
This release drops support for Scala 2.12.{2-5} and 2.13.{0-2}.
13
16
Other than that, it is mostly a bugfix release.
14
17
15
-
This release also contains a number of internal changes to the intermediate representation and linker.
18
+
It also contains a number of internal changes to the intermediate representation and linker.
16
19
These are not externally visible, except for users who directly manipulate the IR and/or linker.
17
20
They pave the way for upcoming changes that are still ongoing work.
18
21
@@ -32,20 +35,23 @@ Bug reports can be filed [on GitHub](https://github.com/scala-js/scala-js/issues
32
35
33
36
If upgrading from Scala.js 0.6.x, make sure to read [the release notes of Scala.js 1.0.0]({{ BASE_PATH }}/news/2020/02/25/announcing-scalajs-1.0.0/) first, as they contain a host of important information, including breaking changes.
34
37
35
-
This is a **minor** release:
38
+
This is a **minor** release, compared to 1.17.0:
36
39
37
40
* It is backward binary compatible with all earlier versions in the 1.x series: libraries compiled with 1.0.x through 1.17.x can be used with 1.18.0 without change.
38
41
* It is *not* forward binary compatible with 1.17.x: libraries compiled with 1.18.0 cannot be used with 1.17.x or earlier.
39
42
* It is *not* entirely backward source compatible: it is not guaranteed that a codebase will compile *as is* when upgrading from 1.17.x (in particular in the presence of `-Xfatal-warnings`).
40
43
44
+
Technically 1.18.1 is a patch release with respect to 1.18.0.
45
+
Our usual patch version guarantees do apply, despite the retraction of 1.18.0.
46
+
41
47
As a reminder, libraries compiled with 0.6.x cannot be used with Scala.js 1.x; they must be republished with 1.x first.
42
48
43
49
## Changes with compatibility concerns
44
50
45
51
### Enforce stricter rules on the use of `this` in the IR of constructors
46
52
47
53
Exceptionally, **this is theoretically a binary-breaking change**.
48
-
It is possible for previously valid IR (Intermediate Representation, as published in binaries on Maven Central) to be rejected by Scala.js 1.18.0.
54
+
It is possible for previously valid IR (Intermediate Representation, as published in binaries on Maven Central) to be rejected by Scala.js 1.18.x.
49
55
50
56
We now enforce, during IR checking (by default, only enabled in `fullLink` builds), that constructors abide by stricter rules.
51
57
Before calling their `super` constructor (or delegate `this()` constructor), they may not refer to the `this` instance.
@@ -79,7 +85,7 @@ If your application depends on a library that contained such a code shape, you m
79
85
[error] There were 1 ClassDef checking errors.
80
86
{% endhighlight %}
81
87
82
-
If that is the case, the library needs to be recompiled with Scala.js 1.18.0 or later to be usable again.
88
+
If that is the case, the library needs to be recompiled with Scala.js 1.18.x or later to be usable again.
83
89
Make sure to [tell us on the relevant PR](https://github.com/scala-js/scala-js/pull/5019) if that happens.
84
90
85
91
In order to mitigate the impact of this change, we conducted an audit of (the latest version of) all Scala.js libraries published to Maven Central.
@@ -96,7 +102,7 @@ However that will start causing real issues once we leverage the new restriction
96
102
97
103
### Drop support for Scala 2.12.2 to 2.12.5 and 2.13.0 to 2.13.2
98
104
99
-
In order to reduce our maintenance burden and ease further development, Scala.js 1.18.0 drops support for Scala 2.12.2 to 2.12.5 and 2.13.0 to 2.13.2.
105
+
In order to reduce our maintenance burden and ease further development, Scala.js 1.18.1 drops support for Scala 2.12.2 to 2.12.5 and 2.13.0 to 2.13.2.
100
106
Scala 2.12.6+ and 2.13.3+ are still supported.
101
107
102
108
We still had a number of dedicated code paths, special cases and exceptions for these versions in our codebase.
@@ -155,8 +161,9 @@ This release adds shell definitions for the following JDK 21 interfaces, but wit
155
161
156
162
## Bug fixes
157
163
158
-
Among others, the following bugs have been fixed in 1.18.0:
164
+
Among others, the following bugs have been fixed since 1.17.0:
159
165
166
+
*[#5107](https://github.com/scala-js/scala-js/issues/5107) IR checking error for IR coming from Scala.js < 1.11 through deserialization hack
160
167
*[#5085](https://github.com/scala-js/scala-js/issues/5085)`java.math.BigDecimal.valueOf(0, 9).stripTrailingZeros.scale` returns 9 instead of 0.
161
168
*[#5069](https://github.com/scala-js/scala-js/issues/5069) Linking errors with `java.util.SequencedCollection` on JDK 21+ (considered a bug because they surfaced even in code that did not mention that new interface).
162
169
*[#5048](https://github.com/scala-js/scala-js/issues/5048) Wasm backend fails when no modules are defined.
0 commit comments