packages feed

linearscan-hoopl-1.0.0: linearscan-hoopl.cabal

name:          linearscan-hoopl
version:       1.0.0
synopsis:      Makes it easy to use the linearscan register allocator with Hoopl
homepage:      http://github.com/jwiegley/linearscan-hoopl
license:       BSD3
license-file:  LICENSE
author:        John Wiegley
maintainer:    johnw@newartisans.com
category:      Development
build-type:    Simple
cabal-version: >=1.10

description:
  This module provides two convenience features for Hoopl users that wish to
  use @linearscan@ for register allocation in their compilers.
  .
  First, it defines a type class called 'NodeAlloc'. After defining an
  instance of this class for your particular graph node type, simply call
  'LinearScan.Hoopl.allocateHoopl'. This is a simpler interface than using
  @linearscan@ directly, which requires two records of functions that are more
  general in nature than the methods of 'NodeAlloc'.
  .
  Second, it provides a DSL for constructing assembly language DSLs that
  compile into Hoople program graphs. See the tests for a concrete example.
  This is mainly useful for constructing tests of intermediate representations.
  .
  Please see the tests for an example of the simple assembly language that is
  used to test the @linearscan@ allocator.

Source-repository head
  type:     git
  location: https://github.com/jwiegley/linearscan-hoopl

library
  default-language: Haskell2010
  exposed-modules:
    LinearScan.Hoopl
    LinearScan.Hoopl.DSL
  build-depends:    
      base       >=4.7 && <5
    , hoopl      >= 3.10.0.1
    , linearscan >= 1.0 && < 1.1
    , containers
    , transformers
    , free
    , QuickCheck

test-suite test
  default-language: Haskell2010
  type:             exitcode-stdio-1.0
  ghc-options:      -Wall -fno-warn-deprecated-flags -threaded
  hs-source-dirs:   test
  main-is:          Main.hs
  other-modules:    
    AsmTest
    Assembly
    Normal
    Generated
    Programs.Blocked
    Programs.Exhaustion
    Programs.Ordered
  build-depends: 
      base >=3
    , hspec              >= 1.4.4
    , hspec-expectations >= 0.3
    , hoopl              >= 3.10.0.1 && < 3.11
    , linearscan         >= 1.0 && < 1.1
    , linearscan-hoopl
    , containers         >= 0.5.5
    , transformers       >= 0.3.0.0
    , lens-family-core
    , deepseq
    , QuickCheck