We are pleased to announce the release of Scala.js 0.6.31!
This release upgrades the version of the Scala standard library to 2.12.10 and 2.13.1.
The upgrade to 2.13.1 notably fixed a number of issues.
The release also contains the definitions for BigInt
and its typed arrays BigInt64Array
and BigUint64Array
, thanks to @exoego, as well as the implementation of java.util.IdentityHashMap
, thanks to @ekrich.
If you are wondering where v0.6.30 went, it was severely broken and hence was never announced.
Read on for more details.
Read more
We are excited to announce the release of Scala.js 0.6.29!
We highly recommend to all users that they upgrade to this new version.
It contains:
- a fix for a major bug in incremental compilation with sbt 1.x, and
- a major performance improvement, notably for pattern matching.
It also introduces js.import(moduleName)
, equivalent to JavaScript’s dynamic import()
calls.
Read on for more details.
Read more
We are very excited to announce the release of Scala.js 1.0.0-M8!
This development release is mostly intended for testing purposes, and as a synchronization point with library authors so that they can start upgrading in preparation for the final release.
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 milestone to be compatible.
Moreover, this release is not entirely source compatible with 0.6.x either.
We expect, however, that further milestones for 1.0.0 will stay backward source compatible with this milestone.
These release notes contain cumulative changes with respect to 0.6.28.
Compared to 1.0.0-M7, the following changes are noteworthy:
- Add support for Scala 2.13.0-RC3, and hopefully for Scala 2.13.0 final
- Overall bring up-to-date with improvements and bug fixes available in 0.6.28
- Scala.js now emits ECMAScript 2015 code by default
- The
JSEnv
API has been refactored to use java.nio.file.Path
s instead of custom virtual files
- The linker API is now fully asynchronous; clean separation into different compatibility layers is pending (#3656)
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
We are pleased to announce the release of Scala.js 0.6.28!
This release drops support for building on JDK 6 and 7!
In exchange, it adds support for using the Google Closure Compiler when emitting ECMAScript 2015 code.
This release also prepares for Scala 2.13.0 final.
Older releases will not support that version.
Read on for more details.
Read more
We are very excited to announce the release of Scala.js 1.0.0-M7!
This development release is mostly intended for testing purposes, and as a synchronization point with library authors so that they can start upgrading in preparation for the final release.
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 milestone to be compatible.
Moreover, this release is not entirely source compatible with 0.6.x either.
We expect, however, that further milestones for 1.0.0 will stay backward source compatible with this milestone.
These release notes contain cumulative changes with respect to 0.6.27.
Compared to 1.0.0-M6, the following changes are noteworthy:
- Add support for Scala 2.13.0-RC1
- Overall bring up-to-date with improvements and bug fixes available in 0.6.27, notably support for ECMAScript modules
- Namespaced top-level exports are no longer supported (they were deprecated in 0.6.26)
- Integer division by 0 (or
0L
) now, by spec, reliably throws an ArithmeticException
, following the JVM behavior
- The sbt task
jsExecutionFiles
has been replaced with a jsEnvInput
which encodes not only the set of files, but also their module kind and hence how they should be loaded by JS environments
- 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
- The Google Closure Compiler has been upgraded to v20181210, and is now also used with ECMAScript 2015 features
- Support for the magic global variable
__ScalaJSEnv
has been removed, with the following consequences:
System.exit()
is no longer supported
- Java system properties, while they are still supported per se and filled with essential properties, are no longer populated with the contents of
__ScalaJSEnv.javaSystemProperties
- For authors of
JSEnv
s: the test kit configuration option withTerminateVMJSCode
, which had beend replaced by withSupportsExit
in 1.0.0-M6, is coming back under the name withExitJSStatement
- The linker API has been refactored to be asynchronous in nature
We would also like to remind readers of the following important change that happened in 1.0.0-M5:
- Drop compatibility with sbt-crossproject v0.4.x and earlier (v0.5.0 or later is required)
Read more
We are pleased to announce the release of Scala.js 0.6.27!
The highlight of this release is the support for Scala 2.13.0-RC1.
It also fixes a few issues, and introduces a way to limit the number of concurrent linking operations in the sbt plugin.
Read on for more details.
Read more