Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

sjrd
Copy link
Member

@sjrd sjrd commented Sep 5, 2025

No description provided.

@sjrd sjrd requested a review from gzm0 September 5, 2025 09:23
@sjrd sjrd changed the title Announcing Scala.js 1.20.0. Announcing Scala.js 1.20.1. Sep 6, 2025
scalaJSBinary: 1
scalaJS06x: 0.6.33
scalaJS06xBinary: 0.6
scalaJSDOM: 2.8.0
scalaJSDOM: 2.8.1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this related to the Scala.js release or just a convenience fix?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a drive-by fix.

@@ -36,3 +36,4 @@
- 1.17.0
- 1.18.0
- 1.19.0
- 1.20.0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 1.20.0
- 1.20.1

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, it's really .0. This is the list of versions used for the badge selector at https://www.scala-js.org/libraries/ . You can also notice that there is 1.18.0 in that list, although that was also a never-announced version.

}
{% endhighlight %}

Scala.js 1.20.x introduces `scala.scalajs.LinkingInfo.linkTimeIf`, a conditional branch that is *guaranteed* by spec to be resolved at link-time.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Scala.js 1.20.x introduces `scala.scalajs.LinkingInfo.linkTimeIf`, a conditional branch that is *guaranteed* by spec to be resolved at link-time.
Scala.js 1.20.1 introduces `scala.scalajs.LinkingInfo.linkTimeIf`, a conditional branch that is *guaranteed* by spec to be resolved at link-time.
  • Concrete version.
  • Consistency with the performance section.


* Varargs, when compiled with Scala.js 1.20.0+ on Scala 2, and with the upcoming Scala 3.8.0+ on Scala 3
* `java.util.ArrayList`, `ArrayDeque`, `PriorityQueue` and `java.util.concurrent.CopyOnWriteArrayList`

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add:

  • startup speed thanks to constant arrays in data segments?
  • "general efforts to minimize JS / WASM hops" or something? (I don't think it makes sense to list the specifics, but maybe it's still worth mentioning overall).

* `java.util.ArrayList`, `ArrayDeque`, `PriorityQueue` and `java.util.concurrent.CopyOnWriteArrayList`

## Miscellaneous

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add more names for WASM?


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.

## Enhancements
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to mention scala-js/scala-js#5228 under changes with compatibility concerns?

For WebAssembly, performance improvements in the following areas:

* Varargs, when compiled with Scala.js 1.20.0+ on Scala 2, and with the upcoming Scala 3.8.0+ on Scala 3
* `java.util.ArrayList`, `ArrayDeque`, `PriorityQueue` and `java.util.concurrent.CopyOnWriteArrayList`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add scala-js/scala-js#5224 (RedBlackTree.fromOrdered)?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO this one is quite niche, and it's not easy to describe in simple terms what user-facing API is affected. So I suggest we don't mention it.

### Link-time conditional branching

Thanks to our optimizer's ability to inline, constant-fold, and then eliminate dead code, we have been able to write link-time conditional branches for a long time.
Typical examples include polyfills, as illustrated in the documentation of [`scala.scalajs.LinkingInfo`](https://javadoc.io/static/org.scala-js/scalajs-library_2.13/1.19.0/scala/scalajs/LinkingInfo$.html#esVersion:Int):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Link to the docs on scala-js.org? Feels odd to host them, but link externally.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't actually host them anymore. We redirect to javadoc.io. But I did update the link to use our entry points.

@sjrd sjrd merged commit 8b5b94a into scala-js:main Sep 6, 2025
1 check passed
@sjrd sjrd deleted the scalajs-1.20.0 branch September 6, 2025 17:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants