CSPM-CoreLanguage 0.2.0.3 → 0.3.0.0
raw patch · 6 files changed
+35/−19 lines, 6 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ CSPM.CoreLanguage: coreLanguageVersion :: Version
+ CSPM.CoreLanguage.Event: instance Typeable1 TTE
+ CSPM.CoreLanguage.Process: instance Typeable1 Process
Files
- CSPM-CoreLanguage.cabal +4/−3
- src/CSPM/CoreLanguage.hs +7/−0
- src/CSPM/CoreLanguage/Event.hs +6/−2
- src/CSPM/CoreLanguage/Field.hs +3/−3
- src/CSPM/CoreLanguage/Process.hs +10/−5
- src/CSPM/CoreLanguage/ProcessWrapper.hs +5/−6
CSPM-CoreLanguage.cabal view
@@ -1,5 +1,5 @@ Name: CSPM-CoreLanguage-Version: 0.2.0.3+Version: 0.3.0.0 Synopsis: Definition of a FDR-compatible CSP core-language. Description: This package contains an interface for a CSP core-language.@@ -15,9 +15,8 @@ License-File: LICENSE Author: 2010 - 2011 Marc Fontaine Maintainer: Marc Fontaine <fontaine@cs.uni-duesseldorf.de>-Homepage: http://www.stups.uni-duesseldorf.de/~fontaine/csp Stability: experimental-Tested-With: GHC == 7.0.2+Tested-With: GHC == 7.0.3 Cabal-Version: >= 1.10 Build-Type: Simple @@ -34,3 +33,5 @@ CSPM.CoreLanguage.Process CSPM.CoreLanguage.ProcessWrapper CSPM.CoreLanguage.Field+ Other-Modules:+ Paths_CSPM_CoreLanguage
src/CSPM/CoreLanguage.hs view
@@ -17,6 +17,7 @@ ,module CSPM.CoreLanguage.ProcessWrapper ,module CSPM.CoreLanguage.Event ,module CSPM.CoreLanguage.Field+ ,coreLanguageVersion ) where @@ -26,3 +27,9 @@ import CSPM.CoreLanguage.Event (BE) import CSPM.CoreLanguage.Field hiding (BF (..)) import CSPM.CoreLanguage.Field (BF)+import Paths_CSPM_CoreLanguage (version)+import Data.Version++-- | The version of the CSPM-CoreLangugage library+coreLanguageVersion :: Version+coreLanguageVersion = version
src/CSPM/CoreLanguage/Event.hs view
@@ -10,16 +10,19 @@ -- -- This modules defines the event-related part of an interface between -- the CSPM-CoreLanguage and the underlying implementation.--- The underlying implementation has to instantiate the type-families 'Event', 'EventSet'--- and 'RenamingRelation' and the class 'BE' ('BE'== base event).+-- The underlying implementation has to instantiate the type-families 'Event',+-- 'EventSet', 'RenamingRelation'+-- and the class 'BE' ('BE'== base event). -- -- For full CSPM-support (channels with multiple fields, event closure sets etc.) -- CSPM.CoreLanguage.Field is also needed. ----------------------------------------------------------------------------- {-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-} module CSPM.CoreLanguage.Event where+import Data.Typeable type family Event i type family EventSet i@@ -58,6 +61,7 @@ = TickEvent | TauEvent | SEvent (Event i)+ deriving Typeable class ShowEvent i where showEvent :: i -> String class ShowTTE i where showTTE :: i -> String
src/CSPM/CoreLanguage/Field.hs view
@@ -1,15 +1,15 @@ ----------------------------------------------------------------------------- -- | -- Module : CSPM.CoreLanguage.Field--- Copyright : (c) Fontaine 2010+-- Copyright : (c) Fontaine 2010 - 2011 -- License : BSD -- -- Maintainer : fontaine@cs.uni-duesseldorf.de -- Stability : experimental -- Portability : GHC-only ----- This modules extends 'BE' for languages that also support multi-field-events and--- event-closure sets.+-- This modules defines the class 'BF' for versions of CSP+-- that also support multi-field-events and event-closure sets. ----------------------------------------------------------------------------- {-# LANGUAGE TypeFamilies #-}
src/CSPM/CoreLanguage/Process.hs view
@@ -1,7 +1,7 @@ ----------------------------------------------------------------------------- -- | -- Module : CSPM.CoreLanguage.Process--- Copyright : (c) Fontaine 2010+-- Copyright : (c) Fontaine 2011 -- License : BSD -- -- Maintainer : fontaine@cs.uni-duesseldorf.de@@ -13,11 +13,15 @@ -- but abstracts, e.g. from the underlying functional programming language. -- -- The implementation of the underlying language--- must provide instances for the type families 'Prefix' and 'ExtProcess' and class 'BL'.+-- must provide instances for the type families 'Prefix', 'ExtProcess'+-- and class 'BL'. ----------------------------------------------------------------------------- {-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-} -module CSPM.CoreLanguage.Process where+module CSPM.CoreLanguage.Process+where+import Data.Typeable import CSPM.CoreLanguage.Event @@ -28,8 +32,8 @@ type family ExtProcess i class (BE i) => BL i where- -- | Try to perform an 'Event' return the successor 'Process' or Nothing if the event is- -- not possible.+ -- | Try to perform an 'Event' return the successor 'Process' or Nothing+ -- if the event is not possible. prefixNext :: Prefix i -> Event i -> Maybe (Process i) switchOn :: ExtProcess i -> Process i @@ -61,6 +65,7 @@ | Renaming (RenamingRelation i) (Process i) | LinkParallel (RenamingRelation i) (Process i) (Process i) | Exception (EventSet i) (Process i) (Process i)+ deriving Typeable isOmega :: Process i -> Bool isOmega Omega = True
src/CSPM/CoreLanguage/ProcessWrapper.hs view
@@ -47,7 +47,6 @@ -> Process i -> Process i -> Process i aparallel = AParallel---aparallel a1 a2 p1 p2 = RepAParallel [(a1,p1),(a2,p2)] seq :: Process i -> Process i -> Process i seq = Seq@@ -87,19 +86,19 @@ repAParallel :: [(EventSet i,Process i)] -> Process i repAParallel l = case l of- [] -> error "ProcessWrapper : empty repAParallel"+ [] -> error "ProcessWrapper.hs: empty repAParallel" [(_,p)] -> p--- [(c1,p1),(c2,p2)] -> aparallel c1 c2 p1 p2 -- takes longer than generic version ? _ -> RepAParallel l repSharing :: EventSet i -> [Process i] -> Process i-repSharing _ [] = error "ProcessWrapper.hs : empty repSharing"+repSharing _ [] = error "ProcessWrapper.hs: empty repSharing" repSharing _ [p] = p repSharing c l = foldr1 (\a b -> sharing a c b) l repLinkParallel :: RenamingRelation i -> [Process i] -> Process i-repLinkParallel _ [] = error "ProcessWrapper.hs : empty repLinkParallel"-repLinkParallel _ [_] = error "ProcessWrapper.hs : repLinkParallel over one process"+repLinkParallel _ [] = error "ProcessWrapper.hs: empty repLinkParallel"+repLinkParallel _ [_]+ = error "ProcessWrapper.hs: repLinkParallel over one process" repLinkParallel rel l = foldr1 (\a b -> linkParallel rel a b) l chaos :: EventSet i -> Process i