packages feed

alms-0.4.9: alms.cabal

Name:           alms
Version:        0.4.9
Copyright:      2010, Jesse A. Tov
Cabal-Version:  >= 1.8
License:        BSD3
License-File:   LICENSE
Stability:      experimental
Author:         Jesse A. Tov <tov@ccs.neu.edu>
Maintainer:     tov@ccs.neu.edu
Homepage:       http://www.ccs.neu.edu/~tov/pubs/alms
Category:       Compilers/Interpreters
Synopsis:       a practical affine language
Build-type:     Simple
Data-files:     lib/*.alms examples/*.alms examples/*.sh
                examples/*.in examples/*.out README Makefile

Description:
    Alms is a general-purpose programming language that supports practical
    affine types. To offer the expressiveness of Girard’s linear logic while
    keeping the type system light and convenient, Alms uses expressive kinds
    that minimize notation while maximizing polymorphism between affine and
    unlimited types.

    A key feature of Alms is the ability to introduce abstract affine types
    via ML-style signature ascription. In Alms, an interface can impose
    stiffer resource usage restrictions than the principal usage
    restrictions of its implementation. This form of sealing allows the type
    system to naturally and directly express a variety of resource
    management protocols from special-purpose type systems.

Flag editline
  Description: Enable line editing using the editline package
  Default:     True

Flag readline
  Description: Enable line editing using the readline package
  Default:     False

Executable alms
  Main-Is:              Main.hs
  Hs-Source-Dirs:       src
  GHC-Options:          -O3
  CPP-Options:          -DALMS_CABAL_BUILD
  Build-Depends:        haskell98,
                        base == 4.*,
                        syb >= 0.1,
                        pretty >= 1,
                        containers >= 0.1,
                        parsec == 2.*,
                        mtl >= 1.1,
                        filepath >= 1.1,
                        network >= 2.2,
                        directory >= 1.0,
                        template-haskell >= 2.0,
                        QuickCheck >= 2,
                        HUnit >= 1.2,
                        random >= 1,
                        array >= 0.3
  Other-Modules:        Basis,
                        Basis.Array,
                        Basis.Channel,
                        Basis.Channel.Haskell,
                        Basis.Exn,
                        Basis.Future,
                        Basis.IO,
                        Basis.MVar,
                        Basis.Socket,
                        Basis.Thread,
                        BasisUtils,
                        Coercion,
                        Dynamics,
                        Env,
                        ErrorST,
                        Lexer,
                        Loc,
                        Meta.DeriveNotable,
                        Meta.FileString,
                        Meta.Quasi,
                        Meta.QuoteData,
                        Meta.THHelpers,
                        PDNF,
                        Parser,
                        Paths,
                        Ppr,
                        Prec,
                        Rename,
                        Sigma,
                        Statics,
                        Syntax,
                        Syntax.Anti,
                        Syntax.Decl,
                        Syntax.Expr,
                        Syntax.Ident,
                        Syntax.Kind,
                        Syntax.Lit,
                        Syntax.Notable,
                        Syntax.POClass,
                        Syntax.Patt,
                        Syntax.SyntaxTable,
                        Syntax.Type,
                        Type,
                        TypeRel,
                        Util,
                        Value,
                        Viewable

  if flag(readline)
    Build-Depends:  readline >= 1.0
    CPP-Options:    -DUSE_READLINE=System.Console.Readline
  else
    if flag(editline)
      Build-Depends:  editline >= 0.2.1
      CPP-Options:    -DUSE_READLINE=System.Console.Editline.Readline