scala-cli
scala-cli copied to clipboard
Js split style "SmallModulesFor" doesn't work in pure JVM mode
Version(s)
0.1.9
Describe the bug
"SmallModuleFor" module split style doesn't work when running the Scala.js linker on the JVM, rather than running native launchers of it. This is a problem on Linux / aarch64, where the linker is run on the JVM by default (for a lack of native one). Use of JVM for the linker can be forced with --js-cli-on-jvm
.
To Reproduce
$ cat Hello.scala
//> using jsModuleKind "es"
//> using jsModuleSplitStyleStr "smallmodulesfor"
//> using jsSmallModuleForPackage "test"
package test
case class Foo(bar: String)
object Hello extends App {
println(Foo("$message").bar)
}
$ scala-cli package -o Hello --js Hello.scala -f
Wrote /Users/alexandre/projects/scala-cli/tmp/Hello/main.js, run it with
node ./Hello/main.js
$ scala-cli package -o Hello --js Hello.scala -f --js-cli-on-jvm
Exception in thread "main" java.lang.IllegalArgumentException: SmallModuleFor style not supported for Scala.js < 1.10
at org.scalajs.cli.internal.ModuleSplitStyleParser.$anonfun$parse$1(ModuleSplitStyleParser.scala:17)
at scala.Option.getOrElse(Option.scala:201)
at org.scalajs.cli.internal.ModuleSplitStyleParser.parse(ModuleSplitStyleParser.scala:16)
at org.scalajs.cli.Scalajsld$ModuleSplitStyleRead$.moduleSplitStyleRead(Scalajsld.scala:80)
at org.scalajs.cli.Scalajsld$.$anonfun$main$1(Scalajsld.scala:212)
at scala.Option.foreach(Option.scala:437)
at org.scalajs.cli.Scalajsld$.main(Scalajsld.scala:205)
at org.scalajs.cli.Scalajsld.main(Scalajsld.scala)
[error] Error linking Scala.js