Skip to content

Commit 5710f1f

Browse files
Merge pull request #9174 from dotty-staging/25th-release-article
0.25.0-RC2 release blog article
2 parents de75713 + 4bd28fb commit 5710f1f

File tree

1 file changed

+119
-0
lines changed

1 file changed

+119
-0
lines changed
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
---
2+
layout: blog-page
3+
title: Announcing Dotty 0.25.0-RC2 - speed-up of givens and change in the tuple API
4+
author: Anatolii Kmetiuk
5+
authorImg: /images/anatolii.png
6+
date: 2020-06-22
7+
---
8+
9+
Hello! We are excited to announce 0.25.0-RC2 of Dotty. In this version, following feedback of the community, we have improved compilation speeds when programming with givens. We have also made some improvements to the tuple API.
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+
# Dedicated type for empty tuples
19+
We have added a type `EmptyTuple` to represent empty tuples. Previously empty tuples were represented by `Unit`. This change was done so that all the tuples are a subtype of `Product`. Now, tuples have the following type hierarchy:
20+
21+
```scala
22+
Product -- Tuple -+- EmptyTuple
23+
|
24+
+- NonEmptyTuple -- *:[Head, Tail <: Tuple]
25+
```
26+
27+
This change impacts existing typeclass derivation codebases in that they now should use `EmptyTuple` instead of `Unit` in the tuple context.
28+
29+
# Avoid excessive slowdowns when suggesting missing imports in error messages
30+
Dotty brings to the user an enhanced error reporting when it comes to programming with givens. This better error reporting, however, proved to be a trade-off. Sometimes it takes an unreasonable amount of time and space to compute a quality suggestion to the end user.
31+
32+
A number of users reported considerable slowdowns when it comes to programming with implicits. To address this issue, we have modified the logic for given imports suggestion. We introduced a per-run budget of 10 seconds, so it is guaranteed that it won't take longer than that time to compute all the given imports.
33+
34+
This default budget is configurable via a compiler flag `-Ximport-suggestion-timeout`.
35+
36+
This change should speed up the compiler when it comes to programming with givens.
37+
38+
For more information, see PR [#9167](https://github.com/lampepfl/dotty/pull/9167).
39+
40+
# Let us know what you think!
41+
42+
If you have questions or any sort of feedback, feel free to send us a message on our
43+
[Gitter channel](https://gitter.im/lampepfl/dotty). If you encounter a bug, please
44+
[open an issue on GitHub](https://github.com/lampepfl/dotty/issues/new).
45+
46+
## Contributing
47+
Thank you to all the contributors who made this release possible 🎉
48+
49+
According to `git shortlog -sn --no-merges 0.24.0-RC1..0.25.0-RC2` these are:
50+
51+
```
52+
190 Nicolas Stucki
53+
175 Martin Odersky
54+
67 Liu Fengyun
55+
32 Guillaume Martres
56+
17 Robert Stoll
57+
17 bishabosha
58+
9 Anatolii Kmetiuk
59+
7 yu-croco
60+
6 Reto Hablützel
61+
5 Akhtiam Sakaev
62+
5 odersky
63+
4 Raphael Jolly
64+
4 Ruslan Shevchenko
65+
4 Olivier Blanvillain
66+
3 Jamie Thompson
67+
3 Chris Birchall
68+
2 Radosław Waśko
69+
2 Aleksander Boruch-Gruszecki
70+
2 Eric Loots
71+
2 Jens Kat
72+
2 Miles Sabin
73+
2 noti0na1
74+
1 Krzysztof Bochenek
75+
1 Seth Tisue
76+
1 Tobias Kahlert
77+
1 Yilin Wei
78+
1 ansvonwa
79+
1 FabioPinheiro
80+
1 december32
81+
1 yytyd
82+
1 Ara Adkins
83+
1 squid314
84+
1 typeness
85+
1 xuwei-k
86+
1 Alex Zolotko
87+
1 Julien Richard-Foy
88+
```
89+
90+
If you want to get your hands dirty and contribute to Dotty, now is a good time to get involved!
91+
Head to our [Getting Started page for new contributors](https://dotty.epfl.ch/docs/contributing/getting-started.html),
92+
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).
93+
They make perfect entry points into hacking on the compiler.
94+
95+
We are looking forward to having you join the team of contributors.
96+
97+
## Library authors: Join our community build
98+
99+
Dotty now has a set of widely-used community libraries that are built against every nightly Dotty
100+
snapshot. Currently, this includes shapeless, ScalaPB, algebra, scalatest, scopt and squants.
101+
Join our [community build](https://github.com/lampepfl/dotty/tree/master/community-build)
102+
to make sure that our regression suite includes your library.
103+
104+
[Scastie]: https://scastie.scala-lang.org/?target=dotty
105+
106+
[@odersky]: https://github.com/odersky
107+
[@DarkDimius]: https://github.com/DarkDimius
108+
[@smarter]: https://github.com/smarter
109+
[@felixmulder]: https://github.com/felixmulder
110+
[@nicolasstucki]: https://github.com/nicolasstucki
111+
[@liufengyun]: https://github.com/liufengyun
112+
[@OlivierBlanvillain]: https://github.com/OlivierBlanvillain
113+
[@biboudis]: https://github.com/biboudis
114+
[@allanrenucci]: https://github.com/allanrenucci
115+
[@Blaisorblade]: https://github.com/Blaisorblade
116+
[@Duhemm]: https://github.com/Duhemm
117+
[@AleksanderBG]: https://github.com/AleksanderBG
118+
[@milessabin]: https://github.com/milessabin
119+
[@anatoliykmetyuk]: https://github.com/anatoliykmetyuk

0 commit comments

Comments
 (0)