-
Notifications
You must be signed in to change notification settings - Fork 147
Announcing Scala.js 1.14.0. #617
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Needs to wait for:
|
The linker will now avoid generating a default bridge in a subclass if an existing bridge in the superclass can be used. | ||
This can lead to minor code-size improvements. | ||
|
||
## Call-site inline |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Put this title and "new ECMAScript core types" under a ## Improvements
?
We should also mention scala-js/scala-js#4904 for Scala 3 users.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've opted to put everything under a ## Improvements
. This also made it possible to move default bridge generation lower (IMO less relevant for most users).
|
||
### Reachability Analysis is parallel by default | ||
|
||
We have observed up to 2x speedup of reachability analysis on the Scala.js test suite with this change. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm wondering if the 2x is too marketing-y here. It is true, but most people will not care about the reachability analysis in isolation but about the whole linking process.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe mention how much of the whole linker is taken up by the analysis?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes :-/ Do we have these numbers?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems we do: scala-js/scala-js#4897 (comment) :) I'll run some analysis.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
> d %>%
filter(!grepl(':', op)) %>%
group_by(variant, op) %>%
summarise(t_ns = median(t_ns)) %>%
group_by(variant) %>%
summarise(t_ns = sum(t_ns))
`summarise()` has grouped output by 'variant'. You can override using the `.groups` argument.
# A tibble: 3 × 2
variant t_ns
<fct> <dbl>
1 main 1090421195
2 parallel 835999739
3 pr 866628092
So overall a 20% speedup.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have observed up to 2x speedup of reachability analysis on the Scala.js test suite with this change. | |
We have observed up to 2x speedup of reachability analysis on the Scala.js test suite with this change, which corresponds to a 20% speedup to the overall linker. |
This is complete now.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like we'll be able to release tomorrow (25/09/2023 for the date).
We are pleased to announce the release of Scala.js 1.14.0! | ||
|
||
This release mainly brings speed improvements in the reachability analysis by parallizing it. | ||
TODO Mention 2.13.12 upgrade. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's still a TODO here.
|
||
### Reachability Analysis is parallel by default | ||
|
||
We have observed up to 2x speedup of reachability analysis on the Scala.js test suite with this change. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have observed up to 2x speedup of reachability analysis on the Scala.js test suite with this change. | |
We have observed up to 2x speedup of reachability analysis on the Scala.js test suite with this change, which corresponds to a 20% speedup to the overall linker. |
|
||
### Implicit conversions to js.Any for js.UndefOr in Scala 3 | ||
|
||
Because `js.UndefOr` is implemented differently in Scala 3, implicit conversion to `js.Any` was not available. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because `js.UndefOr` is implemented differently in Scala 3, implicit conversion to `js.Any` was not available. | |
Because `js.UndefOr` is implemented differently in Scala 3, the implicit conversion to `js.Any` was not available. |
79c5cd6
to
6c89bdd
Compare
6c89bdd
to
7996d4e
Compare
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thank you!
Publishing of the artifacts is in progress. :)
No description provided.