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: December 2024

Summary of exported operations:

systemBanner :: String  Deterministic 
The banner of the CASS system.
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 
timeout for network message passing: -1 is wait time infinity
defaultCConfig :: CConfig  Deterministic 
The default configuration has no properties and is quiet.
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.
useCurryInfo :: CConfig -> Bool  Deterministic 
Returns the curryinfo flag from the current configuration.
fixpointMethod :: CConfig -> String  Deterministic 
Returns the fixpoint computation method from Config file
withPrelude :: CConfig -> Bool  Deterministic 
Gets the option to analyze also the prelude from Config file
getDefaultPath :: CConfig -> IO String  Deterministic 
Gets the default load path from the property file (added at the end of CURRYPATH).
numberOfWorkers :: CConfig -> Int  Deterministic 
number of worker threads running at the same time
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 
Updates a property.
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:

  • CConfig :: [(String,String)] -> DLevel -> CConfig

    Fields:

    • ccProps :: [(String,String)]
    • ccDebugLevel :: DLevel

Exported operations:

systemBanner :: String  Deterministic 

The banner of the CASS system.

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 

timeout for network message passing: -1 is wait time infinity

defaultCConfig :: CConfig  Deterministic 

The default configuration has no properties and is quiet.

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

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

useCurryInfo :: CConfig -> Bool  Deterministic 

Returns the curryinfo flag from the current configuration.

fixpointMethod :: CConfig -> String  Deterministic 

Returns the fixpoint computation method from Config file

withPrelude :: CConfig -> Bool  Deterministic 

Gets the option to analyze also the prelude from Config file

getDefaultPath :: CConfig -> IO String  Deterministic 

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

numberOfWorkers :: CConfig -> Int  Deterministic 

number of worker threads running at the same time

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 

Updates a property.

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.