The CC Experiment
With Scala 3 released, most of the work happening in the Dotty repo has been focusing on small improvements, bug fixes, and suchlike — there hasn’t been much that I would call “Dotty news”.
But for those who are interested in the bleeding-edge experimental stuff, I call your attention to this post from Martin, starting up a new discussion category over there. (And may I say in passing, yay for the new Discussions feature in GitHub, which lets us talk about our code in the right place.)
That is opening conversation about a new
cc-experiment branch of the compiler, which is messing around with the notion of “captured references” — giving the type system the ability to talk about variables, as far as I can tell. I won’t claim to grok the implications yet, but it is following on from this recent paper that describes the underlying concepts. (I’m still working my way through that. Note that the relatively practical stuff starts on page 12, discussing use cases such as distinguishing pure vs impure operations, describing non-local returns, effects and so on. What makes this experiment interesting is that it could potentially help with a lot of known Interesting Research Problems.)
It’s not the first time folks have experimented with how to better-encapsulate scope in Scala, and it might come to nothing. But this seems like a particularly rigorous approach, and being able to discuss capabilities rigorously seems to be the direction things are heading in. So this one’s very intriguing — fingers crossed it goes somewhere useful.