Hello,
We just had a SIP meeting where we discussed the action plan for Scala CLI to become the default scala
command. Here is the outcome of the discussion, with links to the corresponding issues or discussions in the scala-cli repository.
- Users should ultimately have only one tool on their machine. They will still be able to use the “restricted” features via the
--power
runner argument, so there is no need to have bothscala
andscala-cli
. Related discussion: #351. - The documentation should be updated to reflect that change of perspective: instead of presenting
scala
as a subset ofscala-cli
, it would presentscala --power
as a way to get extra features (with no stability guarantees) overscala
. This means that the website should primarily document the stable features, and then have extra sections to cover the--power
features. Related issue: #1700. - The fact that the new runner requires a special
shebang
command to be used in scripts is an annoying incompatibility with the current runner. Would it be possible to fix it (ie, to remove the need to useshebang
)? Related issue: #603. - The fact that the new runner differentiates “scripts” from “programs” based on their file extension is an incompatibility with the current runner, and it is also added complexity for the users (who have to reason about
.sc
vs.scala
files). Would it be possible to follow the same approach as with the current Scala 2 runner, which is to fall back to the script mode if there is no “main method” defined in the program? Related discussion #1668. - As a by-product, solving the above issue would also solve the current impossibility of defining a script with no file extension. Related issue: #466.
- There should be a mechanism to ensure that any “option” that can be supplied via a command-line argument can also be consistently supplied via a “using directive”. There are several possible strategies here, which are discussed in #1524.