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 one of the constructors in the companion object.
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 edu.tum.cs.isabelle.setup.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 edu.tum.cs.isabelle.impl
. See also
Setup.defaultPackageName
.
Contract
Environment
. There must
be a BuildInfo
class in the same package.java.nio.file.Path
). There must be no other
constructors. The constructor should be private
.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.
Represents the version of an Isabelle release.
Represents the version of an Isabelle release.
Repository snapshots are not supported.
This object was generated by sbt-buildinfo.
Convenience constructors for configurations.
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 implementations and system interfaces.