smtlib-backends-process-0.3: An SMT-LIB backend running solvers as external processes.
Safe HaskellSafe-Inferred
LanguageHaskell2010

SMTLIB.Backends.Process

Description

A module providing a backend that launches solvers as external processes.

Synopsis

Documentation

data Config Source #

Constructors

Config 

Fields

data Handle Source #

Constructors

Handle 

Fields

defaultConfig :: Config Source #

By default, use Z3 as an external process and ignores log messages.

new Source #

Arguments

:: Config

The solver process' configuration.

-> IO Handle 

Run a solver as a process.

close :: Handle -> IO () Source #

Cleanup the process' resources, terminate it and wait for it to actually exit.

with Source #

Arguments

:: Config

The solver process' configuration.

-> (Handle -> IO a)

The computation to run with the solver process

-> IO a 

Create a solver process, use it to make a computation and close it.

toBackend :: Handle -> Backend Source #

Make the solver process into an SMT-LIB backend.

data StdStream #

Constructors

Inherit

Inherit Handle from parent

UseHandle Handle

Use the supplied Handle

CreatePipe

Create a new pipe. The returned Handle will use the default encoding and newline translation mode (just like Handles created by openFile).

NoStream

Close the stream's file descriptor without passing a Handle. On POSIX systems this may lead to strange behavior in the child process because attempting to read or write after the file has been closed throws an error. This should only be used with child processes that don't use the file descriptor at all. If you wish to ignore the child process's output you should either create a pipe and drain it manually or pass a Handle that writes to /dev/null.

Instances

Instances details
Show StdStream 
Instance details

Defined in System.Process.Common

Eq StdStream 
Instance details

Defined in System.Process.Common