scala.scalanative.build

Type members

Classlikes

object Build

Utility methods for building code using Scala Native.

Utility methods for building code using Scala Native.

final class BuildException(message: String) extends Exception

Exception that is thrown when a Scala Native build fails.

Exception that is thrown when a Scala Native build fails.

sealed trait BuildTarget

Base trait representing an Application, or a Static or a Dynamic Library

Base trait representing an Application, or a Static or a Dynamic Library

Companion:
object

Utility to create a BuildTarget object

Utility to create a BuildTarget object

Companion:
class
sealed trait Config

An object describing how to configure the Scala Native toolchain.

An object describing how to configure the Scala Native toolchain.

Companion:
object
object Config

Factory to create empty Config objects

Factory to create empty Config objects

Companion:
class
object Discover

Utilities for discovery of command-line tools and settings required to build Scala Native applications.

Utilities for discovery of command-line tools and settings required to build Scala Native applications.

sealed abstract class GC

Garbage Collector. The Application is going to be automatically linked with corresponding libraries that implement one of the given collectors:

Garbage Collector. The Application is going to be automatically linked with corresponding libraries that implement one of the given collectors:

  • None GC. Never frees allocated memory.

  • Boehm GC. Conservative mark-and-sweep garbage collector.

  • Immix GC. Mostly-precise mark-region garbage collector.

  • Commix GC. Mostly-precise mark-region garbage collector running concurrently.

  • Experimental GC. Stub so implementers can experiment with a new GC without having to change the build system.

Additional GCs might be added to the list in the future.

Value parameters:
dir

name of the gc

links

linking dependencies of the gc

Companion:
object
object GC

Utility to create a GC object

Utility to create a GC object

Companion:
class
sealed abstract class JVMMemoryModelCompliance
Companion:
object
sealed abstract class LTO

Link Time Optimization (LTO) mode to be used during the build linking phase.

Link Time Optimization (LTO) mode to be used during the build linking phase.

Value parameters:
name

the name of the LTO mode

Companion:
object
object LTO

Utility to create LTO objects to control Link Time Optimization (LTO) which is used to pass the correct option to the linker in the link phase.

Utility to create LTO objects to control Link Time Optimization (LTO) which is used to pass the correct option to the linker in the link phase.

Companion:
class
trait Logger

Interface to report and/or collect messages given by the toolchain.

Interface to report and/or collect messages given by the toolchain.

Companion:
object
object Logger
Companion:
class
sealed abstract class Mode

Compilation mode. Either of the two:

Compilation mode. Either of the two:

  • Debug mode. Most optimizations are turned off to get the best linking speed. This mode is the default and is preferred for iterative development.

  • Release mode. Runs all the optimizations but may take substantially longer to link the application.

Additional compilation modes might be added in the future.

Value parameters:
name

name of the compilation mode

Companion:
object
object Mode
Companion:
class
sealed trait NativeConfig

An object describing how to configure the Scala Native toolchain.

An object describing how to configure the Scala Native toolchain.

Companion:
object
Companion:
class
sealed trait OptimizerConfig

An object describing how to configure the Scala Native Optimizer.

An object describing how to configure the Scala Native Optimizer.

Companion:
object
Companion:
class
sealed abstract class Sanitizer(val name: String)
Companion:
object
object Sanitizer
Companion:
class
sealed trait SemanticsConfig

An object describing configuration of the Scala Native semantics.

An object describing configuration of the Scala Native semantics.

Companion:
object
Companion:
class
Companion:
object