Skip to content

Commit 7996d4e

Browse files
committed
Announcing Scala.js 1.14.0.
1 parent 43153e7 commit 7996d4e

File tree

4 files changed

+97
-1
lines changed

4 files changed

+97
-1
lines changed

_config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ colors: #in hex code if not noted else
6464

6565
### VERSIONS ###
6666
versions:
67-
scalaJS: 1.13.2
67+
scalaJS: 1.14.0
6868
scalaJSBinary: 1
6969
scalaJS06x: 0.6.33
7070
scalaJS06xBinary: 0.6
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
---
2+
layout: post
3+
title: Announcing Scala.js 1.14.0
4+
category: news
5+
tags: [releases]
6+
permalink: /news/2023/09/25/announcing-scalajs-1.14.0/
7+
---
8+
9+
We are pleased to announce the release of Scala.js 1.14.0!
10+
11+
This release mainly brings speed improvements in the reachability analysis by parallelizing it.
12+
It also upgrades the Scala 2.13.x standard library to version 2.13.12.
13+
14+
Read on for more details.
15+
16+
<!--more-->
17+
18+
## Getting started
19+
20+
If you are new to Scala.js, head over to [the tutorial]({{ BASE_PATH }}/tutorial/).
21+
22+
If you need help with anything related to Scala.js, you may find our community [in `#scala-js` on Discord](https://discord.com/invite/scala) and [on Stack Overflow](https://stackoverflow.com/questions/tagged/scala.js).
23+
24+
Bug reports can be filed [on GitHub](https://github.com/scala-js/scala-js/issues).
25+
26+
## Release notes
27+
28+
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.
29+
30+
This is a **minor** release:
31+
32+
* It is backward binary compatible with all earlier versions in the 1.x series: libraries compiled with 1.0.x through 1.13.x can be used with 1.14.0 without change.
33+
* Despite being a minor release, 1.14.0 is forward binary compatible with 1.13.x. It is *not* forward binary compatible with 1.12.x. Libraries compiled with 1.14.0 can be used with 1.13.x but not with 1.12.x or earlier.
34+
* It is *not* entirely backward source compatible: it is not guaranteed that a codebase will compile *as is* when upgrading from 1.13.x (in particular in the presence of `-Xfatal-warnings`).
35+
36+
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.
37+
38+
## Improvements
39+
40+
### Reachability Analysis is parallel by default
41+
42+
We have observed up to 2x speedup of reachability analysis on the Scala.js test
43+
suite with this change. This corresponds to a 20% speedup overall on linking.
44+
45+
In case you encounter issues, you can disable the new behavior by setting:
46+
47+
{% highlight scala %}
48+
scalaJSLinkerConfig ~= { _.withParallel(false) }
49+
{% endhighlight %}
50+
51+
This will disable all parallelism in the linker (expect significant slowdown).
52+
53+
### Implicit conversions to js.Any for js.UndefOr in Scala 3
54+
55+
Because `js.UndefOr` is implemented differently in Scala 3, the implicit conversion to `js.Any` was not available.
56+
57+
Thanks to @armanbilge, `js.UndefOr[T]` now implicitly converts to `js.Any`, provided `T` is convertiable to `js.Any`.
58+
59+
For example, the following now compiles on Scala 3:
60+
61+
{% highlight scala %}
62+
val x: js.Any = js.defined("")
63+
{% endhighlight %}
64+
65+
### New ECMAScript Core Types
66+
67+
* [AggregateError](https://www.scala-js.org/api/scalajs-library/2.14.0/scala/scalajs/js/AggregateError.html) thanks to @armanbilge
68+
69+
### Call-site inline
70+
71+
The compiler and linker now use `@inline` / `@noinline` hints provided at the call-site.
72+
See the [Scaladoc for `@inline`](https://www.scala-lang.org/api/2.13.11/scala/inline.html) for details.
73+
74+
### Better Default Bridge Generation
75+
76+
The linker will now avoid generating a default bridge in a subclass if an existing bridge in the superclass can be used.
77+
This can lead to minor code-size improvements.
78+
79+
## Bug fixes
80+
81+
The following bugs have been fixed in 1.14.0:
82+
83+
* [#4882](https://github.com/scala-js/scala-js/issues/4882): Make UUID.compareTo() consistent with the JVM.
84+
85+
You can find the full list [on GitHub](https://github.com/scala-js/scala-js/issues?q=is%3Aissue+milestone%3Av1.14.0+is%3Aclosed).

doc/all-api.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,16 @@ title: All previous versions of the Scala.js API
55

66
## All previous versions of the API
77

8+
### Scala.js 1.14.0
9+
* [1.14.0 scalajs-library]({{ site.production_url }}/api/scalajs-library/1.14.0/scala/scalajs/js/index.html)
10+
* [1.14.0 scalajs-test-interface]({{ site.production_url }}/api/scalajs-test-interface/1.14.0/)
11+
* [1.14.0 scalajs-javalib-intf]({{ site.production_url }}/api/scalajs-javalib-intf/1.14.0/)
12+
* [1.14.0 scalajs-ir]({{ site.production_url }}/api/scalajs-ir/1.14.0/org/scalajs/ir/index.html)
13+
* [1.14.0 scalajs-linker-interface]({{ site.production_url }}/api/scalajs-linker-interface/1.14.0/org/scalajs/linker/interface/index.html) ([Scala.js version]({{ site.production_url }}/api/scalajs-linker-interface-js/1.14.0/org/scalajs/linker/interface/index.html))
14+
* [1.14.0 scalajs-linker]({{ site.production_url }}/api/scalajs-linker/1.14.0/org/scalajs/linker/index.html) ([Scala.js version]({{ site.production_url }}/api/scalajs-linker-js/1.14.0/org/scalajs/linker/index.html))
15+
* [1.14.0 scalajs-test-adapter]({{ site.production_url }}/api/scalajs-sbt-test-adapter/1.14.0/org/scalajs/testing/adapter/index.html)
16+
* [1.14.0 sbt-scalajs]({{ site.production_url }}/api/sbt-scalajs/1.14.0/#org.scalajs.sbtplugin.package)
17+
818
### Scala.js 1.13.2
919
* [1.13.2 scalajs-library]({{ site.production_url }}/api/scalajs-library/1.13.2/scala/scalajs/js/index.html)
1020
* [1.13.2 scalajs-test-interface]({{ site.production_url }}/api/scalajs-test-interface/1.13.2/)

doc/internals/version-history.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ title: Version history
55

66
## Version history of Scala.js
77

8+
- [1.14.0](/news/2023/09/25/announcing-scalajs-1.14.0/)
89
- [1.13.2](/news/2023/06/23/announcing-scalajs-1.13.2/)
910
- [1.13.1](/news/2023/04/10/announcing-scalajs-1.13.1/)
1011
- [1.13.0](/news/2023/01/26/announcing-scalajs-1.13.0/)

0 commit comments

Comments
 (0)