Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various cleanups, deprecations fixes, macro hygiene #1271

Merged
merged 1 commit into from
Apr 13, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Various cleanups, deprecations fixes, macro hygiene
lefou committed Apr 12, 2021
commit 76b11758167d72aaefb7a685070003f6a4a41175
3 changes: 1 addition & 2 deletions contrib/scoverage/src/ScoverageModule.scala
Original file line number Diff line number Diff line change
@@ -3,10 +3,9 @@ package contrib
package scoverage

import coursier.{MavenRepository, Repository}
import mill.api.Loose
import mill.api.{Loose,PathRef}
import mill.contrib.scoverage.api.ScoverageReportWorkerApi.ReportType
import mill.define.{Command, Persistent, Sources, Target, Task}
import mill.eval.PathRef
import mill.scalalib.{Dep, DepSyntax, JavaModule, Lib, ScalaModule}


Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ trait VersionFileModule extends Module {
writeVersionToFile(versionFile(), version())
}

def writeVersionToFile(versionFile: mill.eval.PathRef, version: Version) =
def writeVersionToFile(versionFile: mill.api.PathRef, version: Version) =
os.write.over(
versionFile.path,
version.toString
1 change: 0 additions & 1 deletion main/core/src/define/BaseModule.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package mill.define


object BaseModule{
case class Implicit(value: BaseModule)
}
3 changes: 2 additions & 1 deletion main/core/src/define/Caller.scala
Original file line number Diff line number Diff line change
@@ -2,6 +2,7 @@ package mill.define

import sourcecode.Compat.Context
import language.experimental.macros

case class Caller(value: Any)
object Caller {
def apply()(implicit c: Caller) = c.value
@@ -10,4 +11,4 @@ object Caller {
import c.universe._
q"new _root_.mill.define.Caller(this)"
}
}
}
1 change: 0 additions & 1 deletion main/core/src/define/Ctx.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package mill.define


import scala.annotation.implicitNotFound

sealed trait Segment{
2 changes: 2 additions & 0 deletions main/core/src/define/Overrides.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package mill.define

import scala.reflect.macros.blackbox.Context
import language.experimental.macros

case class Overrides(value: Int)
object Overrides{
def apply()(implicit c: Overrides) = c.value
9 changes: 7 additions & 2 deletions main/core/src/define/Task.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package mill.define

import mill.api.{Logger,PathRef,Result}
import mill.define.Applicative.Applyable
import mill.eval.{PathRef, Result}
import mill.util.EnclosingClass
import sourcecode.Compat.Context
import upickle.default.{ReadWriter => RW, Reader => R, Writer => W}
@@ -132,7 +132,7 @@ object Target extends TargetGenerated with Applicative.Applyer[Task, Task, Resul
mill.moduledefs.Cacher.impl0[Sources](c)(
reify(
new Sources(
Target.sequence(c.Expr[List[Task[PathRef]]](q"scala.List(..$wrapped)").splice),
Target.sequence(c.Expr[List[Task[PathRef]]](q"_root_.scala.List(..$wrapped)").splice),
ctx.splice
)
)
@@ -324,18 +324,21 @@ class Worker[+T](t: Task[T], ctx0: mill.define.Ctx) extends NamedTaskImpl[T](ctx
override def flushDest = false
override def asWorker = Some(this)
}

class Persistent[+T](t: Task[T],
ctx0: mill.define.Ctx,
readWrite: RW[_])
extends TargetImpl[T](t, ctx0, readWrite) {

override def flushDest = false
}

class Input[T](t: Task[T],
ctx0: mill.define.Ctx,
val readWrite: RW[_]) extends NamedTaskImpl[T](ctx0, t) with Target[T]{
override def sideHash = util.Random.nextInt()
}

class Sources(t: Task[Seq[PathRef]],
ctx0: mill.define.Ctx) extends Input[Seq[PathRef]](
t,
@@ -345,11 +348,13 @@ class Sources(t: Task[Seq[PathRef]],
upickle.default.SeqLikeWriter[Seq, PathRef]
)
)

class Source(t: Task[PathRef], ctx0: mill.define.Ctx) extends Input[PathRef](
t,
ctx0,
PathRef.jsonFormatter
)

object Task {

class Task0[T](t: T) extends Task[T]{
9 changes: 4 additions & 5 deletions main/core/src/eval/Evaluator.scala
Original file line number Diff line number Diff line change
@@ -5,17 +5,16 @@ import java.util.concurrent.atomic.{AtomicBoolean, AtomicInteger}

import ammonite.runtime.SpecialClassLoader
import mainargs.MainData

import scala.util.DynamicVariable

import mill.api.Result.{Aborted, OuterStack, Success}
import mill.api.Strict.Agg
import mill.api.{BuildProblemReporter, DummyTestReporter, Strict, TestReporter}
import mill.define.{Ctx => _, _}
import mill.util
import mill.util._

import scala.collection.JavaConverters._
import scala.collection.mutable
import scala.jdk.CollectionConverters._
import scala.util.control.NonFatal

case class Labelled[T](task: NamedTask[T],
@@ -271,7 +270,7 @@ case class Evaluator(
)

val sideHashes = scala.util.hashing.MurmurHash3.orderedHash(
group.toIterator.map(_.sideHash)
group.iterator.map(_.sideHash)
)

val inputsHash = externalInputsHash + sideHashes + classLoaderSignHash
@@ -547,7 +546,7 @@ case class Evaluator(
sortedGroups
.items()
.map { case (terminal, group) =>
terminal -> group.toSeq
terminal -> Seq.from(group)
.flatMap(_.inputs)
.filterNot(group.contains)
.distinct
2 changes: 1 addition & 1 deletion main/core/src/eval/Tarjans.scala
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@ import scala.collection.mutable
// Adapted from
// https://github.com/indy256/codelibrary/blob/c52247216258e84aac442a23273b7d8306ef757b/java/src/SCCTarjan.java
object Tarjans {
def apply(graph0: TraversableOnce[TraversableOnce[Int]]): Seq[Seq[Int]] = {
def apply(graph0: IterableOnce[IterableOnce[Int]]): Seq[Seq[Int]] = {
val graph = graph0.map(_.toArray).toArray
val n = graph.length
val visited = new Array[Boolean](n)
5 changes: 5 additions & 0 deletions main/core/src/eval/package.scala
Original file line number Diff line number Diff line change
@@ -2,11 +2,16 @@ package mill

package object eval {
// Backwards compatibility forwarders
@deprecated("Use mill.api.Result instead")
val Result = mill.api.Result
@deprecated("Use mill.api.Result instead")
type Result[+T] = mill.api.Result[T]

@deprecated("Use mill.api.PathRef instead")
val PathRef = mill.api.PathRef
@deprecated("Use mill.api.PathRef instead")
type PathRef = mill.api.PathRef

@deprecated("Use mill.api.Logger instead")
type Logger = mill.api.Logger
}
2 changes: 1 addition & 1 deletion main/src/MillMain.scala
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ package mill
import java.io.{InputStream, PrintStream}
import java.util.Locale

import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
import io.github.retronym.java9rtexport.Export
import mainargs.{Flag, Leftover, arg}
import mill.eval.Evaluator
4 changes: 3 additions & 1 deletion main/src/main/MainModule.scala
Original file line number Diff line number Diff line change
@@ -4,9 +4,11 @@ import java.util.concurrent.LinkedBlockingQueue

import mill.T
import mill.define.{NamedTask, Task}
import mill.eval.{Evaluator, PathRef, Result}
import mill.api.{PathRef, Result}
import mill.eval.Evaluator
import mill.util.{Ctx, PrintLogger, Watched}
import pprint.{Renderer, Truncated}

object MainModule{
def resolveTasks[T](evaluator: Evaluator, targets: Seq[String], multiSelect: Boolean)
(f: List[NamedTask[Any]] => T) = {
13 changes: 7 additions & 6 deletions main/src/main/MainRunner.scala
Original file line number Diff line number Diff line change
@@ -6,7 +6,8 @@ import ammonite.interp.Interpreter
import ammonite.compiler.iface.Preprocessor
import ammonite.util.Util.CodeSource
import ammonite.util._
import mill.eval.{Evaluator, PathRef}
import mill.eval.Evaluator
import mill.api.PathRef
import mill.util.PrintLogger

import scala.annotation.tailrec
@@ -183,17 +184,17 @@ class MainRunner(val config: ammonite.main.Config,
val ups = if (relative.ups > 0) Seq(s"up-${relative.ups}") else Seq()
val segs = Seq("foreign-modules") ++ ups ++ relative.segments
val segsList = segs.map(pprint.Util.literalize(_)).mkString(", ")
s"Some(mill.define.Segments.labels($segsList))"
s"Some(_root_.mill.define.Segments.labels($segsList))"
}
else "None"

val top = s"""
|package ${pkgName.head.encoded}
|package ${Util.encodeScalaSourcePath(pkgName.tail)}
|$imports
|import mill._
|import _root_.mill._
|object $wrapName
|extends mill.define.BaseModule(os.Path($literalPath), foreign0 = $foreign)(
|extends _root_.mill.define.BaseModule(os.Path($literalPath), foreign0 = $foreign)(
| implicitly, implicitly, implicitly, implicitly, mill.define.Caller(())
|)
|with $wrapName{
@@ -205,10 +206,10 @@ class MainRunner(val config: ammonite.main.Config,
| // doesn't get picked up during reflective child-module discovery
| def millSelf = Some(this)
|
| implicit lazy val millDiscover: mill.define.Discover[this.type] = mill.define.Discover[this.type]
| implicit lazy val millDiscover: _root_.mill.define.Discover[this.type] = _root_.mill.define.Discover[this.type]
|}
|
|sealed trait $wrapName extends mill.main.MainModule{
|sealed trait $wrapName extends _root_.mill.main.MainModule{
|""".stripMargin
val bottom = "\n}"

1 change: 1 addition & 0 deletions main/src/main/MainScopts.scala
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
package mill.main

import mill.eval.Evaluator

case class Tasks[T](value: Seq[mill.define.NamedTask[T]])
2 changes: 1 addition & 1 deletion main/src/main/MillServerMain.scala
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ package mill.main
import java.io._
import java.net.Socket
import mill.{BuildInfo, MillMain}
import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
import org.scalasbt.ipcsocket._
import mill.main.client._
import mill.eval.Evaluator
5 changes: 3 additions & 2 deletions main/src/main/RunScript.scala
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package mill.main

import java.nio.file.NoSuchFileException

import ammonite.interp.Interpreter
import ammonite.runtime.SpecialClassLoader
import ammonite.util.Util.CodeSource
import ammonite.util.{Name, Res, Util}
import mill.define
import mill.define._
import mill.eval.{Evaluator, PathRef, Result}
import mill.eval.Evaluator
import mill.util.{EitherOps, ParseArgs, PrintLogger, Watched}
import mill.api.Logger
import mill.api.{Logger, PathRef, Result}
import mill.api.Strict.Agg
import scala.collection.mutable
import scala.reflect.ClassTag
2 changes: 1 addition & 1 deletion main/src/main/VisualizeModule.scala
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ import coursier.core.Repository
import coursier.maven.MavenRepository
import mill.T
import mill.define.{Discover, ExternalModule}
import mill.eval.{PathRef, Result}
import mill.api.{PathRef, Result}

object VisualizeModule extends ExternalModule with VisualizeModule {
def repositories = Seq(
2 changes: 1 addition & 1 deletion main/src/modules/Assembly.scala
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ import java.util.jar.JarFile
import java.util.regex.Pattern
import mill.Agg
import os.Generator
import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
import scala.tools.nsc.io.Streamable

object Assembly {
3 changes: 1 addition & 2 deletions main/src/modules/Jvm.scala
Original file line number Diff line number Diff line change
@@ -10,9 +10,8 @@ import coursier.{Dependency, Repository, Resolution}
import coursier.util.{Gather, Task}
import java.util.Collections
import mill.main.client.InputPumper
import mill.eval.{PathRef, Result}
import mill.util.Ctx
import mill.api.IO
import mill.api.{IO,PathRef,Result}
import mill.api.Loose.Agg
import mill.modules.Assembly.{AppendEntry, WriteOnceEntry}
import scala.collection.mutable
2 changes: 0 additions & 2 deletions main/src/modules/Util.scala
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package mill.modules


import coursier.Repository
import mill.BuildInfo
import mill.api.{IO, PathRef}
import mill.util.Ctx
import mill.api.Loose


object Util {

private val LongMillProps = new java.util.Properties()
2 changes: 1 addition & 1 deletion scalajslib/src/ScalaJSModule.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package mill
package scalajslib

import mill.eval.{PathRef, Result}
import mill.api.{PathRef, Result}
import mill.scalalib.api.Util.isScala3
import mill.scalalib.Lib.resolveDependencies
import mill.scalalib.{DepSyntax, Lib, TestModule, TestRunner}
2 changes: 1 addition & 1 deletion scalalib/src/CoursierModule.scala
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ package mill.scalalib
import coursier.{Dependency, Repository, Resolve}
import mill.{Agg, T}
import mill.define.Task
import mill.eval.PathRef
import mill.api.PathRef

/**
* This module provides the capability to resolve (transitive) dependencies from (remote) repositories.
2 changes: 1 addition & 1 deletion scalalib/src/CrossModuleBase.scala
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ package mill.scalalib
import mill.T
import mill.define.Cross
import mill.define.Cross.Resolver
import mill.eval.PathRef
import mill.api.PathRef

object CrossModuleBase {
def scalaVersionPaths(scalaVersion: String, f: String => os.Path) = {
4 changes: 2 additions & 2 deletions scalalib/src/GenIdeaImpl.scala
Original file line number Diff line number Diff line change
@@ -10,9 +10,9 @@ import coursier.maven.Pom
import coursier.{LocalRepositories, Repositories, Repository}
import mill.api.Ctx.{Home, Log}
import mill.api.Strict.Agg
import mill.api.{Loose, Result, Strict}
import mill.api.{Loose, PathRef, Result, Strict}
import mill.define._
import mill.eval.{Evaluator, PathRef}
import mill.eval.Evaluator
import mill.modules.Util
import mill.scalalib.GenIdeaModule.{IdeaConfigFile, JavaFacet}
import mill.{BuildInfo, T, scalalib}
2 changes: 1 addition & 1 deletion scalalib/src/JavaModule.scala
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ package scalalib

import coursier.Repository
import mill.define.{Command, Sources, Target, Task, TaskModule}
import mill.eval.{PathRef, Result}
import mill.api.{PathRef, Result}
import mill.modules.{Assembly, Jvm}
import mill.modules.Jvm.{createAssembly, createJar}
import mill.scalalib.publish.Artifact
2 changes: 1 addition & 1 deletion scalalib/src/Lib.scala
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@ import ammonite.util.Util
import coursier.{Dependency, Fetch, Repository, Resolution}
import mill.scalalib.api.Util.isDotty
import mill.Agg
import mill.eval.{PathRef, Result}
import mill.api.{PathRef, Result}
import mill.modules.Jvm
import mill.api.Ctx
import sbt.testing._
2 changes: 1 addition & 1 deletion scalalib/src/ScalaModule.scala
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ package scalalib

import coursier.{Dependency, Repository}
import mill.define.{Command, Target, Task, TaskModule}
import mill.eval.{PathRef, Result}
import mill.api.{PathRef, Result}
import mill.modules.Jvm
import mill.modules.Jvm.createJar
import mill.scalalib.api.Util.{
2 changes: 1 addition & 1 deletion scalalib/test/src/ResolveDepsTests.scala
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ package mill.scalalib

import coursier.maven.MavenRepository
import mill.api.Result.{Failure, Success}
import mill.eval.{PathRef, Result}
import mill.api.{PathRef, Result}
import mill.api.Loose.Agg
import utest._