Module CASS.Configuration

This module supports the configuration of the analysis system and provides access to some values in Config file.

It also provides an operation to get the port number of the analysis server (which is implicitly started if necessary).

Author: Michael Hanus

Version: October 2023

Summary of exported operations:

systemBanner :: String  Deterministic 
baseDir :: String  Deterministic 
The base directory of the analysis tool containing all programs and documentations.
docDir :: String  Deterministic 
The directory containing the documentations of the various analyses.
executableName :: String  Deterministic 
The name of the main executable.
getServerAddress :: IO String  Deterministic 
The address of the server when it is connected from the worker clients.
waitTime :: Int  Deterministic 
debugLevel :: CConfig -> DLevel  Deterministic 
Returns the debug level from the current configuration.
setDebugLevel :: Int -> CConfig -> CConfig  Deterministic 
Returns the debug level from the current configuration.
fixpointMethod :: CConfig -> String  Deterministic 
withPrelude :: CConfig -> Bool  Deterministic 
getDefaultPath :: CConfig -> IO String  Deterministic 
Gets the default load path from the property file (added at the end of CURRYPATH).
numberOfWorkers :: CConfig -> Int  Deterministic 
readRCFile :: IO CConfig  Deterministic 
Reads the rc file (and try to install a user copy of it if it does not exist) and returns its definition.
updateProperty :: String -> String -> CConfig -> CConfig  Deterministic 
storeServerPortNumber :: Int -> IO ()  Deterministic 
Stores the current server port number together with the pid of the server process.
removeServerPortNumber :: IO ()  Deterministic 
Removes the currently stored server port number.

Exported datatypes:


CConfig

Configuration info used during execution of CASS. It contains the properties from the rc file and the current debug level.

Constructors:


Exported operations:

systemBanner :: String  Deterministic 

baseDir :: String  Deterministic 

The base directory of the analysis tool containing all programs and documentations. It is used to copy the configuration file, to the find executables of the server and the workers, and to find the documentation of the various analyses.

Further infos:
  • solution complete, i.e., able to compute all solutions

docDir :: String  Deterministic 

The directory containing the documentations of the various analyses.

executableName :: String  Deterministic 

The name of the main executable. Used to start workers in CASS.Server.

Further infos:
  • solution complete, i.e., able to compute all solutions

getServerAddress :: IO String  Deterministic 

The address of the server when it is connected from the worker clients.

waitTime :: Int  Deterministic 

debugLevel :: CConfig -> DLevel  Deterministic 

Returns the debug level from the current configuration.

Further infos:
  • solution complete, i.e., able to compute all solutions

setDebugLevel :: Int -> CConfig -> CConfig  Deterministic 

Returns the debug level from the current configuration.

Further infos:
  • solution complete, i.e., able to compute all solutions

fixpointMethod :: CConfig -> String  Deterministic 

withPrelude :: CConfig -> Bool  Deterministic 

getDefaultPath :: CConfig -> IO String  Deterministic 

Gets the default load path from the property file (added at the end of CURRYPATH).

numberOfWorkers :: CConfig -> Int  Deterministic 

readRCFile :: IO CConfig  Deterministic 

Reads the rc file (and try to install a user copy of it if it does not exist) and returns its definition. Additionally, the definitions are compared with the default property file of the CASS distribution. If the set of variables is different, the rc file of the user is updated with the distribution but the user's definitions are kept.

updateProperty :: String -> String -> CConfig -> CConfig  Deterministic 

storeServerPortNumber :: Int -> IO ()  Deterministic 

Stores the current server port number together with the pid of the server process.

removeServerPortNumber :: IO ()  Deterministic 

Removes the currently stored server port number.