Skip to content

Commit 65d916c

Browse files
committed
[query] Use SourcePos for implicit timing context
1 parent ad21862 commit 65d916c

File tree

10 files changed

+18
-24
lines changed

10 files changed

+18
-24
lines changed

hail/src/main/scala/is/hail/HailContext.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import org.apache.spark.executor.InputMetrics
1919
import org.apache.spark.rdd.RDD
2020
import org.json4s.Extraction
2121
import org.json4s.jackson.JsonMethods
22-
import sourcecode.Enclosing
2322

2423
case class FilePartition(index: Int, file: String) extends Partition
2524

@@ -42,7 +41,7 @@ object HailContext {
4241

4342
def backend: Backend = get.backend
4443

45-
def sparkBackend(implicit E: Enclosing): SparkBackend = get.backend.asSpark
44+
def sparkBackend(implicit E: SourcePos): SparkBackend = get.backend.asSpark
4645

4746
def configureLogging(logFile: String, quiet: Boolean, append: Boolean): Unit = {
4847
org.apache.log4j.helpers.LogLog.setInternalDebugging(true)

hail/src/main/scala/is/hail/backend/Backend.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,13 @@ import is.hail.io.fs.FS
99
import is.hail.types.RTable
1010
import is.hail.types.encoded.EType
1111
import is.hail.types.physical.PTuple
12-
import is.hail.utils.fatal
12+
import is.hail.utils.{fatal, SourcePos}
1313

1414
import scala.reflect.ClassTag
1515

1616
import java.io.{Closeable, OutputStream}
1717

1818
import com.fasterxml.jackson.core.StreamReadConstraints
19-
import sourcecode.Enclosing
2019

2120
object Backend {
2221

@@ -85,7 +84,7 @@ abstract class Backend extends Closeable {
8584

8685
def close(): Unit
8786

88-
def asSpark(implicit E: Enclosing): SparkBackend =
87+
def asSpark(implicit E: SourcePos): SparkBackend =
8988
fatal(s"${getClass.getSimpleName}: ${E.value} requires SparkBackend")
9089

9190
def lowerDistributedSort(

hail/src/main/scala/is/hail/backend/ExecuteContext.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ import scala.collection.mutable
1717
import java.io._
1818
import java.security.SecureRandom
1919

20-
import sourcecode.Enclosing
21-
2220
trait TempFileManager extends AutoCloseable {
2321
def newTmpPath(tmpdir: String, prefix: String, extension: String = null): String
2422
}
@@ -150,7 +148,7 @@ class ExecuteContext(
150148

151149
def scopedExecution[T](
152150
f: (HailClassLoader, FS, HailTaskContext, Region) => T
153-
)(implicit E: Enclosing
151+
)(implicit E: SourcePos
154152
): T =
155153
using(new LocalTaskContext(0, 0)) { tc =>
156154
time {
@@ -176,7 +174,7 @@ class ExecuteContext(
176174
taskContext.close()
177175
}
178176

179-
def time[A](block: => A)(implicit E: Enclosing): A =
177+
def time[A](block: => A)(implicit E: SourcePos): A =
180178
timer.time(E.value)(block)
181179

182180
def local[A](

hail/src/main/scala/is/hail/backend/api/Py4JBackendApi.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ import org.apache.spark.sql.DataFrame
4242
import org.json4s
4343
import org.json4s._
4444
import org.json4s.jackson.{JsonMethods, Serialization}
45-
import sourcecode.Enclosing
4645

4746
final class Py4JBackendApi(backend: Backend) extends Closeable with ErrorHandling {
4847

@@ -298,7 +297,7 @@ final class Py4JBackendApi(backend: Backend) extends Closeable with ErrorHandlin
298297
selfContainedExecution: Boolean = true
299298
)(
300299
f: ExecuteContext => T
301-
)(implicit E: Enclosing
300+
)(implicit E: SourcePos
302301
): (T, Timings) =
303302
ExecutionTimer.time { timer =>
304303
ExecuteContext.scoped(

hail/src/main/scala/is/hail/backend/spark/SparkBackend.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import org.apache.spark._
3030
import org.apache.spark.broadcast.Broadcast
3131
import org.apache.spark.rdd.RDD
3232
import org.apache.spark.sql.SparkSession
33-
import sourcecode.Enclosing
3433

3534
class SparkBroadcastValue[T](bc: Broadcast[T]) extends BroadcastValue[T] with Serializable {
3635
def value: T = bc.value
@@ -71,7 +70,7 @@ object SparkBackend {
7170

7271
private var theSparkBackend: SparkBackend = _
7372

74-
def sparkContext(implicit E: Enclosing): SparkContext = HailContext.sparkBackend.sc
73+
def sparkContext(implicit E: SourcePos): SparkContext = HailContext.sparkBackend.sc
7574

7675
def checkSparkCompatibility(jarVersion: String, sparkVersion: String): Unit = {
7776
def majorMinor(version: String): String = version.split("\\.", 3).take(2).mkString(".")
@@ -352,7 +351,7 @@ class SparkBackend(val sc: SparkContext) extends Backend {
352351

353352
def defaultParallelism: Int = sc.defaultParallelism
354353

355-
override def asSpark(implicit E: Enclosing): SparkBackend = this
354+
override def asSpark(implicit E: SourcePos): SparkBackend = this
356355

357356
def close(): Unit =
358357
SparkBackend.stop()

hail/src/main/scala/is/hail/expr/ir/Compile.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ import is.hail.utils._
1717

1818
import java.io.PrintWriter
1919

20-
import sourcecode.Enclosing
21-
2220
case class CodeCacheKey(
2321
aggSigs: IndexedSeq[AggStateSig],
2422
args: Seq[(Name, EmitParamType)],
@@ -89,7 +87,7 @@ object compile {
8987
optimize: Boolean,
9088
print: Option[PrintWriter],
9189
)(implicit
92-
E: Enclosing,
90+
E: SourcePos,
9391
N: sourcecode.Name,
9492
): (Option[SingleCodeType], (HailClassLoader, FS, HailTaskContext, Region) => F with Mixin) =
9593
ctx.time {
@@ -131,7 +129,7 @@ object compile {
131129
CompiledFunction(rt, fb.resultWithIndex(print))
132130
},
133131
).asInstanceOf[CompiledFunction[F with Mixin]].tuple
134-
}
132+
}(E)
135133
}
136134

137135
object CompileIterator {

hail/src/main/scala/is/hail/expr/ir/lowering/IRState.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ import is.hail.expr.ir.{
55
BaseIR, IRTraversal, RelationalLet, RelationalRef, TableKeyBy, TableKeyByAndAggregate,
66
TableOrderBy,
77
}
8+
import is.hail.utils.SourcePos
89

9-
abstract class IRState(implicit E: sourcecode.Enclosing) {
10+
abstract class IRState(implicit E: SourcePos) {
1011
protected val rules: Array[Rule]
1112

1213
final def verify(ctx: ExecuteContext, ir: BaseIR): Unit =
@@ -19,7 +20,7 @@ abstract class IRState(implicit E: sourcecode.Enclosing) {
1920
}
2021
}
2122

22-
def +(other: IRState)(implicit E: sourcecode.Enclosing): IRState = {
23+
def +(other: IRState)(implicit E: SourcePos): IRState = {
2324
val newRules = rules ++ other.rules
2425
new IRState()(E) {
2526
val rules: Array[Rule] = newRules

hail/src/main/scala/is/hail/expr/ir/lowering/LoweringPass.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ final class IrMetadata() {
2323
}
2424
}
2525

26-
abstract class LoweringPass(implicit E: sourcecode.Enclosing) {
26+
abstract class LoweringPass(implicit E: SourcePos) {
2727
val before: IRState
2828
val after: IRState
2929
val context: String

hail/src/main/scala/is/hail/utils/ExecutionTimer.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,18 @@ import scala.collection.mutable
66

77
import org.json4s.{JArray, JString, JValue}
88
import org.json4s.JsonAST.JLong
9-
import sourcecode.Enclosing
109

1110
object ExecutionTimer {
1211

13-
def time[T](f: ExecutionTimer => T)(implicit E: Enclosing): (T, Timings) = {
12+
def time[T](f: ExecutionTimer => T)(implicit E: SourcePos): (T, Timings) = {
1413
val timer = new ExecutionTimer(E.value)
1514
val result = f(timer)
1615
timer.finish()
1716
timer.logInfo()
1817
(result, timer.result)
1918
}
2019

21-
def logTime[T](f: ExecutionTimer => T)(implicit E: Enclosing): T = {
20+
def logTime[T](f: ExecutionTimer => T)(implicit E: SourcePos): T = {
2221
val (result, _) = time[T](f)
2322
result
2423
}

hail/src/main/scala/is/hail/utils/package.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,6 +1075,8 @@ package object utils
10751075

10761076
implicit def evalLazy[A](f: Lazy[A]): A =
10771077
f()
1078+
1079+
type SourcePos = sourcecode.FullName
10781080
}
10791081

10801082
class CancellingExecutorService(delegate: ExecutorService) extends AbstractExecutorService {

0 commit comments

Comments
 (0)