May 13, 2020
We are pleased to announce the release of Scala.js 0.6.33!
This is mostly a bugfix release, including a fix for a bad interaction with React.js’ development mode and the jsdom
JS env.
In addition, we have upgraded to the standard libraries of Scala 2.12.11 and 2.13.2.
Read on for more details.
Read more
Mar 10, 2020
We are pleased to announce the release of Scala.js 1.0.1!
This is mostly a bugfix release, including a fix for a regression affecting extensions of the JDK (#3950).
Read on for more details.
Read more
Feb 25, 2020
We are thrilled to announce the General Availability release of Scala.js 1.0.0!
Scala.js is a close dialect of Scala compiling to JavaScript, featuring great portability wrt. Scala/JVM, interoperability with JavaScript, and performance.
After 7 years of development, including 5 years of stability within the 0.6.x series, we are finally ready to present Scala.js 1.0.0.
Quoting Antoine de Saint-Exupéry,
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
Scala.js 1.0.0 is the culmination of our efforts to simplify, specify, and future-proof all aspects of Scala.js, from the language semantics to the internal APIs, so that there is nothing left to take away.
As the change in major version number witnesses, this release is not binary compatible with 0.6.x, nor with the previous milestones and RCs of the 1.x series.
Libraries need to be recompiled and republished using Scala.js 1.0.0 to be compatible.
Several libraries at the core of the Scala/Scala.js ecosystem have already been published and are available for Scala.js 1.0.0.
Here is a list of libraries known to support Scala.js 1.x.
Moreover, this release is not entirely source compatible with 0.6.x either (see Breaking Changes below).
Here are some highlights of Scala.js 1.0.0:
- Better interoperability with JavaScript libraries (see the Enhancements section below)
- Improved portability with respect to Scala/JVM
- Better run-time performance
Read more
Jan 24, 2020
We are pleased to announce the release of Scala.js 0.6.32!
This is mostly a bugfix release, including a fix for a regression in regular expressions that appeared in 0.6.31 (#3901).
This release also adds the definitions for some recent methods of js.Object
, thanks to @exoego, and the JDK interface java.util.function.Consumer
, thanks to mliarakos.
Read on for more details.
Read more
Dec 13, 2019
We are thrilled to announce the release of Scala.js 1.0.0-RC2!
This release candidate is intended for testing purposes by as many users as possible, and as a synchronization point with library authors so that they can upgrade in preparation for the final release.
If no critical issue is found until the end of January 2020, this RC will become the final release.
We encourage all users who are able to do so to test their projects with this RC, and report any issue as soon as possible.
As the change in major version number witnesses, this release is not binary compatible with 0.6.x, nor with the previous milestones and RCs of the 1.x series.
Libraries need to be recompiled and republished using this RC to be compatible.
Moreover, this release is not entirely source compatible with 0.6.x either.
These release notes contain cumulative changes with respect to 0.6.31.
Compared to 1.0.0-RC1, this release candidate contains the following changes:
- Fix the handling of versions of Scala.js to correctly work post-v1.0.0
- Remove a few
@deprecated
methods that were forgotten in 1.0.0-RC1
- Internal IR contract change: use IR static methods as the contract to call main methods and static methods in JDK APIs
- Fix #3888: linking error with a nested object named
class
- Add tests
As a reminder, 1.0.0-RC1 already contained the following noteworthy changes compared to 1.0.0-M8:
- Drop support for sbt 0.13.x
- Drop support for Scala 2.11.{0-11} (2.11.12 is supported)
x eq y
now more closely matches the JVM behavior: +0.0 ne -0.0
and NaN eq NaN
- Small tweaks in the JSEnv API
- The Scala.js linker is now loaded by reflection into the sbt plugin, which solves issues with binary incompatible transitive dependencies such as Guava.
Read more
Nov 26, 2019
There is a newer release candidate: 1.0.0-RC2.
We are thrilled to announce the release of Scala.js 1.0.0-RC1!
This release candidate is intended for testing purposes by as many users as possible, and as a synchronization point with library authors so that they can start upgrading in preparation for the final release.
If no critical issue is found until the end of January 2020, this RC will become the final release.
We encourage all users who are able to do so to test their projects with this RC, and report any issue as soon as possible.
As the change in “major” version number witnesses, this release is not binary compatible with 0.6.x, nor with the previous milestones of the 1.x series.
Libraries need to be recompiled and republished using this RC to be compatible.
Moreover, this release is not entirely source compatible with 0.6.x either.
These release notes contain cumulative changes with respect to 0.6.31.
Compared to 1.0.0-M8, the following changes are noteworthy:
- Drop support for sbt 0.13.x
- Drop support for Scala 2.11.{0-11} (2.11.12 is supported)
x eq y
now more closely matches the JVM behavior: +0.0 ne -0.0
and NaN eq NaN
- Small tweaks in the JSEnv API
- The Scala.js linker is now loaded by reflection into the sbt plugin, which solves issues with binary incompatible transitive dependencies such as Guava.
We would also like to remind readers of the following important change that happened in 1.0.0-M5 and 1.0.0-M7, respectively:
- Drop compatibility with sbt-crossproject v0.4.x and earlier (v0.5.0 or later is required)
- With the default module kind
NoModule
, top-level exports are now exposed to JavaScript as top-level var
s, rather than assigned as properties of the global object
Read more