o

bloop.engine.tasks.compilation

CompilerPluginWhitelist

object CompilerPluginWhitelist

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CompilerPluginWhitelist
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  6. 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.

  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. val scalaVersionBlacklist: List[String]

    A sequence of versions that are known not to support compiler plugin classloading.

  17. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  18. def toString(): String
    Definition Classes
    AnyRef → Any
  19. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  22. 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.

Inherited from AnyRef

Inherited from Any

Ungrouped