copilot-language 0.3 → 0.4
raw patch · 6 files changed
+30/−55 lines, 6 files
Files
- copilot-language.cabal +1/−1
- src/Copilot/Language/Analyze.hs +7/−7
- src/Copilot/Language/Operators/Extern.hs +5/−5
- src/Copilot/Language/Reify.hs +5/−5
- src/Copilot/Language/Spec.hs +6/−31
- src/Copilot/Language/Stream.hs +6/−6
copilot-language.cabal view
@@ -1,6 +1,6 @@ cabal-version: >=1.10 name: copilot-language-version: 0.3+version: 0.4 synopsis: A Haskell-embedded DSL for monitoring hard real-time distributed systems. description: Blah blah blah...
src/Copilot/Language/Analyze.hs view
@@ -15,7 +15,7 @@ import Copilot.Core (DropIdx) import qualified Copilot.Core as C-import Copilot.Language.Stream (Stream (..), FunArg (..))+import Copilot.Language.Stream (Stream (..), Arg (..)) import Copilot.Language.Spec import Copilot.Language.Error (badUsage) @@ -90,8 +90,8 @@ analyzeExpr refStreams e0 >> mapM_ analyzeTriggerArg args where- analyzeTriggerArg :: TriggerArg -> IO ()- analyzeTriggerArg (TriggerArg e) = analyzeExpr refStreams e+ analyzeTriggerArg :: Arg -> IO ()+ analyzeTriggerArg (Arg e) = analyzeExpr refStreams e -------------------------------------------------------------------------------- @@ -130,7 +130,7 @@ Nothing -> return () Just e -> go seenExt nodes' e checkArgs = case seenExt of - NoExtern -> mapM_ (\(FunArg a) -> + NoExtern -> mapM_ (\(Arg a) -> go SeenFun nodes' a) args SeenFun -> throw NestedExternFun SeenArr -> throw NestedArray@@ -284,7 +284,7 @@ triggerExts :: ExternEnv -> Trigger -> IO ExternEnv triggerExts env (Trigger _ guard args) = do env' <- collectExts refStreams guard env - foldM (\env'' (TriggerArg arg_) -> collectExts refStreams arg_ env'')+ foldM (\env'' (Arg arg_) -> collectExts refStreams arg_ env'') env' args collectExts :: C.Typed a => IORef Env -> Stream a -> ExternEnv -> IO ExternEnv@@ -312,9 +312,9 @@ env' <- case me of Nothing -> return env Just e -> go nodes env e- env'' <- foldM (\env'' (FunArg arg_) -> go nodes env'' arg_)+ env'' <- foldM (\env'' (Arg arg_) -> go nodes env'' arg_) env' args - let argTypes = map (\(FunArg arg_) -> getSimpleType arg_) args + let argTypes = map (\(Arg arg_) -> getSimpleType arg_) args let fun = (name, getSimpleType stream) return env'' { externFunEnv = fun : externFunEnv env'' , externFunArgs = (name, argTypes) : externFunArgs env''
src/Copilot/Language/Operators/Extern.hs view
@@ -17,7 +17,6 @@ , externI64 , externF , externD- , FunArg , externFun , externArray , externArrayB@@ -31,7 +30,7 @@ , externArrayI64 , externArrayF , externArrayD- , funArg+ , funArg -- ^ Deprecated. ) where import Copilot.Core (Typed)@@ -46,15 +45,16 @@ extern :: Typed a => String -> Maybe [a] -> Stream a extern = Extern -externFun :: Typed a => String -> [FunArg] -> Maybe (Stream a) -> Stream a+externFun :: Typed a => String -> [Arg] -> Maybe (Stream a) -> Stream a externFun = ExternFun externArray :: (Typed a, Typed b, Integral a) => String -> Stream a -> Size -> Maybe [[b]] -> Stream b externArray = ExternArray -funArg :: Typed a => Stream a -> FunArg-funArg = FunArg+-- | Deprecated.+funArg :: Typed a => Stream a -> Arg+funArg = Arg --------------------------------------------------------------------------------
src/Copilot/Language/Reify.hs view
@@ -17,7 +17,7 @@ --import Copilot.Language.Reify.Sharing (makeSharingExplicit) import Copilot.Language.Analyze (analyze) import Copilot.Language.Spec-import Copilot.Language.Stream (Stream (..), FunArg (..))+import Copilot.Language.Stream (Stream (..), Arg (..)) import Prelude hiding (id) import Data.IORef@@ -83,8 +83,8 @@ where - mkTriggerArg :: TriggerArg -> IO Core.UExpr- mkTriggerArg (TriggerArg e) = do+ mkTriggerArg :: Arg -> IO Core.UExpr+ mkTriggerArg (Arg e) = do w <- mkExpr refMkId refStreams refMap e return $ Core.UExpr typeOf w @@ -181,8 +181,8 @@ ------------------------------------------------------ - mkFunArg :: FunArg -> IO Core.UExpr- mkFunArg (FunArg e) = do+ mkFunArg :: Arg -> IO Core.UExpr+ mkFunArg (Arg e) = do w <- mkExpr refMkId refStreams refMap e return $ Core.UExpr typeOf w
src/Copilot/Language/Spec.hs view
@@ -16,7 +16,6 @@ , observer , observers , Trigger (..)- , TriggerArg (..) , triggers , trigger , arg@@ -67,50 +66,26 @@ -------------------------------------------------------------------------------- data Observer where- Observer- :: Typed a- => String- -> Stream a- -> Observer+ Observer :: Typed a => String -> Stream a -> Observer -------------------------------------------------------------------------------- -observer - :: Typed a- => String- -> Stream a- -> Spec+observer :: Typed a => String -> Stream a -> Spec observer name e = tell [ObserverItem $ Observer name e] -------------------------------------------------------------------------------- data Trigger where- Trigger- :: Core.Name- -> Stream Bool- -> [TriggerArg]- -> Trigger------------------------------------------------------------------------------------data TriggerArg where- TriggerArg- :: Typed a- => Stream a- -> TriggerArg+ Trigger :: Core.Name -> Stream Bool -> [Arg] -> Trigger -------------------------------------------------------------------------------- -trigger- :: String- -> Stream Bool- -> [TriggerArg]- -> Spec+trigger :: String -> Stream Bool -> [Arg] -> Spec trigger name e args = tell [TriggerItem $ Trigger name e args] -------------------------------------------------------------------------------- -arg :: Typed a => Stream a -> TriggerArg-arg = TriggerArg+arg :: Typed a => Stream a -> Arg+arg = Arg --------------------------------------------------------------------------------
src/Copilot/Language/Stream.hs view
@@ -2,15 +2,15 @@ -- Copyright © 2011 National Institute of Aerospace / Galois, Inc. -------------------------------------------------------------------------------- --- |+-- | Abstract syntax for streams and operators. {-# LANGUAGE GADTs #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE Rank2Types #-} module Copilot.Language.Stream- ( Stream (..)- , FunArg (..)+ ( Stream (..) + , Arg (..) ) where import Copilot.Core (Typed, typeOf)@@ -30,7 +30,7 @@ Extern :: Typed a => String -> Maybe [a] -> Stream a ExternFun :: Typed a - => String -> [FunArg] -> Maybe (Stream a) -> Stream a+ => String -> [Arg] -> Maybe (Stream a) -> Stream a ExternArray :: (Typed a, Typed b, Integral a) => String -> Stream a -> Int -> Maybe [[b]] -> Stream b Local :: (Typed a, Typed b) @@ -46,8 +46,8 @@ -------------------------------------------------------------------------------- -data FunArg where- FunArg :: Typed a => Stream a -> FunArg+data Arg where+ Arg :: Typed a => Stream a -> Arg --------------------------------------------------------------------------------