A next-generation compiler for Scala

(scroll down for more info)

    <h1 id="getting-started">Try Dotty</h1>
    <p>If you are a Mac user, you can install Dotty with <a href="https://brew.sh/">brew</a>:</p>
    <pre><code>brew install lampepfl/brew/dotty</code></pre>
&lt;p&gt;If you are a Linux or Windows user, download the &lt;a href=&quot;https://github.com/lampepfl/dotty/releases&quot;&gt;latest release&lt;/a&gt;. Optionally add path of the folder &lt;code&gt;bin/&lt;/code&gt; to the system environment variable &lt;code&gt;PATH&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Now you can compile Scala source code:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;dotc hello.scala&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To start the REPL, run: &lt;code&gt;dotr&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Or, you can try Dotty in your browser with &lt;a href=&quot;https://scastie.scala-lang.org/?target=dotty&quot;&gt;Scastie&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;getting-started-with-a-project&quot;&gt;Create a Dotty Project&lt;/h1&gt; &lt;p&gt;The fastest way to create a new project in Dotty is using &lt;a href=&quot;http://www.scala-sbt.org/&quot;&gt;sbt (1.1.4+)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Create a Dotty project:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;sbt new &lt;a href=&quot;https://github.com/lampepfl/dotty.g8&quot;&gt;lampepfl/dotty.g8&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Or a Dotty project that cross compiles with Scala 2:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;sbt new &lt;a href=&quot;https://github.com/lampepfl/dotty-cross.g8&quot;&gt;lampepfl/dotty-cross.g8&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;For documentation see the &lt;a href=&quot;https://github.com/lampepfl/dotty-example-project&quot;&gt;Dotty Example Project&lt;/a&gt;.&lt;/p&gt;


So, features?

Intersection Types Implemented
Union Types Implemented
Type lambdas Implemented
Context query Implemented
Trait parameters Implemented
Implied Instances Implemented
Inferable parameters Implemented
Extension Methods Implemented
Opaque Type Aliases Implemented
Toplevel definitions Implemented
Export clauses Implemented
Vararg patterns Implemented
Creator applications Implemented
@static methods and fields Implemented
SBT incremental build Implemented
Option-less pattern matching Implemented
Multiversal equality Implemented
Erased Terms Implemented
Auto-Specialization In progress
Whole program optimizer In progress
HList & HMaps/Record types In progress
Effects Considered
…and many more, check the overview page for a comprehensive list

Talks on Dotty?

I have more questions!

That’s great! We have more details on the docs and please join our Gitter channel!