copilot-c99 0.2.4 → 0.2.5
raw patch · 2 files changed
+16/−8 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- copilot-c99.cabal +13/−2
- src/Copilot/Compile/C99/Phases.hs +3/−6
copilot-c99.cabal view
@@ -1,8 +1,19 @@ cabal-version : >= 1.10 name : copilot-c99-version : 0.2.4+version : 0.2.5 synopsis : A compiler for Copilot targeting C99.-description : This is a back-end from Copilot to the Atom DSL. Please see README.mk for more details.+description : + This package is a back-end from Copilot to the Atom DSL. + . + Copilot is a stream (i.e., infinite lists) domain-specific language (DSL) in+ Haskell that compiles into embedded C. Copilot contains an interpreter,+ multiple back-end compilers, and other verification tools. A tutorial, bug+ reports, and todos are available at+ <https://github.com/niswegmann/copilot-discussion>. + . + Examples are available at+ <https://github.com/leepike/Copilot/tree/master/Examples>.+ license : BSD3 license-file : LICENSE maintainer : leepike@galois.com
src/Copilot/Compile/C99/Phases.hs view
@@ -140,24 +140,21 @@ { Core.streamId = id , Core.streamExpr = e , Core.streamExprType = t1- , Core.streamGuard = g } = do let e' = c2aExpr meta e Just strmInfo = M.lookup id (streamInfoMap meta)- g' = cond (c2aExpr meta g)- updateStreamState1 t1 id e' g' strmInfo+ updateStreamState1 t1 id e' strmInfo updateStreamState1- :: Core.Type a -> Core.Id -> A.E a -> Atom () -> StreamInfo -> Atom ()- updateStreamState1 t1 id e1 g1+ :: Core.Type a -> Core.Id -> A.E a -> StreamInfo -> Atom ()+ updateStreamState1 t1 id e1 StreamInfo { streamInfoTempVar = tmp , streamInfoType = t2 } = exactPhase (fromEnum UpdateStates) $ atom ("update_state_s" ++ show id) $ do- g1 W.AssignInst <- return (W.assignInst t2) Just Refl <- return (t1 =~= t2) tmp <== e1 -- coerce (cong p) e1