Blog

  • Scala 3.0.1-RC2 – backports of critical bugfixes

    This post is a quick announcement of Scala 3.0.1-RC2. This is the second release candidate for 3.0.1. The reason for this release is that a regression with respect to 3.0.0 was introduced by PR #12519 which caused the compiler to fail where it shouldn't. We have fixed this regression in PR #12827 and backported it to 3.0.1. This is the main reason for having 3.0.1-RC2 before 3.0.1 which is due in one week.

  • Scala 3.0.1-RC1 – further stabilising the compiler

    Hello! We are happy to announce Scala 3.0.1-RC1 – the first release candidate in the post-3.0.0 era. With this release, we continue the work on making the compiler even more stable.

  • Scala 3.0.0-RC3 – bug fixes for 3.0.0 stable

    Hello! With this blog article, we would like to announce the release of Scala 3.0.0-RC3. Some critical bugs were discovered during the previous release cycle, whose fixes had to be included in 3.0.0 stable. Therefore, we are having RC3 to give the community time to test our fixes.

  • Scala 3.0.0-RC2 – getting ready for 3.0.0

    Hello! We are happy to announce Scala 3.0.0-RC2. With this release, we are getting ready for 3.0.0. The significance of it is to give the community the chance and time to test all the changes meant for 3.0.0 final. A lot of bug fixes found their way into this release to ensure stability for 3.0.0 – more than 250 PRs were merged after the 3.0.0-RC1 release and until today!

  • Scala 3.0.0-RC1 – first release candidate is here

    Greetings from the Scala 3 team! We are delighted to announce the first release candidate of the stable version of Scala 3 – Scala 3.0.0-RC1.

  • Scala 3.0.0-M3: developer's preview before RC1

    We are happy to announce the release of Scala 3.0.0-M3. This release is the Developer's Preview release. It is intended to contain all the features meant for RC1, which is tentatively planned for January 2021. The purpose of M3 is to give the larger community, beyond early adopters, a chance to try out all the features and give us feedback before sealing them in RC1.

  • Scala 3.0.0-M1 is here

    November 2020 brings an important milestone for Scala 3 – the release of Scala 3.0.0-M1. This milestone release is a precursor to the Scala 3.0.0 release candidate planned for the end of the year – which is as little as 6 weeks from now! Later on, the release candidate is planned to evolve into 3.0.0 stable release in February 2021.

  • Dotty becomes Scala 3

    This article is a heads-up for the upcoming change in the naming of Dotty artefacts (as published to Maven). Currently, the organization name is “ch.epfl.lamp” which will become “org.scala-lang”. The artefact names will be changed from “dotty-xxx” to “scala3-xxx”.

  • Announcing Dotty 0.27.0-RC1 - ScalaJS, performance, stability

    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.

  • Announcing Dotty 0.26.0-RC1 - unified extension methods and more

    Hello! We are excited to announce 0.26.0-RC1 of Dotty. In this version, we have improved the extension methods – their syntax is now more uniform. We have also implemented local selectable instances and have done a bunch of improvements to the compiler and the language API. Otherwise, we are focusing our efforts on reducing the issue count on the issue tracker, boosting performance and improving the stability of the compiler in other ways.

  • Announcing Dotty 0.25.0-RC2 - speed-up of givens and change in the tuple API

    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.

  • Announcing Dotty 0.24.0-RC1 - 2.13.2 standard library, better error messages and more

    Hello! We are excited to announce 0.24.0-RC1 of Dotty. In this version, we have updated the standard library to 2.13.2. Also, we have made some work to make error messages more user-friendly and a bunch of other polishings to the language.

  • Announcing Dotty 0.23.0-RC1 - safe initialization checks, type-level bitwise operations and more

    Hello! We are excited to announce 0.23.0-RC1 of Dotty. This version brings safe initialization checks, minor syntactic changes related to the context parameters, type-level bitwise operations and improvements of the metaprogramming capabilities.

  • Announcing Dotty 0.22.0-RC1 - syntactic enhancements, type-level arithmetic and more

    Hello! We are excited to announce 0.22.0-RC1 of Dotty. This version brings syntactic enhancements for extension methods and context parameters, as well as the kind projector syntax. Other notable changes include type-level arithmetic, changes to the inline parameters semantics and suggestions on missing context parameters.

  • Announcing Dotty 0.21.0-RC1 - explicit nulls, new syntax for `match` and conditional givens, and more

    Greetings and we wish you Merry Christmas 🎄! We are excited to announce 0.21.0-RC1 of Dotty. In this version we add support for non-nullable reference types, supported by flow-sensitive analysis. We present new syntax for given extensions, matches and pattern matching over quotes. We are also happy to announce that SemanticDB generation is now supported within the compiler, this will eventually enable Metals to support Dotty! And last but not least ... we are happy to announce that we are now feature complete!

  • Announcing Dotty 0.20.0-RC1 – `with` starting indentation blocks, inline given specializations and more

    Greetings! We are excited to announce the 20th release of Dotty. This release brings a bunch of improvements to the language, such as with keyword starting an indentation block, normal parameters after given parameters, inline givens specialization and more.

  • Announcing Dotty 0.19.0-RC1 – further refinements of the syntax and the migration to 2.13.1 standard library

    Greetings! With this post, we are proud to announce the 19th release of Dotty. This release features further changes to the syntax following the feedback from the community and further discussion. Another important change is the migration to the 2.13.1 standard library.

  • Announcing Dotty 0.18.1-RC1 – switch to the 2.13 standard library, indentation-based syntax and other experiments

    Greetings! With this post, we are proud to announce the 18th release of Dotty. With this release, we have switched to the 2.13 standard library (which is why the patch version of Dotty is now 1)🎉. We are also conducting more experiments with the language syntax which will hopefully result in a better, cleaner way to write Scala programs.

  • Announcing Dotty 0.17.0-RC1 – new implicit scoping rules and more

    Greetings! With this post, we are proud to announce the 17th release of Dotty. With this release, we are making steady progress on the metaprogramming capabilities of Scala 3. Also, implicit scoping rules have seen a rework and a bunch of organizational changes took place.

  • Announcing Dotty 0.16.0-RC3 – the Scala Days 2019 Release

    Hello again! Today, we are excited to announce the 16th release of Dotty. The development of Dotty continues according to our schedule but today, Tuesday June the 11th, we are electrified as it is the first day of Scala Days 2019 which marks the 10th anniversary of Scala Days. With this release we are getting closer to the envelope of the new features that Dotty plans to offer.

  • Announcing Dotty 0.15.0-RC1 – the fully bootstrapped compiler

    Hi! We are very excited to announce the 15th release of Dotty. The most exciting thing in this release is the full bootstrap for Dotty introduced by PR #5923🎉😍. This means that we now always compile Dotty with Dotty itself, hence we can use use all the new features in the compiler code base.

  • Announcing Dotty 0.14.0-RC1 with export, immutable arrays, creator applications and more

    Hello! This is the 14th release of Dotty. Some of the most interesting changes in this release include the new export, the dual of import, feature, an immutable array type and the creator applications syntax.

  • Announcing Dotty 0.13.0-RC1 with Spark support, top level definitions and redesigned implicits

    Hello hello! This is the second release for 2019. Spark, top level definitions and redesigned implicits ✨🎊🎉 are the most important inclusions in this release and you will understand why we are super excited, in a bit!

  • Announcing Dotty 0.12.0-RC1

    Happy New Year to all with the first release of Dotty for 2019! ✨🎊🎉

  • Announcing Dotty 0.11.0-RC1

    Today we are excited to release Dotty version 0.11.0-RC1. This release serves as a technology preview that demonstrates new language features and the compiler supporting them.

  • Announcing Dotty 0.10.0-RC1

    After a long summer break, we are excited to release Dotty version 0.10.0-RC1. This release serves as a technology preview that demonstrates new language features and the compiler supporting them.

  • Announcing Dotty 0.9.0-RC1

    Today, we are excited to release Dotty version 0.9.0-RC1. This release serves as a technology preview that demonstrates new language features and the compiler supporting them.

  • Announcing Dotty 0.7.0 and 0.8.0-RC1

    Today, we are excited to release Dotty versions 0.7.0 and 0.8.0-RC1. These releases serve as a technology preview that demonstrates new language features and the compiler supporting them.

  • Announcing Dotty 0.6.0 and 0.7.0-RC1

    Today, we are excited to release Dotty versions 0.6.0 and 0.7.0-RC1. These releases serve as a technology preview that demonstrates new language features and the compiler supporting them.

  • Announcing Dotty 0.5.0-RC1

    Today, we are excited to release Dotty version 0.5.0-RC1. This release serves as a technology preview that demonstrates new language features and the compiler supporting them.

  • Announcing Dotty 0.4.0-RC1

    Today, we are excited to release Dotty version 0.4.0-RC1. This release serves as a technology preview that demonstrates new language features and the compiler supporting them.

  • Announcing Dotty 0.3.0-RC2

    Today, we are excited to release Dotty version 0.3.0-RC2. This release serves as a technology preview that demonstrates new language features and the compiler supporting them.

  • Announcing Dotty 0.2.0-RC1, with new optimizations, improved stability and IDE support

    Today, we are excited to release Dotty version 0.2.0-RC1. This release serves as a technology preview that demonstrates new language features and the compiler supporting them.

  • Announcing Dotty 0.1.2-RC1, a major step towards Scala 3

    Today, we are excited to release Dotty version 0.1.2-RC1. This release serves as a technology preview that demonstrates new language features and the compiler supporting them.

  • Implicit Function Types

    I just made the first pull request to add implicit function types to Scala. I am pretty excited about it, because - citing the explanation of the pull request - "This is the first step to bring contextual abstraction to Scala". What do I mean by this?

  • Multiversal Equality for Scala

    I have been working recently on making equality tests using == and != safer in Scala. This has led to a Language Enhancement Proposal which I summarize in this blog.

  • Scaling DOT to Scala - Soundness

    In my last blog post I introduced DOT, a minimal calculus that underlies much of Scala. DOT is much more than an academic exercise, because it gives us guidelines on how to design a sound type system for full Scala.

  • The Essence of Scala

    What do you get if you boil Scala on a slow flame and wait until all incidental features evaporate and only the most concentrated essence remains? After doing this for 8 years we believe we have the answer: it's DOT, the calculus of dependent object types, that underlies Scala.

  • New Year Resolutions

    For most of us, the change of the year is an occasion for thinking about what we missed doing last year and where we want to improve. I decided there are a couple of things where I would like to do better in 2016 than in 2015. The first is that I would like to do more blogging and writing in general. I have been pretty silent for most of the last year. This was mostly caused by the fact that I had been heads down to work on DOT, Scala's foundations, and Dotty, the new Scala compiler platform we are working on. It's been a lot of work, but we are finally getting good results. DOT now has a mechanized proof of type soundness and the Dotty compiler can now compile itself as well as large parts of Scala's standard library.

  • We got liftoff!

    The Dotty project is a platform to develop new technology for Scala tooling and to try out concepts of future Scala language versions. Its compiler is a new design intended to reflect the lessons we learned from work with the Scala compiler. A clean redesign today will let us iterate faster with new ideas in the future.