packages feed

copilot-0.28: copilot.cabal

name:                copilot
version:             0.28
cabal-version:       >= 1.2
license:             BSD3
license-file:        LICENSE
author:              Lee Pike, Robin Morisset, Alwyn Goodloe, Sebastian Niller
synopsis:            A stream DSL for writing embedded C monitors.
build-type:          Simple
maintainer:          Lee Pike <leepike@galois.com>
category:            Language, Embedded
homepage:            http://leepike.github.com/Copilot/
description:         Can you write a list in Haskell? Then you can write embedded C code using
                     Copilot. Here's a Copilot program that computes the Fibonacci sequence (over
                     Word 64s) and tests for even numbers:
                     .
                     > fib :: Streams
                     > fib = do
                     >  let f = varW64 "fib"
                     >  let t = varB "t"
                     >  f .= [0,1] ++ f + (drop 1 f)
                     >  t .= even f
                     >    where even :: Spec Word64 -> Spec Bool
                     >          even w' = w' `mod` 2 == 0
                     .
                     Copilot contains an interpreter, a compiler, and uses a model-checker to check
                     the correctness of your program. The compiler generates constant time and
                     constant space C code via Tom Hawkin's Atom (thanks Tom!). Copilot was
                     originally developed to write embedded monitors for more complex embedded
                     systems, but it can be used to develop a variety of functional-style embedded
                     code.

extra-source-files:  README

library
    ghc-options:     -Wall
    -- These build depends represent my current system.  This will probably
    -- build on packages outside these constaints.
    build-depends:     
                       base >= 4.2 && < 6
                     , atom >= 1.0.8
                     , containers >= 0.2.0.1
                     , process >= 1.0.0.0
                     , random >= 1.0.0.0
                     , directory >= 1.0.0.0
                     , mtl >= 1.0.0.0
                     , filepath >= 1.0.0.0

    extensions:
    exposed-modules: Language.Copilot
                     Language.Copilot.AdHocC
                     Language.Copilot.Core
                     Language.Copilot.Language
                     Language.Copilot.AtomToC
                     Language.Copilot.Compiler
                     Language.Copilot.Interpreter
                     Language.Copilot.Help
                     Language.Copilot.Analyser
                     Language.Copilot.PrettyPrinter
                     Language.Copilot.Tests.Random
                     Language.Copilot.Dispatch
                     Language.Copilot.Interface
                     Language.Copilot.Libs.ErrorChks
                     Language.Copilot.Libs.PTLTL
                     Language.Copilot.Libs.LTL
                     Language.Copilot.Libs.Indexes
                     Language.Copilot.Libs.Statistics
                     Language.Copilot.Examples.Examples
                     Language.Copilot.Examples.LTLExamples
                     Language.Copilot.Examples.PTLTLExamples
                     Language.Copilot.Examples.StatExamples