apps
apps copied to clipboard
scalac:3.x does not support -print-tasty flag
The official GitHub hosted Scala 3 scalac script for versions 3.0.0 and higher scans the flags to pick which main class to run, for example:
scalac -print-tastyis meant to rundotty.tools.dotc.config.TastyPrinter,scalac -decompileis meant to rundotty.tools.dotc.decompiler.Main,- by default run
dotty.tools.dotc.Main.
This means that the scalac bootstrap launcher installed by cs does not have feature parity as it always runs dotty.tools.dotc.Main.
this impacts the doc page at https://docs.scala-lang.org/scala3/guides/tasty-overview.html#what-is-tasty which recommends to use
$ scalac -print-tasty hello.tasty
$ scalac -decompile hello.tasty
So the solutions are either
- to publish somewhere a jar with a main class that replicates the
scalacscript - to bundle the original bash/bat scripts for the 3.x series. This requires
versionOverridesto support using prebuilt for one version, and jvm launcher for another
another mitigation is to add the tasty-printer main class to apps
I think version 1 is probably the best solution - e.g. it is useful to use cs to launch nightly releases, so I opened https://github.com/lampepfl/dotty/issues/15173 - however this would mean scalac is still not feature complete for all previous scala 3 versions. Perhaps that is ok?
I guess fixing both - have the main class from dotty handle the argument, and also installing the official script for former versions - is fine (even if the second fix takes a little longer than the first one).
~the only problem is if it is widespread to use coursier cli as the way for users to quickly test nightly releases of scala 3, which would not work as they are not released to GitHub - but scala-cli can fill that gap :/~
Edit: yes actually I see it is not useful probably to test nighlies for old releases :)