This doc page is specific to Scala 3, and may cover new concepts not available in Scala 2. Unless otherwise stated, all the code examples in this page assume you are using Scala 3.
Let’s Talk About Scala 3 Series
Let’s Talk About Scala 3 is a series of short (around 15 min) talks about Scala 3. It covers a variety of themes like how to get started, how to take advantage of the new language features, or how to migrate from Scala 2.
Talks on Scala 3
-
(ScalaDays 2019, Lausanne) A Tour of Scala 3 by Martin Odersky
-
(ScalaDays 2016, Berlin) Scala’s Road Ahead by Martin Odersky [slides]
-
(JVMLS 2015) Compilers are Databases by Martin Odersky [slides]
-
(Scala World 2015) Dotty: Exploring the future of Scala by Dmitry Petrashko [slides]. Dmitry covers many of the new features that Dotty brings on the table such as Intersection and Union types, improved lazy val initialization and more. Dmitry also covers dotty internals and in particular the high-level of contextual abstractions of Dotty. You will get to become familiar with many core concepts such as
Denotations
, their evolution through (compilation) time, their transformations and more.
Deep Dive with Scala 3
-
(ScalaDays 2019, Lausanne) Metaprogramming in Dotty by Nicolas Stucki.
-
(ScalaDays 2019, Lausanne) Future-proofing Scala: the TASTY intermediate representation by Guillaume Martres.
-
(Mar 21, 2017) Dotty Internals 1: Trees & Symbols by Dmitry Petrashko [meeting notes]. This is a recorded meeting between EPFL and Waterloo, where we introduce first notions inside Dotty: Trees and Symbols.
-
(Mar 21, 2017) Dotty Internals 2: Types by Martin Odersky and Dmitry Petrashko. This is a recorded meeting between EPFL and Waterloo, where we introduce how types are represented inside Dotty.
-
(Jun 15, 2017) Dotty Internals 3: Denotations by Martin Odersky and Dmitry Petrashko. This is a recorded meeting between EPFL and Waterloo, where we introduce denotations in Dotty.
-
(JVM Language Summit) How do we make the Dotty compiler fast by Dmitry Petrashko. Dmitry Petrashko gives a high-level introduction on what was done to make Dotty .
-
(Typelevel Summit Oslo, May 2016) Dotty and types: the story so far by Guillaume Martres [slides]. Guillaume focused on some practical improvements to the type system that Dotty makes, like the new type parameter inference algorithm that is able to reason about the type safety of more situations than scalac.
-
(flatMap(Oslo) 2016) AutoSpecialization in Dotty by Dmitry Petrashko [slides]. The Dotty Linker analyses your program and its dependencies to apply a new specialization scheme. It builds on our experience from Specialization, Miniboxing and the Valhalla Project, and drastically reduces the size of the emitted bytecode. And, best of all, it’s always enabled, happens behind the scenes without annotations, and results in speedups in excess of 20x. Additionally, it “just works” on Scala collections.
-
(ScalaSphere 2016) Hacking on Dotty: A live demo by Guillaume Martres [slides]. Guillaume hacks on Dotty: a live demo during which he creates a simple compiler phase to trace method calls at run-time.
-
(Scala By the Bay 2016) Dotty: what is it and how it works by Guillaume Martres [slides]. Guillaume provides a high-level view of the compilation-pipeline of Dotty.
-
(ScalaDays 2015, Amsterdam) Making your Scala applications smaller and faster with the Dotty linker by Dmitry Petrashko [slides]. Dmitry introduces the call-graph analysis algorithm that Dotty implements and the performance benefits we can get in terms of number of methods, bytecode size, JVM code size and the number of objects allocated in the end.