diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 31b4e7c7a..3c546710c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -100,7 +100,7 @@ jobs: uses: graalvm/setup-graalvm@v1 if: runner.os == 'Windows' with: - version: '22.2.0' + version: '22.3.0' java-version: '17' components: 'native-image' diff --git a/bleep-cli/src/scala/bleep/Main.scala b/bleep-cli/src/scala/bleep/Main.scala index d86707374..4b4d0ccb4 100644 --- a/bleep-cli/src/scala/bleep/Main.scala +++ b/bleep-cli/src/scala/bleep/Main.scala @@ -15,9 +15,18 @@ import java.io.{BufferedWriter, PrintStream} import java.nio.file.{Path, Paths} import java.time.Instant import scala.concurrent.ExecutionContext -import scala.util.{Failure, Success, Try} +import scala.util.{Failure, Properties, Success, Try} object Main { + private def isGraalvmNativeImage: Boolean = + sys.props.contains("org.graalvm.nativeimage.imagecode") + + if (Properties.isWin && isGraalvmNativeImage) + // have to be initialized before running (new Argv0).get because Argv0SubstWindows uses csjniutils library + // The DLL loaded by LoadWindowsLibrary is statically linke/d in + // the Scala CLI native image, no need to manually load it. + coursier.jniutils.LoadWindowsLibrary.assumeInitialized() + val stringArgs: Opts[List[String]] = Opts.arguments[String]().orNone.map(args => args.fold(List.empty[String])(_.toList)) diff --git a/bleep.yaml b/bleep.yaml index 46136841f..f0dc236a4 100644 --- a/bleep.yaml +++ b/bleep.yaml @@ -1,13 +1,13 @@ $schema: https://raw.githubusercontent.com/oyvindberg/bleep/master/schema.json $version: 0.0.1-M18 jvm: - name: graalvm-java17:22.2.0 + name: graalvm-java17:22.3.0 projects: bleep-cli: dependencies: - com.lihaoyi::pprint:0.8.0 - com.monovore::decline:2.3.1 - - org.graalvm.nativeimage:svm:22.2.0 + - org.graalvm.nativeimage:svm:22.3.0 - org.scalameta:svm-subs:101.0.0 dependsOn: bleep-core extends: