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
May 2025

Exported Datatypes


data CConfig

Configuration info used during execution of CASS. It contains the properties from the RC file, the current debug level, the options passed to CASS, and an IORef for statistics.

Constructors:


data CASSStats

Constructors:

  • CASSStats :: Int -> Int -> Int -> CASSStats

    Fields:

    • csNumMods :: Int
    • csAnaMods :: Int
    • csCIMods :: Int

Known instances:


Exported Functions


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


curryInfoRequest2CASS :: [(String, String)]  Deterministic 

The requests and analysis names currently support by CurryInfo. Taken from CurryInfo.Analysis of package curry-info.

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

getStatistics :: CConfig -> IO String  Deterministic 

Gets the statistics from the current configuration.


setNumModAnalyzed :: Int -> CConfig -> IO ()  Deterministic 

Sets the number of modules to be analyzed in the configuration.


incAnaMods :: CConfig -> IO ()  Deterministic 

Increments the number of modules analyzed by CASS.


incCurryInfoMods :: CConfig -> IO ()  Deterministic 

Increments the number of modules with infos taken from CurryInfo.


getDefaultCConfig :: IO CConfig  Deterministic 

Gets the default configuration which has no properties and is quiet.


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.


useCurryInfoWeb :: CConfig -> Bool  Deterministic 

Returns the curryinfo web 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


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.