CurryInfo: cass-4.1.0 / CASS.Server.analyzeGenericWithOptions

definition:
analyzeGenericWithOptions :: (Eq a, Read a, Show a, ReadWrite a) =>
  CConfig -> Analysis a -> String -> IO (Either (ProgInfo a) String)
analyzeGenericWithOptions cconfig analysis moduleName = do
  let (mdir,mname) = splitFileName moduleName
  getDefaultPath cconfig >>= setEnv "CURRYPATH"
  curdir <- getCurrentDirectory
  unless (mdir==".") $ setCurrentDirectory mdir
  let numworkers = numberOfWorkers cconfig
  aresult <-
    if numworkers > 0
     then do
      serveraddress <- getServerAddress
      (port,socket) <- listenOnFresh
      handles <- startWorkers cconfig numworkers socket serveraddress port []
      result <- analyzeMain cconfig analysis mname handles False True
      stopWorkers handles
      close socket
      return result
     else
      analyzeMain cconfig analysis mname [] False True
  setCurrentDirectory curdir
  return aresult
demand:
no demanded arguments
deterministic:
deterministic operation
documentation:
--- Start the analysis system with a particular analysis and
--- some options of CASS (first argument).
--- The analysis must be a registered one if workers are used.
--- If it is a combined analysis, the base analysis must be also
--- a registered one. The options are read from the rc file.
--- Returns either the analysis information or an error message.
indeterministic:
might be indeterministic
infix:
no fixity defined
name:
analyzeGenericWithOptions
precedence:
no precedence defined
result-values:
_
signature:
(Prelude.Eq a, Prelude.Read a, Prelude.Show a, RW.Base.ReadWrite a) => CASS.Configuration.CConfig
-> Analysis.Types.Analysis a -> String
-> Prelude.IO (Prelude.Either (Analysis.ProgInfo.ProgInfo a) String)
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term