Skip to content

Commit 2637ec1

Browse files
Add 0.27.0-RC1 release article
1 parent 539dd06 commit 2637ec1

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
layout: blog-page
3+
title: Announcing Dotty 0.27.0-RC1 - ScalaJS, performance, stability
4+
author: Anatolii Kmetiuk
5+
authorImg: /images/anatolii.png
6+
date: 2020-08-31
7+
---
8+
9+
Hello! We are excited to announce 0.27.0-RC1 of Dotty. In this version, we bring ScalaJS support to Dotty. As we are getting closer to the Scala 3 release, we continue shifting our focus to stability and performance, which are the central theme of this release.
10+
11+
You can try out this version right now, from the comfort of your SBT, by visiting the [home page](https://dotty.epfl.ch/) and scrolling down to the "Create a Dotty Project" section.
12+
13+
Alternatively, you can try this version of Scala online via [Scastie](https://scastie.scala-lang.org/). Once you're there, click "Build Settings" and set "Target" to "Dotty".
14+
15+
Enjoy the ride🚀!
16+
17+
<!--more-->
18+
# Welcome ScalaJS support
19+
PR [#9637](https://github.com/lampepfl/dotty/pull/9637) brings ScalaJS support to Dotty. Now, if you use the ScalaJSPlugin in your Dotty SBT project, the project will be correctly compiled to compile to JavaScript.
20+
21+
# Stability
22+
As we're getting closer to the release of Scala 3, we are continuing to focus on the stability and performance of the language. In this release, we have fixed support of objects under JDK9 (PR [#9181](https://github.com/lampepfl/dotty/pull/9181)). The issue was, due to the changes in JDK9 compared to JDK8, our initialization scheme for objects did not work under JDK9. The aforementioned fixed that issue, thereby unblocking JDK9 support for Dotty.
23+
24+
We are also continuing to work on stabilising enums. PR [#9532](https://github.com/lampepfl/dotty/pull/9532) corrects the deserialization and serialization of singleton enum values with `ObjectInputStream` and `ObjectOutputStream`. PR [#9549](https://github.com/lampepfl/dotty/pull/9549) enables overriding the `toString` method on enums – previously this was not possible because of the way enums were desugared.
25+
26+
# Performance
27+
We are also focusing these days on making the compiler faster and memory-efficient. For the past month, we were looking in the compiler's memory footprint. We were trying to determine what was allocated in unreasonable amounts during compilation and trying to resolve these allocation issues. The following PRs attempt to increase the performance of the compiler:
28+
29+
- Optimize megaphase [#9597](https://github.com/lampepfl/dotty/pull/9597)
30+
- Cache all memberNamed results [#9633](https://github.com/lampepfl/dotty/pull/9633)
31+
- Parallelize position pickling [#9619](https://github.com/lampepfl/dotty/pull/9619)
32+
- Simplify TypeComparer [#9405](https://github.com/lampepfl/dotty/pull/9405)
33+
- Optimize and simplify SourcePosition handling [#9561](https://github.com/lampepfl/dotty/pull/9561)
34+
35+
# Metaprogramming
36+
We are keeping the work on the metaprogramming API improvements. For this release, the following PRs bring better API to metaprogrammers:
37+
38+
- Avoid leak of internal implementation in tasty.Reflection [#9613](https://github.com/lampepfl/dotty/pull/9613)
39+
- Redefine quoted.Expr.betaReduce [#9469](https://github.com/lampepfl/dotty/pull/9469)
40+
41+
# Let us know what you think!
42+
43+
If you have questions or any sort of feedback, feel free to send us a message on our
44+
[Gitter channel](https://gitter.im/lampepfl/dotty). If you encounter a bug, please
45+
[open an issue on GitHub](https://github.com/lampepfl/dotty/issues/new).
46+
47+
## Contributing
48+
Thank you to all the contributors who made this release possible 🎉
49+
50+
According to `git shortlog -sn --no-merges 0.26.0-RC1..0.27.0-RC1` these are:
51+
52+
```
53+
118 Martin Odersky
54+
75 Liu Fengyun
55+
65 Nicolas Stucki
56+
27 Sébastien Doeraene
57+
23 Guillaume Martres
58+
16 Jamie Thompson
59+
15 bishabosha
60+
10 Guillaume Raffin
61+
7 Anatolii Kmetiuk
62+
4 Robert Stoll
63+
3 Pavel Shirshov
64+
3 december32
65+
3 odersky
66+
2 ysthakur
67+
1 Niklas Vest
68+
1 Dean Wampler
69+
1 Fengyun Liu
70+
1 John Sullivan
71+
1 Lan, Jian
72+
1 Aleksander Boruch-Gruszecki
73+
1 Ruslan Shevchenko
74+
1 Stefan Zeiger
75+
1 William Narmontas
76+
1 xuwei-k
77+
```
78+
79+
If you want to get your hands dirty and contribute to Dotty, now is a good time to get involved!
80+
Head to our [Getting Started page for new contributors](https://dotty.epfl.ch/docs/contributing/getting-started.html),
81+
and have a look at some of the [good first issues](https://github.com/lampepfl/dotty/issues?q=is%3Aissue+is%3Aopen+label%3Aexp%3Anovice).
82+
They make perfect entry points into hacking on the compiler.
83+
84+
We are looking forward to having you join the team of contributors.
85+
86+
## Library authors: Join our community build
87+
88+
Dotty now has a set of widely-used community libraries that are built against every nightly Dotty
89+
snapshot. Currently, this includes shapeless, ScalaPB, algebra, scalatest, scopt and squants.
90+
Join our [community build](https://github.com/lampepfl/dotty/tree/master/community-build)
91+
to make sure that our regression suite includes your library.
92+
93+
[Scastie]: https://scastie.scala-lang.org/?target=dotty
94+
95+
[@odersky]: https://github.com/odersky
96+
[@DarkDimius]: https://github.com/DarkDimius
97+
[@smarter]: https://github.com/smarter
98+
[@felixmulder]: https://github.com/felixmulder
99+
[@nicolasstucki]: https://github.com/nicolasstucki
100+
[@liufengyun]: https://github.com/liufengyun
101+
[@OlivierBlanvillain]: https://github.com/OlivierBlanvillain
102+
[@biboudis]: https://github.com/biboudis
103+
[@allanrenucci]: https://github.com/allanrenucci
104+
[@Blaisorblade]: https://github.com/Blaisorblade
105+
[@Duhemm]: https://github.com/Duhemm
106+
[@AleksanderBG]: https://github.com/AleksanderBG
107+
[@milessabin]: https://github.com/milessabin
108+
[@anatoliykmetyuk]: https://github.com/anatoliykmetyuk

0 commit comments

Comments
 (0)