apps icon indicating copy to clipboard operation
apps copied to clipboard

scalac:3.x does not support -print-tasty flag

Open bishabosha opened this issue 3 years ago • 3 comments

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-tasty is meant to run dotty.tools.dotc.config.TastyPrinter,
  • scalac -decompile is meant to run dotty.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

  1. to publish somewhere a jar with a main class that replicates the scalac script
  2. to bundle the original bash/bat scripts for the 3.x series. This requires versionOverrides to support using prebuilt for one version, and jvm launcher for another

another mitigation is to add the tasty-printer main class to apps

bishabosha avatar Apr 01 '22 08:04 bishabosha

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?

bishabosha avatar May 12 '22 16:05 bishabosha

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).

alexarchambault avatar May 16 '22 09:05 alexarchambault

~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 :)

bishabosha avatar May 16 '22 10:05 bishabosha