packages feed

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