Package

info.hupel.isabelle

api

Permalink

package api

Minimal API for managing some Isabelle version. It is centered around the notion of an environment, which captures the base functionality of an Isabelle process, e.g. starting and stopping an instance. API clients should go through the higher-level setup and system interfaces.

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

Type Members

  1. final case class Configuration(paths: List[Path], session: String) extends Product with Serializable

    Permalink

    Represents the location and name of a session (Isabelle terminology).

    Represents the location and name of a session (Isabelle terminology).

    Refer to the Isabelle system manual for details about sessions. libisabelle assumes that users are familiar with the session handling of Isabelle.

    Creation of configurations is completely unchecked. Errors such as non-existing paths will only manifest themselves when attempting to build a configuration or create a system. Nonetheless, users should go through an existing resources object.

  2. abstract class Environment extends AnyRef

    Permalink

    Abstract interface for an Isabelle environment of a particular version in a path with an underlying PIDE machinery.

    Abstract interface for an Isabelle environment of a particular version in a path with an underlying PIDE machinery.

    As opposed to a mere logic-less Setup, an environment knows how to manage Isabelle processes. It can also manage multiple running processes at the same time.

    A subclass of this class is called implementation throughout libisabelle.

    It is highly recommended to use Setup.makeEnvironment to instantiate implementations.

    While implementations may be created freely by users, it is recommended to only use the bundled implementations for the supported Isabelle versions. By convention, they live in the package specified in Environment.packageName.

    Contract

    • An implementation is a subclass of this class.
    • The class name of the implementation must be Environment. There must be a BuildInfo class in the same package.
    • Implementations must be final and provide a constructor with exactly one argument (of type Environment.Context). There must be no other constructors. The constructor should be private.
    • Implementations must be annotated with Implementation, where the given identifier corresponds to the version identifier.

    Footnote

    Due to name clashes in the underlying PIDE machinery (which is provided by Isabelle itself and is not under control of libisabelle), it is impossible to have multiple environments for different versions in the same class loader. This is the primary reason why this class exists in the first place, to enable seamless abstraction over multiple PIDEs.

  3. case class ExitTrap(rc: Int) extends Throwable with ControlThrowable with Product with Serializable

    Permalink
  4. class Implementation extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  5. type Markup = (String, Properties)

    Permalink
  6. sealed abstract class OptionKey[T] extends AnyRef

    Permalink
  7. type Properties = List[(String, String)]

    Permalink
  8. sealed trait Version extends AnyRef

    Permalink

Value Members

  1. object BuildInfo extends Product with Serializable

    Permalink

    This object was generated by sbt-buildinfo.

  2. object Configuration extends Serializable

    Permalink
  3. object Environment

    Permalink
  4. object OptionKey

    Permalink
  5. object Version

    Permalink
  6. object XML

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped