abstract
class
Environment extends AnyRef
Type Members
-
abstract
type
Session
Abstract Value Members
-
-
-
abstract
def
decode(text: @@[String, Raw]): @@[String, Unicode]
-
abstract
def
dispose(session: Session): Unit
-
abstract
def
encode(text: @@[String, Unicode]): @@[String, Raw]
-
abstract
def
exec(tool: String, args: List[String]): Int
-
abstract
val
exitTag: String
-
abstract
val
functionTag: String
-
abstract
val
initTag: String
-
abstract
def
isabellePath(path: String): String
-
abstract
def
isabelleSetting(name: String): String
-
abstract
val
printTags: Set[String]
-
abstract
val
protocolTag: String
-
abstract
def
sendCommand(session: Session, name: String, args: List[String]): Unit
-
abstract
def
sendOptions(session: Session): Unit
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: Any): Boolean
-
final
def
asInstanceOf[T0]: T0
-
final
def
cleanEtcComponents(): Unit
-
def
clone(): AnyRef
-
-
-
-
final
val
etc: Path
-
final
val
etcComponents: Path
-
final
def
eval(session: Session, ml: String): Unit
-
final
val
evalCommand: String("libisabelle_eval")
-
def
finalize(): Unit
-
final
def
getClass(): Class[_]
-
def
hashCode(): Int
-
final
val
home: Path
-
final
def
isInstanceOf[T0]: Boolean
-
final
val
logger: Logger
-
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
final
def
protocolTheory(loaded: Set[String]): Option[String]
-
implicit final
val
scheduler: Scheduler
-
final
def
setEtcComponents(): Unit
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
toString(): String
-
final
val
user: Path
-
final
val
variables: Map[String, String]
-
final
val
version: Version
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
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
Environment
. There must be aBuildInfo
class in the same package.Environment.Context
). There must be no other constructors. The constructor should beprivate
.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.