Skip to content

Consider making Scala CLI backwards compatible with current scala commands #1310

@romanowski

Description

@romanowski

A list of incompatible options that makes a lot of sense:

  • -classpath does not work even if prefixed with -O (how to pass agrs in such case?)
  • -d conflicts with Scala CLI dependencies - do we really need to emit classes from REPL?
  • -color - we have it on by default if I am not mistaken
  • -encoding
  • -explain, -explain-types (-explaintypes from Scala 2)
  • -feature
  • -help - conflicts with our help
  • -language (-language:<features> from Scala 2)
  • -nowarn
  • -print-lines
  • -release (-target from Scala 2)
  • -source
  • -sourcepath and -sourceroot (-rootdir from Scala 2) but I have mixed feeling about those
  • -unchecked
  • @<file> - provide a file with arguments and options

A list of options that I can see some usage but proabaly are not critical (so we can just fallback to require -O prefix)

  • -old-syntax
  • -new-syntax
  • -no-indent
  • -from-tasty
  • -javabootclasspath, -bootclasspath (-nobootcp and -toolcp from Scala 2)- not sure if we can support both
  • -scalajs, -scalajs-genStaticForwardersForNonTopLevelObjects, -scalajs-mapSourceURI - I was under impression that REPL does not support Scala JS but even if so I think --js and related flags has superior UX
  • -uniqid, -verbose - debugging REPL is instead for powerusers and I think we can expect them to prefix these options with -O
  • -dependencyfile - not supported in Scala 3
  • -no-specialization- not supported in Scala 3
  • -opt:<optimizations>, -opt-inline-from:<patterns>, -opt-warnings:<warnings> - not supported in Scala 3
  • -print - not supported in Scala 3
  • -usemanifestcp - not supported in Scala 3

A list of options that I do not see a use case in REPL:

  • -indent - do not print indent based version of the provided code also when running
  • -print-tasty - do not print TASTY from provided code
  • -project-url
  • -rewrite - no effect also when running code from file
  • -semanticdb-target - does not seem to have any effect

A list of options I have no idea what they do:

  • -extdirs
  • -javaextdirs

Metadata

Metadata

Assignees

Labels

SIP-46All the issues related to SIP-46 to turn Scala CLI into the official scala runner command.

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions