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