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.
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?
I have been working recently on making equality tests using
!=safer in Scala. This has led to a Language Enhancement Proposal which I summarize in this blog.
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.
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.
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.
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.
Today we reached an important milestone: the Dotty compiler can compile itself, and the compiled compiler can act as a drop-in for the original one. This is what one calls a bootstrap.