scala-cli icon indicating copy to clipboard operation
scala-cli copied to clipboard

Js split style "SmallModulesFor" doesn't work in pure JVM mode

Open alexarchambault opened this issue 2 years ago • 0 comments

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

alexarchambault avatar Jul 15 '22 15:07 alexarchambault