copilot-0.21: copilot.cabal
name: copilot
version: 0.21
cabal-version: >= 1.2
license: BSD3
license-file: LICENSE
author: Lee Pike <leepike@gmail.com>, Robin Morisset, Alwyn Goodloe, Sebastian Niller
synopsis: A lazy-list language for generating constant-time and constant-space C programs. Uses Atom as a backend.
build-type: Simple
maintainer: Lee Pike <leepike@gmail.com>
category: Language
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
> "fib" .= [0,1] ++ var "fib" + (drop 1 $ varW64 "fib")
> "t" .= even (var "fib")
> where even :: Spec Word64 -> Spec Bool
> even w = w `mod` const 2 == const 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
build-depends: base > 4 && < 5
, atom >= 1.0.5
, containers >= 0.2.0.1
, process >= 1.0.0.0
, random >= 1.0.0.0
, directory
, 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.Variables
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