From bc9dc386625021fec517f2dbf0644ccafe1e32c2 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Mon, 5 Nov 2018 03:00:04 +0800 Subject: WIP migrating over from `ammonite.ops` to `os` module. __.compile works, haven't run tests yet --- .../mill/scalanativelib/ScalaNativeModule.scala | 3 +-- .../mill/scalanativelib/ScalaNativeWorkerApi.scala | 23 +++++++++++----------- .../scalanativelib/HelloNativeWorldTests.scala | 15 +++++++------- .../worker/ScalaNativeWorkerImpl.scala | 19 +++++++++--------- 4 files changed, 28 insertions(+), 32 deletions(-) (limited to 'scalanativelib') diff --git a/scalanativelib/src/mill/scalanativelib/ScalaNativeModule.scala b/scalanativelib/src/mill/scalanativelib/ScalaNativeModule.scala index c8d9abda..d8a282de 100644 --- a/scalanativelib/src/mill/scalanativelib/ScalaNativeModule.scala +++ b/scalanativelib/src/mill/scalanativelib/ScalaNativeModule.scala @@ -3,7 +3,6 @@ package scalanativelib import java.net.URLClassLoader -import ammonite.ops.Path import coursier.Cache import coursier.maven.MavenRepository import mill.define.{Target, Task} @@ -71,7 +70,7 @@ trait ScalaNativeModule extends ScalaModule { outer => val workerKey = "MILL_SCALANATIVE_WORKER_" + scalaNativeBinaryVersion().replace('.', '_').replace('-', '_') val workerPath = sys.props(workerKey) if (workerPath != null) - Result.Success(Agg(workerPath.split(',').map(p => PathRef(Path(p), quick = true)): _*)) + Result.Success(Agg(workerPath.split(',').map(p => PathRef(os.Path(p), quick = true)): _*)) else Lib.resolveDependencies( Seq(Cache.ivy2Local, MavenRepository("https://repo1.maven.org/maven2")), diff --git a/scalanativelib/src/mill/scalanativelib/ScalaNativeWorkerApi.scala b/scalanativelib/src/mill/scalanativelib/ScalaNativeWorkerApi.scala index 05c3f7d7..be834e89 100644 --- a/scalanativelib/src/mill/scalanativelib/ScalaNativeWorkerApi.scala +++ b/scalanativelib/src/mill/scalanativelib/ScalaNativeWorkerApi.scala @@ -3,7 +3,6 @@ package mill.scalanativelib import java.io.File import java.net.URLClassLoader -import ammonite.ops.Path import mill.define.{Discover, Worker} import mill.{Agg, T} import sbt.testing.Framework @@ -12,8 +11,8 @@ import sbt.testing.Framework class ScalaNativeWorker { private var scalaInstanceCache = Option.empty[(Long, ScalaNativeWorkerApi)] - def impl(toolsClasspath: Agg[Path]): ScalaNativeWorkerApi = { - val classloaderSig = toolsClasspath.map(p => p.toString().hashCode + p.mtime.toMillis).sum + def impl(toolsClasspath: Agg[os.Path]): ScalaNativeWorkerApi = { + val classloaderSig = toolsClasspath.map(p => p.toString().hashCode + os.mtime(p)).sum scalaInstanceCache match { case Some((sig, bridge)) if sig == classloaderSig => bridge case _ => @@ -44,18 +43,18 @@ class ScalaNativeWorker { case class NativeConfig(config: Any) trait ScalaNativeWorkerApi { - def discoverClang: Path - def discoverClangPP: Path - def discoverTarget(clang: Path, workDir: Path): String + def discoverClang: os.Path + def discoverClangPP: os.Path + def discoverTarget(clang: os.Path, workDir: os.Path): String def discoverCompileOptions: Seq[String] def discoverLinkingOptions: Seq[String] - def config(nativeLibJar: Path, + def config(nativeLibJar: os.Path, mainClass: String, - classpath: Seq[Path], - nativeWorkdir: Path, - nativeClang: Path, - nativeClangPP: Path, + classpath: Seq[os.Path], + nativeWorkdir: os.Path, + nativeClang: os.Path, + nativeClangPP: os.Path, nativeTarget: String, nativeCompileOptions: Seq[String], nativeLinkingOptions: Seq[String], @@ -65,7 +64,7 @@ trait ScalaNativeWorkerApi { logLevel: NativeLogLevel): NativeConfig def defaultGarbageCollector: String - def nativeLink(nativeConfig: NativeConfig, outPath: Path): Path + def nativeLink(nativeConfig: NativeConfig, outPath: os.Path): os.Path def newScalaNativeFrameWork(framework: Framework, id: Int, testBinary: File, logLevel: NativeLogLevel, envVars: Map[String, String]): Framework diff --git a/scalanativelib/test/src/mill/scalanativelib/HelloNativeWorldTests.scala b/scalanativelib/test/src/mill/scalanativelib/HelloNativeWorldTests.scala index 4c67b98f..37fbfc80 100644 --- a/scalanativelib/test/src/mill/scalanativelib/HelloNativeWorldTests.scala +++ b/scalanativelib/test/src/mill/scalanativelib/HelloNativeWorldTests.scala @@ -2,7 +2,6 @@ package mill.scalanativelib import java.util.jar.JarFile -import ammonite.ops._ import mill._ import mill.define.Discover import mill.eval.{Evaluator, Result} @@ -73,7 +72,7 @@ object HelloNativeWorldTests extends TestSuite { override lazy val millDiscover = Discover[this.type] } - val millSourcePath = pwd / 'scalanativelib / 'test / 'resources / "hello-native-world" + val millSourcePath = os.pwd / 'scalanativelib / 'test / 'resources / "hello-native-world" val helloWorldEvaluator = TestEvaluator.static(HelloNativeWorld) @@ -90,7 +89,7 @@ object HelloNativeWorldTests extends TestSuite { helloWorldEvaluator(HelloNativeWorld.helloNativeWorld(scalaVersion, scalaNativeVersion, mode).compile) val outPath = result.classes.path - val outputFiles = ls.rec(outPath).filter(_.isFile) + val outputFiles = os.walk(outPath).filter(os.isFile) val expectedClassfiles = compileClassfiles(outPath / 'hello) assert( outputFiles.toSet == expectedClassfiles, @@ -185,7 +184,7 @@ object HelloNativeWorldTests extends TestSuite { helloWorldEvaluator.outPath, task.ctx.segments ) - val log = read(paths.log) + val log = os.read(paths.log) assert( evalCount > 0, log.contains("Scala Native") @@ -198,7 +197,7 @@ object HelloNativeWorldTests extends TestSuite { } } - def compileClassfiles(parentDir: Path) = Set( + def compileClassfiles(parentDir: os.Path) = Set( parentDir / "ArgsParser$.class", parentDir / "ArgsParser$.nir", parentDir / "ArgsParser.class", @@ -210,8 +209,8 @@ object HelloNativeWorldTests extends TestSuite { ) def prepareWorkspace(): Unit = { - rm(workspacePath) - mkdir(workspacePath / up) - cp(millSourcePath, workspacePath) + os.remove.all(workspacePath) + os.makeDir.all(workspacePath / os.up) + os.copy(millSourcePath, workspacePath) } } diff --git a/scalanativelib/worker/0.3/src/mill/scalanativelib/worker/ScalaNativeWorkerImpl.scala b/scalanativelib/worker/0.3/src/mill/scalanativelib/worker/ScalaNativeWorkerImpl.scala index 7e93fbd4..8c24a39e 100644 --- a/scalanativelib/worker/0.3/src/mill/scalanativelib/worker/ScalaNativeWorkerImpl.scala +++ b/scalanativelib/worker/0.3/src/mill/scalanativelib/worker/ScalaNativeWorkerImpl.scala @@ -4,7 +4,6 @@ import java.io.File import java.lang.System.{err, out} import scala.scalanative.build.{Build, Config, Discover, GC, Logger, Mode} -import ammonite.ops.Path import mill.scalanativelib.{NativeConfig, NativeLogLevel, ReleaseMode} import sbt.testing.Framework @@ -19,19 +18,19 @@ class ScalaNativeWorkerImpl extends mill.scalanativelib.ScalaNativeWorkerApi { warnFn = msg => if (level >= NativeLogLevel.Warn) out.println(msg), errorFn = msg => if (level >= NativeLogLevel.Error) err.println(msg)) - def discoverClang: Path = Path(Discover.clang()) - def discoverClangPP: Path = Path(Discover.clangpp()) - def discoverTarget(clang: Path, workdir: Path): String = Discover.targetTriple(clang.toNIO, workdir.toNIO) + def discoverClang: os.Path = os.Path(Discover.clang()) + def discoverClangPP: os.Path = os.Path(Discover.clangpp()) + def discoverTarget(clang: os.Path, workdir: os.Path): String = Discover.targetTriple(clang.toNIO, workdir.toNIO) def discoverCompileOptions: Seq[String] = Discover.compileOptions() def discoverLinkingOptions: Seq[String] = Discover.linkingOptions() def defaultGarbageCollector: String = GC.default.name - def config(nativeLibJar: Path, + def config(nativeLibJar: os.Path, mainClass: String, - classpath: Seq[Path], - nativeWorkdir: Path, - nativeClang: Path, - nativeClangPP: Path, + classpath: Seq[os.Path], + nativeWorkdir: os.Path, + nativeClang: os.Path, + nativeClangPP: os.Path, nativeTarget: String, nativeCompileOptions: Seq[String], nativeLinkingOptions: Seq[String], @@ -60,7 +59,7 @@ class ScalaNativeWorkerImpl extends mill.scalanativelib.ScalaNativeWorkerApi { NativeConfig(config) } - def nativeLink(nativeConfig: NativeConfig, outPath: Path): Path = { + def nativeLink(nativeConfig: NativeConfig, outPath: os.Path): os.Path = { val config = nativeConfig.config.asInstanceOf[Config] Build.build(config, outPath.toNIO) outPath -- cgit v1.2.3