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