creatur 5.9.15 → 5.9.16
raw patch · 2 files changed
+126/−133 lines, 2 filesdep ~HUnitdep ~MonadRandomdep ~QuickCheck
Dependency ranges changed: HUnit, MonadRandom, QuickCheck, array, base, binary, bytestring, cereal, cond, creatur, directory, exceptions, filepath, gray-extended, hdaemonize, hsyslog, mtl, old-locale, process, split, temporary, test-framework, test-framework-hunit, test-framework-quickcheck2, time, transformers, unix, zlib
Files
- creatur.cabal +120/−130
- src/ALife/Creatur/Daemon.hs +6/−3
creatur.cabal view
@@ -1,133 +1,123 @@-Name: creatur-Version: 5.9.15-Stability: experimental-Synopsis: Framework for artificial life experiments.-Description: A software framework for automating experiments- with artificial life. It provides a daemon which- maintains its own "clock", schedules events,- provides logging, and ensures that each agent gets- its turn to use the CPU. You can use other- applications on the computer at the same time- without fear of interfering with experiments; they- will run normally, just more slowly. See the- tutorial at- <https://github.com/mhwombat/creatur-examples/raw/master/Tutorial.pdf>- for examples on how to use the- Créatúr framework.- .- About the name: \"Créatúr\" (pronounced kray-toor)- is an Irish word meaning animal, creature, or an- unfortunate person.-Category: AI-License: BSD3-License-file: LICENSE-Copyright: (c) Amy de Buitléir 2010-2016-Homepage: https://github.com/mhwombat/creatur-Bug-reports: https://github.com/mhwombat/creatur/issues-Author: Amy de Buitléir-Maintainer: amy@nualeargais.ie-Build-Type: Simple-Cabal-Version: >=1.8+name: creatur+version: 5.9.16+cabal-version: >=1.8+build-type: Simple+license: BSD3+license-file: LICENSE+copyright: (c) Amy de Buitléir 2010-2016+maintainer: amy@nualeargais.ie+stability: experimental+homepage: https://github.com/mhwombat/creatur+bug-reports: https://github.com/mhwombat/creatur/issues+synopsis: Framework for artificial life experiments.+description:+ A software framework for automating experiments+ with artificial life. It provides a daemon which+ maintains its own "clock", schedules events,+ provides logging, and ensures that each agent gets+ its turn to use the CPU. You can use other+ applications on the computer at the same time+ without fear of interfering with experiments; they+ will run normally, just more slowly. See the+ tutorial at+ <https://github.com/mhwombat/creatur-examples/raw/master/Tutorial.pdf>+ for examples on how to use the+ Créatúr framework.+ .+ About the name: \"Créatúr\" (pronounced kray-toor)+ is an Irish word meaning animal, creature, or an+ unfortunate person.+category: AI+author: Amy de Buitléir library- GHC-Options: -Wall -fno-warn-orphans- Hs-source-dirs: src- exposed-modules:- ALife.Creatur,- ALife.Creatur.Checklist,- ALife.Creatur.Clock,- ALife.Creatur.Counter,- ALife.Creatur.Daemon,- ALife.Creatur.Database,- ALife.Creatur.Database.CachedFileSystem,- ALife.Creatur.Database.CachedFileSystemInternal,- ALife.Creatur.Database.FileSystem,- ALife.Creatur.Genetics.Analysis,- ALife.Creatur.Genetics.BRGCBool,- ALife.Creatur.Genetics.BRGCWord8,- ALife.Creatur.Genetics.BRGCWord16,- ALife.Creatur.Genetics.Diploid,- ALife.Creatur.Genetics.Recombination,- ALife.Creatur.Genetics.Reproduction.Sexual,- ALife.Creatur.Genetics.Reproduction.SimplifiedSexual,- ALife.Creatur.Logger,- ALife.Creatur.Logger.SimpleLogger,- ALife.Creatur.Logger.SimpleRotatingLogger,- ALife.Creatur.Namer,- ALife.Creatur.Persistent,- ALife.Creatur.Universe,- ALife.Creatur.Task,- ALife.Creatur.Util- Other-modules: Paths_creatur- Build-Depends:- array ==0.5.*,- base ==4.* && >= 4.8,- bytestring ==0.10.*,- cond ==0.4.*,- cereal ==0.5.*,- directory ==1.3.*,- exceptions ==0.8.*,- filepath ==1.4.*,- gray-extended ==1.*,- hdaemonize ==0.5.*,- hsyslog ==2.0,- MonadRandom ==0.5.*,- mtl ==2.2.*,- old-locale ==1.0.*,- process ==1.4.*,- random ==1.1.*,- split ==0.2.*,- time ==1.6.*,- transformers ==0.5.*,- unix ==2.7.*,- zlib ==0.6.*--Test-suite creatur-tests- Type: exitcode-stdio-1.0- Main-is: TestAll.hs- GHC-Options: -Wall- Hs-source-dirs: test- Build-Depends:- array ==0.5.*,- base ==4.* && >= 4.8,- binary ==0.7.*,- cereal ==0.5.*,- creatur,- directory ==1.3.*,- filepath ==1.4.*,- hsyslog ==2.0,- HUnit ==1.5.*,- MonadRandom ==0.5.*,- mtl ==2.2.*,- temporary ==1.2.*,- test-framework ==0.8.*,- test-framework-hunit ==0.3.*,- test-framework-quickcheck2 ==0.3.*,- QuickCheck ==2.9.*- Other-modules: ALife.Creatur.ChecklistQC- ALife.Creatur.CounterQC- ALife.Creatur.Database.CachedFileSystemQC- ALife.Creatur.Database.FileSystemQC- ALife.Creatur.Genetics.BRGCBoolBench- ALife.Creatur.Genetics.BRGCBoolQC- ALife.Creatur.Genetics.BRGCWord16QC- ALife.Creatur.Genetics.BRGCWord8Bench- ALife.Creatur.Genetics.BRGCWord8QC- ALife.Creatur.Genetics.DiploidQC,- ALife.Creatur.Genetics.RecombinationQC- ALife.Creatur.PersistentQC- ALife.Creatur.UniverseQC- ALife.Creatur.UtilQC-+ exposed-modules:+ ALife.Creatur+ ALife.Creatur.Checklist+ ALife.Creatur.Clock+ ALife.Creatur.Counter+ ALife.Creatur.Daemon+ ALife.Creatur.Database+ ALife.Creatur.Database.CachedFileSystem+ ALife.Creatur.Database.CachedFileSystemInternal+ ALife.Creatur.Database.FileSystem+ ALife.Creatur.Genetics.Analysis+ ALife.Creatur.Genetics.BRGCBool+ ALife.Creatur.Genetics.BRGCWord8+ ALife.Creatur.Genetics.BRGCWord16+ ALife.Creatur.Genetics.Diploid+ ALife.Creatur.Genetics.Recombination+ ALife.Creatur.Genetics.Reproduction.Sexual+ ALife.Creatur.Genetics.Reproduction.SimplifiedSexual+ ALife.Creatur.Logger+ ALife.Creatur.Logger.SimpleLogger+ ALife.Creatur.Logger.SimpleRotatingLogger+ ALife.Creatur.Namer+ ALife.Creatur.Persistent+ ALife.Creatur.Universe+ ALife.Creatur.Task+ ALife.Creatur.Util+ build-depends:+ array >=0.5.1.1 && <0.6,+ base >=4.9.1.0 && <4.10,+ bytestring >=0.10.8.1 && <0.11,+ cond >=0.4.1.1 && <0.5,+ cereal >=0.5.4.0 && <0.6,+ directory >=1.3.0.0 && <1.4,+ exceptions >=0.8.3 && <0.9,+ filepath >=1.4.1.1 && <1.5,+ gray-extended >=1.5.2 && <1.6,+ hdaemonize >=0.5.3 && <0.6,+ hsyslog >=4 && <4.1,+ MonadRandom >=0.5.1 && <0.6,+ mtl >=2.2.1 && <2.3,+ old-locale >=1.0.0.7 && <1.1,+ process >=1.4.3.0 && <1.5,+ random ==1.1.*,+ split >=0.2.3.2 && <0.3,+ time >=1.6.0.1 && <1.7,+ transformers >=0.5.2.0 && <0.6,+ unix >=2.7.2.1 && <2.8,+ zlib >=0.6.1.2 && <0.7+ hs-source-dirs: src+ other-modules:+ Paths_creatur+ ghc-options: -Wall -fno-warn-orphans --- Benchmark creatur-bench--- Type: exitcode-stdio-1.0--- Main-is: BenchAll.hs--- GHC-Options: -Wall--- Hs-source-dirs: test--- Build-Depends:--- base ==4.* && >= 4.8,--- creatur,--- criterion ==0.8.*,--- test-framework ==0.8.*--- Other-modules: ALife.Creatur.Genetics.BRGCWord8Bench+test-suite creatur-tests+ type: exitcode-stdio-1.0+ main-is: TestAll.hs+ build-depends:+ array >=0.5.1.1 && <0.6,+ base >=4.9.1.0 && <4.10,+ binary >=0.8.3.0 && <0.9,+ cereal >=0.5.4.0 && <0.6,+ creatur >=5.9.16 && <5.10,+ directory >=1.3.0.0 && <1.4,+ filepath >=1.4.1.1 && <1.5,+ hsyslog >=4 && <4.1,+ HUnit >=1.5.0.0 && <1.6,+ MonadRandom >=0.5.1 && <0.6,+ mtl >=2.2.1 && <2.3,+ temporary >=1.2.0.4 && <1.3,+ test-framework >=0.8.1.1 && <0.9,+ test-framework-hunit >=0.3.0.2 && <0.4,+ test-framework-quickcheck2 >=0.3.0.3 && <0.4,+ QuickCheck >=2.9.2 && <2.10+ hs-source-dirs: test+ other-modules:+ ALife.Creatur.ChecklistQC+ ALife.Creatur.CounterQC+ ALife.Creatur.Database.CachedFileSystemQC+ ALife.Creatur.Database.FileSystemQC+ ALife.Creatur.Genetics.BRGCBoolBench+ ALife.Creatur.Genetics.BRGCBoolQC+ ALife.Creatur.Genetics.BRGCWord16QC+ ALife.Creatur.Genetics.BRGCWord8Bench+ ALife.Creatur.Genetics.BRGCWord8QC+ ALife.Creatur.Genetics.DiploidQC+ ALife.Creatur.Genetics.RecombinationQC+ ALife.Creatur.PersistentQC+ ALife.Creatur.UniverseQC+ ALife.Creatur.UtilQC+ ghc-options: -Wall
src/ALife/Creatur/Daemon.hs view
@@ -11,7 +11,8 @@ -- framework. -- -------------------------------------------------------------------------{-# LANGUAGE TypeFamilies, FlexibleContexts #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE FlexibleContexts #-} module ALife.Creatur.Daemon (@@ -28,12 +29,14 @@ import Control.Exception (SomeException, handle, catch) import Control.Monad (when) import Control.Monad.State (StateT, execStateT)+import Data.ByteString.Char8 (pack) import System.IO (hPutStr, stderr) import System.IO.Unsafe (unsafePerformIO) import qualified System.Posix.Daemonize as D import System.Posix.Signals (Handler(Catch), fullSignalSet, installHandler, sigTERM)-import System.Posix.Syslog (Priority(Warning), syslog)+import System.Posix.Syslog (Priority(Warning), Facility(DAEMON),+ syslogUnsafe) import System.Posix.User (getLoginName, getRealUserID) termReceived :: MVar Bool@@ -111,7 +114,7 @@ wrap t = catch t (\e -> do let err = show (e :: SomeException)- syslog Warning ("Unhandled exception: " ++ err)+ syslogUnsafe DAEMON Warning $ pack ("Unhandled exception: " ++ err) hPutStr stderr ("Unhandled exception: " ++ err) return ())