object CompilerPluginWhitelist
- Alphabetic
- By Inheritance
- CompilerPluginWhitelist
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
def
enableCachingInScalacOptions(scalaVersion: String, scalacOptions: List[String], logger: Logger, tracer: BraveTracer, parallelUnits: Int): Task[List[String]]
Enable compiler plugin caching in scalac options if the feature is supported in the given scala version and all the compiler plugins in a project are marked as safe in Bloop's compiler plugin whitelist.
Enable compiler plugin caching in scalac options if the feature is supported in the given scala version and all the compiler plugins in a project are marked as safe in Bloop's compiler plugin whitelist.
This is a method that can be called concurrently by different compiler processes that share the same compiler option, so it needs to be thread-safe. To compute whether a compiler plugin is friendly to caching or not, we first try to acquire the scalac option represeting that compiler plugin and then process that in parallel. If we cannot acquire the processing of a given compiler plugin, it means another concurrent process is doing it, so before returning we wait on those background computations. Once all the compiler plugins have been populated, we check if all compiler plugins are cache friendly and, if that's the case, we add a scalac option to cache plugin classloaders.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
val
scalaVersionBlacklist: List[String]
A sequence of versions that are known not to support compiler plugin classloading.
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
val
whitelistedPluginNames: List[String]
A list of compiler plugin names (as specified in their scalac-plugin.xml whose classloaders are safe to be cached.
A list of compiler plugin names (as specified in their scalac-plugin.xml whose classloaders are safe to be cached. The plugin sources of every plugin have been checked to ensure there is no global state and this is a requirement to adding new names in the list.