You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$ mm A.scala B.scala
==>A.scala <==packagefooclassA==>B.scala <==packagebarclassBextends foo.A
$ scalac3 A.scala
$ scalac -2.13.4-Ytasty-reader B.scala
error: error while loading A, classfile'./foo/A.class' is broken
(classscala.tools.tasty.UnpickleException/TASTy signature has wrong version.
expected: 24.0found : 25.1)
B.scala:3:error: illegal inheritance;
self-typebar.B does not conform to foo.A's selftype foo.AclassBextends foo.A^2 errors
problem
I wasn't expecting 3.0.0-M2 to make the Tasty Reader functionality just shipped in 2.13.4 be unusable (@bishabosha's baby.)
What to do? What to do immediately for the last pre-releases of Scala 3 doesn't matter so much. But what's important are the releases after that: minor releases (3.1/3.2), patch releases (3.0.1/3.0.2), and any pre-releases those might have.
@sjrd gave some thought as to whether it would be possible to untangle the tasty reader from living inside the compiler, such that it can be released outside of Scala's release cadence. But largely it wasn't initially pursued because the requirements overreach what the plugin infrastructure allows for.
I (@dwijnand) think we might be able to manage this sufficiently well by making sure that any Scala 3 release that bumps the format (just minor releases, I think/hope) is preceded by a 2.13 release that can parse it. But @smarter had some resistance to such coupling.
Any more ideas or thoughts?
The text was updated successfully, but these errors were encountered:
Users have to add a plugin to their build, and remember to update it when a new release is out.
Users might feel that the support is less "official" and production-worthy if they have to enable a plugin (on the other hand, they're used to it if they use Scala.js)
The plugin can't easily be a part of the Scala 2 CI anymore (it would have to be built from source at least).
@bishabosha is it safe to assume that you'll submit a followup to scala/scala#9394 with 3.0.0-RC1 support, so we can release 2.13.5 not long after 3.0.0-RC1 comes out?
reproduction steps
using Scala 2.13.4 and 3.0.0-M2,
problem
I wasn't expecting 3.0.0-M2 to make the Tasty Reader functionality just shipped in 2.13.4 be unusable (@bishabosha's baby.)
notes
(Originally reported indirectly by @mpilquist.)
What to do? What to do immediately for the last pre-releases of Scala 3 doesn't matter so much. But what's important are the releases after that: minor releases (3.1/3.2), patch releases (3.0.1/3.0.2), and any pre-releases those might have.
@sjrd gave some thought as to whether it would be possible to untangle the tasty reader from living inside the compiler, such that it can be released outside of Scala's release cadence. But largely it wasn't initially pursued because the requirements overreach what the plugin infrastructure allows for.
I (@dwijnand) think we might be able to manage this sufficiently well by making sure that any Scala 3 release that bumps the format (just minor releases, I think/hope) is preceded by a 2.13 release that can parse it. But @smarter had some resistance to such coupling.
Any more ideas or thoughts?
The text was updated successfully, but these errors were encountered: