Skip to content

Commit

Permalink
Merge pull request #155 from tgodzik/updateForking
Browse files Browse the repository at this point in the history
Update fork to most recent changes
  • Loading branch information
tgodzik committed Sep 29, 2023
2 parents ef4ea5a + 2b48ccf commit 7b633eb
Show file tree
Hide file tree
Showing 33 changed files with 315 additions and 238 deletions.
4 changes: 2 additions & 2 deletions backend/src/main/scala/bloop/io/ParallelOps.scala
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ import java.nio.file.attribute.BasicFileAttributes
import java.util.concurrent.ConcurrentHashMap

import scala.concurrent.Promise
import scala.util.control.NonFatal

import bloop.logging.Logger
import bloop.task.Task

import monix.eval.{Task => MonixTask}
Expand All @@ -22,8 +24,6 @@ import monix.execution.cancelables.CompositeCancelable
import monix.reactive.Consumer
import monix.reactive.MulticastStrategy
import monix.reactive.Observable
import bloop.logging.Logger
import scala.util.control.NonFatal

object ParallelOps {

Expand Down
2 changes: 1 addition & 1 deletion backend/src/main/scala/bloop/task/Task.scala
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ sealed trait Task[+A] { self =>
}

final def doOnCancel(f: => Task[Unit]): Task[A] =
applyCancel(() => f.runAsync(monix.execution.Scheduler.Implicits.global))
applyCancel { () => f.runAsync(monix.execution.Scheduler.Implicits.global); () }

final def doOnFinish(f: Option[Throwable] => Task[Unit]): Task[A] =
self.materialize.flatMap { v =>
Expand Down
110 changes: 96 additions & 14 deletions backend/src/main/scala/bloop/tracing/BraveTracer.scala
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,100 @@ import brave.propagation.TraceContextOrSamplingFlags
import zipkin2.codec.SpanBytesEncoder.JSON_V1
import zipkin2.codec.SpanBytesEncoder.JSON_V2

final class BraveTracer private (
sealed trait BraveTracer {
def startNewChildTracer(name: String, tags: (String, String)*): BraveTracer

def trace[T](name: String, tags: (String, String)*)(
thunk: BraveTracer => T
): T

def traceVerbose[T](name: String, tags: (String, String)*)(
thunk: BraveTracer => T
): T

def traceTask[T](name: String, tags: (String, String)*)(
thunk: BraveTracer => Task[T]
): Task[T]

def traceTaskVerbose[T](name: String, tags: (String, String)*)(
thunk: BraveTracer => Task[T]
): Task[T]

def terminate(): Unit

def currentSpan: Option[Span]

def toIndependentTracer(
name: String,
traceProperties: TraceProperties,
tags: (String, String)*
): BraveTracer

}

object NoopTracer extends BraveTracer {

override def startNewChildTracer(name: String, tags: (String, String)*): BraveTracer = this

override def trace[T](name: String, tags: (String, String)*)(thunk: BraveTracer => T): T = thunk(
this
)

override def traceVerbose[T](name: String, tags: (String, String)*)(thunk: BraveTracer => T): T =
thunk(this)

override def traceTask[T](name: String, tags: (String, String)*)(
thunk: BraveTracer => Task[T]
): Task[T] = thunk(this)

override def traceTaskVerbose[T](name: String, tags: (String, String)*)(
thunk: BraveTracer => Task[T]
): Task[T] = thunk(this)

override def terminate(): Unit = ()

override def currentSpan: Option[Span] = None

def toIndependentTracer(
name: String,
traceProperties: TraceProperties,
tags: (String, String)*
): BraveTracer = this

}

object BraveTracer {

def apply(name: String, properties: TraceProperties, tags: (String, String)*): BraveTracer = {
BraveTracer(name, properties, None, tags: _*)
}

def apply(
name: String,
properties: TraceProperties,
ctx: Option[TraceContext],
tags: (String, String)*
): BraveTracer = {
if (properties.enabled) {
BraveTracerInternal(name, properties, ctx, tags: _*)
} else {
NoopTracer
}

}
}

final class BraveTracerInternal private (
tracer: Tracer,
val currentSpan: Span,
val _currentSpan: Span,
closeCurrentSpan: () => Unit,
properties: TraceProperties
) {
) extends BraveTracer {

def currentSpan = Some(_currentSpan)

def startNewChildTracer(name: String, tags: (String, String)*): BraveTracer = {
val span = tags.foldLeft(tracer.newChild(currentSpan.context).name(name)) {
val span = tags.foldLeft(tracer.newChild(_currentSpan.context).name(name)) {
case (span, (tagKey, tagValue)) => span.tag(tagKey, tagValue)
}

Expand All @@ -32,7 +118,7 @@ final class BraveTracer private (
span.finish()
}

new BraveTracer(tracer, span, closeHandler, properties)
new BraveTracerInternal(tracer, span, closeHandler, properties)
}

def trace[T](name: String, tags: (String, String)*)(
Expand Down Expand Up @@ -67,7 +153,7 @@ final class BraveTracer private (
try thunk(newTracer) // Don't catch and report errors in spans
catch {
case NonFatal(t) =>
newTracer.currentSpan.error(t)
newTracer.currentSpan.foreach(_.error(t))
throw t
} finally {
try newTracer.terminate()
Expand All @@ -91,7 +177,7 @@ final class BraveTracer private (
case None => Task.eval(newTracer.terminate())
case Some(value) =>
Task.eval {
newTracer.currentSpan.error(value)
newTracer.currentSpan.foreach(_.error(value))
newTracer.terminate()
}
}
Expand All @@ -116,10 +202,10 @@ final class BraveTracer private (
traceProperties: TraceProperties,
tags: (String, String)*
): BraveTracer =
BraveTracer(name, traceProperties, Some(currentSpan.context), tags: _*)
BraveTracer(name, traceProperties, Some(_currentSpan.context), tags: _*)
}

object BraveTracer {
object BraveTracerInternal {
import brave._
import zipkin2.reporter.AsyncReporter
import zipkin2.reporter.urlconnection.URLConnectionSender
Expand All @@ -134,10 +220,6 @@ object BraveTracer {
reporterCache.computeIfAbsent(url, newReporter)
}

def apply(name: String, properties: TraceProperties, tags: (String, String)*): BraveTracer = {
BraveTracer(name, properties, None, tags: _*)
}

def apply(
name: String,
properties: TraceProperties,
Expand Down Expand Up @@ -178,6 +260,6 @@ object BraveTracer {
spanReporter.flush()
}

new BraveTracer(tracer, rootSpan, closeEverything, properties)
new BraveTracerInternal(tracer, rootSpan, closeEverything, properties)
}
}
7 changes: 5 additions & 2 deletions backend/src/main/scala/bloop/tracing/TraceProperties.scala
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@ case class TraceProperties(
verbose: Boolean,
localServiceName: String,
traceStartAnnotation: Option[String],
traceEndAnnotation: Option[String]
traceEndAnnotation: Option[String],
enabled: Boolean
)

object TraceProperties {
val default: TraceProperties = {
val verbose = Properties.propOrFalse("bloop.tracing.verbose")
val enabled = Properties.propOrFalse("bloop.tracing.enabled")
val debugTracing = Properties.propOrFalse("bloop.tracing.debugTracing")
val localServiceName = Properties.propOrElse("bloop.tracing.localServiceName", "bloop")
val traceStartAnnotation = Properties.propOrNone("bloop.tracing.traceStartAnnotation")
Expand All @@ -30,7 +32,8 @@ object TraceProperties {
verbose,
localServiceName,
traceStartAnnotation,
traceEndAnnotation
traceEndAnnotation,
enabled
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ import java.nio.file.Files
import java.nio.file.Path
import java.nio.file.Paths

import scala.util.control.NonFatal

import _root_.bloop.io.AbsolutePath
import _root_.bloop.logging.DebugFilter
import _root_.bloop.logging.{Logger => BloopLogger}
Expand All @@ -27,7 +29,6 @@ import xsbti.ComponentProvider
import xsbti.Logger
import xsbti.compile.ClasspathOptionsUtil
import xsbti.compile.CompilerBridgeProvider
import scala.util.control.NonFatal

object BloopComponentCompiler {
import xsbti.compile.ScalaInstance
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import java.nio.file.FileSystems
import java.nio.file.Path
import java.{util => ju}

import scala.collection.JavaConverters._

import sbt.internal.inc.Analysis
import sbt.internal.inc.Compilation
import sbt.internal.inc.Incremental
Expand All @@ -17,6 +19,9 @@ import sbt.util.InterfaceUtil
import xsbt.api.APIUtil
import xsbt.api.HashAPI
import xsbt.api.NameHashing
import xsbti.Action
import xsbti.DiagnosticCode
import xsbti.DiagnosticRelatedInformation
import xsbti.Position
import xsbti.Problem
import xsbti.Severity
Expand All @@ -37,9 +42,6 @@ import xsbti.compile.ClassFileManager
import xsbti.compile.IncOptions
import xsbti.compile.Output
import xsbti.compile.analysis.ReadStamps
import xsbti.{Action, DiagnosticCode, DiagnosticRelatedInformation}

import collection.JavaConverters._

trait IBloopAnalysisCallback extends xsbti.AnalysisCallback2 {
def get: Analysis
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import java.io.File
import java.nio.file.Path
import java.{util => ju}

import scala.collection.JavaConverters._

import sbt.internal.inc.Analysis
import sbt.internal.inc.Compilation
import sbt.internal.inc.Incremental
Expand All @@ -15,6 +17,9 @@ import sbt.util.InterfaceUtil
import xsbt.api.APIUtil
import xsbt.api.HashAPI
import xsbt.api.NameHashing
import xsbti.Action
import xsbti.DiagnosticCode
import xsbti.DiagnosticRelatedInformation
import xsbti.Position
import xsbti.Problem
import xsbti.Severity
Expand All @@ -35,9 +40,6 @@ import xsbti.compile.ClassFileManager
import xsbti.compile.IncOptions
import xsbti.compile.Output
import xsbti.compile.analysis.ReadStamps
import xsbti.{Action, DiagnosticCode, DiagnosticRelatedInformation}

import collection.JavaConverters._

/**
* This class provides a thread-safe implementation of `xsbti.AnalysisCallback` which is required to compile with the
Expand Down
16 changes: 8 additions & 8 deletions bloop-rifle/src/bloop/rifle/BloopRifleLogger.scala
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ trait BloopRifleLogger { self =>
object BloopRifleLogger {
def nop: BloopRifleLogger =
new BloopRifleLogger {
def info(msg: => String) = {}
def debug(msg: => String, ex: Throwable) = {}
def error(msg: => String, ex: Throwable) = {}
def error(msg: => String) = {}
def bloopBspStdout = None
def bloopBspStderr = None
def bloopCliInheritStdout = false
def bloopCliInheritStderr = false
def info(msg: => String) = {}
def debug(msg: => String, ex: Throwable) = {}
def error(msg: => String, ex: Throwable) = {}
def error(msg: => String) = {}
def bloopBspStdout: Option[java.io.OutputStream] = None
def bloopBspStderr: Option[java.io.OutputStream] = None
def bloopCliInheritStdout = false
def bloopCliInheritStderr = false
}
}
16 changes: 8 additions & 8 deletions build.sc
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,23 @@ import java.io.File

object Dependencies {
def scala212 = "2.12.18"
def scala213 = "2.13.11"
def scala213 = "2.13.12"

def scalaVersions = Seq(scala212, scala213)

def asmVersion = "9.5"
def coursierVersion = "2.1.0-M6-53-gb4f448130"
def graalvmVersion = "22.2.0"
def jsoniterVersion = "2.13.3.2"
def scalaJs1Version = "1.13.2"
def scalaJs1Version = "1.14.0"
def scalaJsEnvsVersion = "1.1.1"

def asm = ivy"org.ow2.asm:asm:$asmVersion"
def asmUtil = ivy"org.ow2.asm:asm-util:$asmVersion"
def bloopConfig = ivy"ch.epfl.scala::bloop-config:1.5.5"
def brave = ivy"io.zipkin.brave:brave:5.16.0"
def bsp4j = ivy"ch.epfl.scala:bsp4j:2.1.0-M6"
def bsp4s = ivy"ch.epfl.scala::bsp4s:2.1.0-M5"
def bsp4s = ivy"ch.epfl.scala::bsp4s:2.1.0-M6"
def caseApp = ivy"com.github.alexarchambault::case-app:2.0.6"
def caseApp21 = ivy"com.github.alexarchambault::case-app:2.1.0-M15"
def collectionCompat = ivy"org.scala-lang.modules::scala-collection-compat:2.9.0"
Expand All @@ -48,7 +48,7 @@ object Dependencies {
ivy"com.github.plokhotnyuk.jsoniter-scala::jsoniter-scala-macros:$jsoniterVersion"
def junit = ivy"com.github.sbt:junit-interface:0.13.3"
def libdaemonjvm = ivy"io.github.alexarchambault.libdaemon::libdaemon:0.0.11"
def libraryManagement = ivy"org.scala-sbt::librarymanagement-ivy:1.9.2"
def libraryManagement = ivy"org.scala-sbt::librarymanagement-ivy:1.9.3"
def log4j = ivy"org.apache.logging.log4j:log4j-core:2.20.0"
def logback = ivy"ch.qos.logback:logback-classic:1.4.6"
def macroParadise = ivy"org.scalamacros:::paradise:2.1.1"
Expand All @@ -57,7 +57,7 @@ object Dependencies {
def nailgun = ivy"io.github.alexarchambault.bleep:nailgun-server:1.0.7"
def osLib = ivy"com.lihaoyi::os-lib:0.9.0"
def pprint = ivy"com.lihaoyi::pprint:0.8.1"
def sbtTestAgent = ivy"org.scala-sbt:test-agent:1.9.4"
def sbtTestAgent = ivy"org.scala-sbt:test-agent:1.9.6"
def sbtTestInterface = ivy"org.scala-sbt:test-interface:1.0"
def scalaDebugAdapter = ivy"ch.epfl.scala::scala-debug-adapter:3.1.4"
def scalaJsLinker1 = ivy"org.scala-js::scalajs-linker:$scalaJs1Version"
Expand All @@ -66,14 +66,14 @@ object Dependencies {
def scalaJsEnvJsdomNode1 = ivy"org.scala-js::scalajs-env-jsdom-nodejs:1.1.0"
def scalaJsSbtTestAdapter1 = ivy"org.scala-js::scalajs-sbt-test-adapter:$scalaJs1Version"
def scalaJsLogging1 = ivy"org.scala-js::scalajs-logging:1.1.1"
def scalaNativeTools04 = ivy"org.scala-native::tools:0.4.14"
def scalaNativeTools04 = ivy"org.scala-native::tools:0.4.15"
def scalazCore = ivy"org.scalaz::scalaz-core:7.3.7"
def snailgun = ivy"io.github.alexarchambault.scala-cli.snailgun::snailgun-core:0.4.1-sc2"
def sourcecode = ivy"com.lihaoyi::sourcecode:0.3.0"
def sourcecode = ivy"com.lihaoyi::sourcecode:0.3.1"
def svm = ivy"org.graalvm.nativeimage:svm:$graalvmVersion"
def utest = ivy"com.lihaoyi::utest:0.8.1"
def xxHashLibrary = ivy"net.jpountz.lz4:lz4:1.3.0"
def zinc = ivy"org.scala-sbt::zinc:1.9.3"
def zinc = ivy"org.scala-sbt::zinc:1.9.5"
def zipkinSender = ivy"io.zipkin.reporter2:zipkin-sender-urlconnection:2.16.4"
def zt = ivy"org.zeroturnaround:zt-zip:1.16"

Expand Down
7 changes: 4 additions & 3 deletions cli/src/bloop/cli/Bloop.scala
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package bloop.cli

import caseapp.core.app.CommandsEntryPoint
import caseapp.core.app.Command

object Bloop extends CommandsEntryPoint {
def progName = "bloop"
def commands = Seq(
def progName: String = "bloop"
def commands: Seq[Command[_]] = Seq(
Exit,
Output,
Start,
Status
)
override def defaultCommand = Some(Default)
override def defaultCommand: Option[Command[_]] = Some(Default)
}
Loading

0 comments on commit 7b633eb

Please sign in to comment.