Dear all,
Today I’m stepping down as the maintainer of scalamacros/paradise.
Almost five years ago, when I started the project, my goal was to push the boundaries of what’s possible in Scala by experimenting with a new flavor of macros - macro annotations.
In order to reduce the strain on the official Scala compiler, I chose to implement macro annotations in a compiler plugin instead of pushing for merging the experimental functionality into scala/scala right away.
This decision allowed early adopters to use macro annotations right away, but it also required me to personally shoulder the costs of continuously updating the compiler plugin to new versions of Scala.
When I joined Twitter in November 2016, macros stopped being my day job. I took on many additional responsibilities that include participation in and maintenance of:
- The tooling aspect of Scalameta - the library that was created to provide a better macro system for Scala, now refocused to provide a foundation for developer tools.
- SemanticDB - a data model for semantic information about programs in Scala and other languages.
- Rsc - an experimental Scala compiler focused on compilation speed.
- More recently, LSP-WG - a Language Server Protocol working group.
Recognizing that I’m getting less and less time to work on macros, in September 2017, I stepped down from my role as the maintainer of Scala macros. Today, it’s time to do the same for Paradise.
I would like to thank all the users and contributors of Scala macros in general and Macro Paradise in particular. It was an honor to serve the Scala community, and I had a lot of fun together with you all.
My last order of business in Paradise will be releasing the plugin for the recently staged Scala 2.12.5. That will be done today in PDT.
Cheers,
Eugene
Resolving names of annotations that themselves add more names to the surrounding scope is not an easy thing to spec, implement or optimize.