Skip to content

Commit c6a5aa6

Browse files
authored
Merge pull request #541 from sjrd/scalajs-1.5.1
Announcing Scala.js 1.5.1.
2 parents 84023b0 + dc42314 commit c6a5aa6

File tree

4 files changed

+96
-1
lines changed

4 files changed

+96
-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.5.0
67+
scalaJS: 1.5.1
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.5.1
4+
category: news
5+
tags: [releases]
6+
permalink: /news/2020/11/16/announcing-scalajs-1.5.1/
7+
---
8+
9+
10+
We are pleased to announce the release of Scala.js 1.5.1!
11+
12+
This release mostly contains additions and improvements in the JDK libraries.
13+
In particular, several APIs involving floating point numbers have been fixed, from parsing to bit manipulation to formatting.
14+
15+
Read on for more details.
16+
17+
<!--more-->
18+
19+
## Getting started
20+
21+
If you are new to Scala.js, head over to [the tutorial]({{ BASE_PATH }}/tutorial/).
22+
23+
If you need help with anything related to Scala.js, you may find our community [on Gitter](https://gitter.im/scala-js/scala-js) and [on Stack Overflow](https://stackoverflow.com/questions/tagged/scala.js).
24+
25+
Bug reports can be filed [on GitHub](https://github.com/scala-js/scala-js/issues).
26+
27+
## Release notes
28+
29+
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.
30+
31+
This is a **patch** release:
32+
33+
* It is backward binary compatible with all earlier versions in the 1.x series: libraries compiled with 1.0.x through 1.5.0 can be used with 1.5.1 without change.
34+
* It is forward binary compatible with 1.5.0: libraries compiled with 1.5.1 can be used with 1.5.0 without change.
35+
* It is backward source compatible with 1.5.0: source code that used to compile with 1.5.0 should compile as is when upgrading to 1.5.1.
36+
37+
In addition, like Scala.js 1.5.0:
38+
39+
* It is *not* forward binary compatible with 1.4.x: libraries compiled with 1.5.1 cannot be used with 1.4.x or earlier.
40+
* It is *not* entirely backward source compatible with 1.4.x: it is not guaranteed that a codebase will compile *as is* when upgrading from 1.4.x or earlier (in particular in the presence of `-Xfatal-warnings`).
41+
42+
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.
43+
44+
## Fixes with compatibility concerns
45+
46+
The `%e`, `%f` and `%g` conversions in `java.util.Formatter`---also used by `String.format` and the `f"..."` interpolator---have been fixed to match their specification on the JVM.
47+
48+
This may break tests that rely on the specific string output of formatting numbers.
49+
50+
## Miscellaneous
51+
52+
### New JDK APIs
53+
54+
This release contains some improvements in the JDK APIs that we support:
55+
56+
New interfaces:
57+
58+
* All the remaining functional interfaces in `java.util.function.*`
59+
60+
New methods:
61+
62+
* `java.util.concurrent.ConcurrentHashMap.keySet(mappedValue: V)`
63+
* `java.util.concurrent.ConcurrentHashMap.newKeySet()` and `newKeySet(initialCapacity: Int)`
64+
65+
Methods with fixed or improved behavior:
66+
67+
* `java.util.Formatter` and derivatives (such as `String.format`) now support:
68+
* `java.math.BigDecimal` arguments with the `%e`, `%f` and `%g` conversions (in addition to fixing `Float`s and `Double`s, as mentioned above)
69+
* The `%a` conversion
70+
* `parseFloat` and `parseDouble` are now accurate to 0.5 ULP, as specified
71+
72+
## Bug fixes
73+
74+
Among others, the following bugs have been fixed in 1.5.0:
75+
76+
* [#4434](https://github.com/scala-js/scala-js/issues/4434) `java.lang.Class.getSimpleName()` returns bad results for local classes
77+
* [#4452](https://github.com/scala-js/scala-js/issues/4452) Overloading in JS classes incorrectly forwards vararg parameters
78+
* [#3706](https://github.com/scala-js/scala-js/issues/3706) `j.m.BigDecimal.divideToIntegralValue(bi, MathContext)` returns value with bogus internal `_precision`
79+
* [#4035](https://github.com/scala-js/scala-js/issues/4035) `j.l.Float.parseFloat`'s result is 1 ULP off of the best approximation in some cases
80+
* [#4431](https://github.com/scala-js/scala-js/issues/4431) `j.l.Double.parseDouble` can be 1 ULP off for hexadecimal parsing
81+
* [#4432](https://github.com/scala-js/scala-js/issues/4432) `j.l.Math.ulp()` returns wrong results for negative values
82+
* [#4433](https://github.com/scala-js/scala-js/issues/4433) `doubleToLongBitsPolyfill(4.450147717014403e-308)` is incorrect
83+
* [#4395](https://github.com/scala-js/scala-js/issues/4395) `ConcurrentHashMap.KeySetView.toString` should print elements
84+
85+
You can find the full list [on GitHub](https://github.com/scala-js/scala-js/issues?q=is%3Aissue+milestone%3Av1.5.1+is%3Aclosed).

doc/all-api.md

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

66
## All previous versions of the API
77

8+
### Scala.js 1.5.1
9+
* [1.5.1 scalajs-library]({{ site.production_url }}/api/scalajs-library/1.5.1/scala/scalajs/js/index.html)
10+
* [1.5.1 scalajs-test-interface]({{ site.production_url }}/api/scalajs-test-interface/1.5.1/)
11+
* [1.5.1 scalajs-ir]({{ site.production_url }}/api/scalajs-ir/1.5.1/org/scalajs/ir/index.html)
12+
* [1.5.1 scalajs-linker-interface]({{ site.production_url }}/api/scalajs-linker-interface/1.5.1/org/scalajs/linker/interface/index.html) ([Scala.js version]({{ site.production_url }}/api/scalajs-linker-interface-js/1.5.1/org/scalajs/linker/interface/index.html))
13+
* [1.5.1 scalajs-linker]({{ site.production_url }}/api/scalajs-linker/1.5.1/org/scalajs/linker/index.html) ([Scala.js version]({{ site.production_url }}/api/scalajs-linker-js/1.5.1/org/scalajs/linker/index.html))
14+
* [1.5.1 scalajs-test-adapter]({{ site.production_url }}/api/scalajs-sbt-test-adapter/1.5.1/org/scalajs/testing/adapter/index.html)
15+
* [1.5.1 sbt-scalajs]({{ site.production_url }}/api/sbt-scalajs/1.5.1/#org.scalajs.sbtplugin.package)
16+
817
### Scala.js 1.5.0
918
* [1.5.0 scalajs-library]({{ site.production_url }}/api/scalajs-library/1.5.0/scala/scalajs/js/index.html)
1019
* [1.5.0 scalajs-test-interface]({{ site.production_url }}/api/scalajs-test-interface/1.5.0/)

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.5.1](/news/2021/04/01/announcing-scalajs-1.5.1/)
89
- [1.5.0](/news/2021/02/12/announcing-scalajs-1.5.0/)
910
- [1.4.0](/news/2021/01/12/announcing-scalajs-1.4.0/)
1011
- [1.3.1](/news/2020/11/16/announcing-scalajs-1.3.1/)

0 commit comments

Comments
 (0)