Skip to content

Commit 74aba5c

Browse files
committed
Update wording.
1 parent 1698f35 commit 74aba5c

File tree

1 file changed

+40
-41
lines changed

1 file changed

+40
-41
lines changed

docs/blog/_posts/2017-07-12-second-dotty-milestone-release.md

Lines changed: 40 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,21 @@ Today, we are excited to release Dotty version 0.2.0-RC1. This release
1010
serves as a technology preview that demonstrates new language features
1111
and the compiler supporting them.
1212

13-
This release is based on [previous milestone](/blog/2017/05/31/first-dotty-milestone-release.html).
13+
This release is based on the [previous milestone](/blog/2017/05/31/first-dotty-milestone-release.html).
1414
The highlights of this release are:
1515
- substantial improvement of quality of generated code for pattern matching
1616
- improvements in VS Code IDE stability
1717
- support Windows in VS Code IDE
18-
- improved compatibility with scalac
18+
- improved compatibility with scalac
1919
- initial support for reproducible builds
2020

2121

2222
<!--more-->
2323

2424
This is our second scheduled release according to our [6-week release schedule](http://dotty.epfl.ch/docs/usage/version-numbers.html).
2525

26-
# What’s in the 0.2.0-RC1 technology preview?
27-
The [previous technology preview](/blog/2017/05/31/first-dotty-milestone-release.html) has shipped new language planned for Scala 3:
26+
## What’s in the 0.2.0-RC1 technology preview?
27+
The [previous technology preview](/blog/2017/05/31/first-dotty-milestone-release.html) has shipped new language features planned for Scala 3:
2828
[Intersection Types](http://dotty.epfl.ch/docs/reference/intersection-types.html),
2929
[Union Types](http://dotty.epfl.ch/docs/reference/union-types.html),
3030
[Trait Parameters](http://dotty.epfl.ch/docs/reference/trait-parameters.html),
@@ -34,12 +34,12 @@ The [previous technology preview](/blog/2017/05/31/first-dotty-milestone-release
3434

3535
This technology preview is geared towards improving stability and reliability. It includes:
3636

37-
- [Local optimizations upstreamed from Dotty Linker](https://github.com/lampepfl/dotty/pull/2513), [2647](https://github.com/lampepfl/dotty/pull/2647) by ([@OlivierBlanvillain](https://github.com/OlivierBlanvillain). See more details below.
38-
- [Optimizing Pattern Matcher](https://github.com/lampepfl/dotty/pull/2829) by ([@odersky](https://github.com/odersky)
37+
- [Local optimizations upstreamed from the Dotty Linker](https://github.com/lampepfl/dotty/pull/2513), [2647](https://github.com/lampepfl/dotty/pull/2647) by ([@OlivierBlanvillain](https://github.com/OlivierBlanvillain)). See more details below.
38+
- [Optimizing Pattern Matcher](https://github.com/lampepfl/dotty/pull/2829) by ([@odersky](https://github.com/odersky))
3939
- [Idempotency checks](https://github.com/lampepfl/dotty/pull/2756) are the first step to reproducible builds
40-
- [Faster Base class sets](https://github.com/lampepfl/dotty/pull/2676) by ([@odersky](https://github.com/odersky) and ([@darkdimius](https://twitter.com/darkdimius)
41-
- Huge number of fixes to IDE and Dotty Language Server covering:
42-
40+
- [Faster Base class sets](https://github.com/lampepfl/dotty/pull/2676) by ([@odersky](https://github.com/odersky)) and ([@darkdimius](https://twitter.com/darkdimius))
41+
- Numerous fixes to IDE and Dotty Language Server covering:
42+
4343
- [Windows support for VS Code plugin](https://github.com/lampepfl/dotty/pull/2776)
4444
- [Fix hover-on-type for implicitly converted expressions](https://github.com/lampepfl/dotty/pull/2836)
4545
- [Fixes to find all references in external projects](https://github.com/lampepfl/dotty/pull/2810), [2773](https://github.com/lampepfl/dotty/pull/2773/files)
@@ -49,44 +49,44 @@ This technology preview is geared towards improving stability and reliability. I
4949
- [Report errors on Dotty Language Server initialization](https://github.com/lampepfl/dotty/pull/2708)
5050
- [Fixes to sbt setting up Dotty IDE](https://github.com/lampepfl/dotty/pull/2690)
5151
- General stability improvements [2838](https://github.com/lampepfl/dotty/pull/2838), [2787](https://github.com/lampepfl/dotty/pull/2787), [2692](https://github.com/lampepfl/dotty/pull/2692)
52-
52+
5353
- Scalac compatibility improvements:
54-
54+
5555
- [Support Scala 2.12 traits](https://github.com/lampepfl/dotty/pull/2685)
5656
- [Fixes to handling of Scala 2 classfiles](https://github.com/lampepfl/dotty/pull/2834/files)
5757
- [Scalac parser crashes on Dotty.jar](https://github.com/lampepfl/dotty/pull/2719)
58-
58+
5959
- Java compatibility improvements:
60-
60+
6161
- [Fixes to handing of Java generic signatures](https://github.com/lampepfl/dotty/pull/2831)
6262
- [java.lang.System.out is final but that's a lie](https://github.com/lampepfl/dotty/pull/2781)
63-
63+
6464
- Improved error messages:
65-
65+
6666
- [Nicer error message for "implicit function type needs non-empty parameter list"](https://github.com/lampepfl/dotty/pull/2821)
6767
- [Nicer error message for nonsensical modifier combination](https://github.com/lampepfl/dotty/pull/2807/files), [2747](https://github.com/lampepfl/dotty/pull/2747)
6868
- [Nicer error message for supercall inside @inline method](https://github.com/lampepfl/dotty/pull/2740)
6969
- [Check that case classes don't inherit case classes](https://github.com/lampepfl/dotty/pull/2790)
7070
- [Check that named parameters don't conflict with positional ones](https://github.com/lampepfl/dotty/pull/2785)
7171

7272
- Improved command line handling:
73-
73+
7474
- [Support params in a file like @file.txt](https://github.com/lampepfl/dotty/pull/2765)
75-
75+
7676
- Type system stability:
77-
78-
- [Handle wildcard types in unions and intersections](https://github.com/lampepfl/dotty/pull/2742)
77+
78+
- [Handle wildcard types in unions and intersections](https://github.com/lampepfl/dotty/pull/2742)
7979

8080
- Fixes to implicit search:
81-
81+
8282
- [Fix shadowing of higher order implicits](https://github.com/lampepfl/dotty/pull/2739)
8383

84-
85-
## Better generated code:
84+
85+
### Better generated code:
8686

8787
As was [spotted](https://twitter.com/gkossakowski/status/870243464528744449) by [@gkossakowski](https://twitter.com/gkossakowski)
88-
In the previous release Dotty was on par with Scala 2.11 in speed. But why is that?
89-
The reason is that Dotty compiled by dotty had really horrible code generated or pattern matching.
88+
in the previous release Dotty was on par with Scala 2.11 in speed. But why is that?
89+
The reason is that Dotty compiled by Dotty had really horrible code generated for pattern matching.
9090

9191
Let's illustrate on a simple example:
9292

@@ -101,7 +101,7 @@ case class CC(a: Int, b: Object)
101101
}
102102
a + b
103103
}
104-
104+
105105
def booleans(a: Object) = {
106106
val (b1, b2) = (a.isInstanceOf[CC], a.isInstanceOf[List[Int]])
107107
(b1, b2) match {
@@ -113,8 +113,8 @@ case class CC(a: Int, b: Object)
113113
```
114114

115115

116-
Dotty that was released in the previous milestone didn't contain any optimizations and generated horrible code for it.
117-
The java-with-goto code below is equivalent to what dotty hs generated.
116+
The Dotty that was released in the previous milestone didn't contain any optimizations and generated inefficient code for it.
117+
The java-with-goto code below is equivalent to what Dotty generated.
118118

119119
```
120120
// output of dotc 0.1.2-RC1
@@ -175,7 +175,7 @@ The java-with-goto code below is equivalent to what dotty hs generated.
175175
}
176176
```
177177

178-
Due to new optimizing pattern matcher, dotty now is able to generate the code below without `-optimise`
178+
Due to the new optimizing pattern matcher, Dotty now is able to generate the code below without `-optimise`
179179

180180
```
181181
// output of 0.2.0-RC1 without -optimise
@@ -223,7 +223,7 @@ Due to new optimizing pattern matcher, dotty now is able to generate the code be
223223
```
224224

225225
You can clearly see that it's shorter ;-) and it actually does less work.
226-
If you additionally enable local optimizations, you get a pretty good code:
226+
If you additionally enable local optimizations, you get decent generated code:
227227

228228
```
229229
// output of 0.2.0-RC1 with -optimise
@@ -258,11 +258,11 @@ If you additionally enable local optimizations, you get a pretty good code:
258258
}
259259
```
260260

261-
This code still has a major inefficiency: it allocates tuples.
262-
We plan to continue migration of local optimizations from Dotty linker that should allow us to generate code that is as
263-
good the one generated by Dotty linker with global analysis disabled:
264-
265-
```
261+
This code still has a major inefficiency; it allocates tuples.
262+
We plan to continue the migration of local optimizations from the Dotty Linker that should allow us to generate code that is as
263+
good the code generated by the Dotty Linker with global analysis disabled:
264+
265+
```
266266
// output of Dotty linker https://github.com/dotty-linker/dotty/tree/opto
267267
public int foo(Object x) {
268268
CC cC;
@@ -277,7 +277,7 @@ good the one generated by Dotty linker with global analysis disabled:
277277
}
278278
return n + n2;
279279
}
280-
280+
281281
public boolean booleans(Object a) {
282282
boolean bl = a instanceof CC;
283283
boolean bl2 = a instanceof List;
@@ -286,7 +286,6 @@ good the one generated by Dotty linker with global analysis disabled:
286286
}
287287
return false;
288288
}
289-
290289
```
291290

292291
## How can you try it out?
@@ -296,7 +295,7 @@ We ship with tools that help you try out the Dotty platform:
296295
- [sbt support, including retro-compatibility with Scala 2](https://github.com/lampepfl/dotty-example-project)
297296

298297

299-
You have several alternatives: use the `sbt-dotty` plugin, get a standalone
298+
You have several alternatives; use the `sbt-dotty` plugin, get a standalone
300299
installation, or try it online on [Scastie].
301300

302301
### sbt
@@ -314,16 +313,16 @@ using Dotty with sbt, see the
314313

315314
Releases are available for download on the _Releases_
316315
section of the Dotty repository:
317-
https://github.com/lampepfl/dotty/releases
316+
[https://github.com/lampepfl/dotty/releases](https://github.com/lampepfl/dotty/releases)
318317

319-
We also provide a [homebrew](https://brew.sh/) package that can be installed by running
318+
We also provide a [homebrew](https://brew.sh/) package that can be installed by running:
320319

321320
```
322321
brew install lampepfl/brew/dotty
323322
```
324323

325324
In case you have already installed Dotty via brew, you should instead update it:
326-
325+
327326
```
328327
brew upgrade dotty
329328
```
@@ -363,7 +362,7 @@ Join our [community build](https://github.com/lampepfl/dotty-community-build)
363362
to make sure that our regression suite includes your library.
364363

365364

366-
To get started, see <https://github.com/lampepfl/dotty>.
365+
To get started, see [https://github.com/lampepfl/dotty](https://github.com/lampepfl/dotty).
367366

368367

369368
[Scastie]: https://scastie.scala-lang.org/?target=dotty

0 commit comments

Comments
 (0)