Cabal-Version: 2.2 Name: llvm-extra Version: 0.10 License: BSD-3-Clause License-File: LICENSE Author: Henning Thielemann Maintainer: Henning Thielemann Homepage: https://wiki.haskell.org/LLVM Category: Compilers/Interpreters, Code Generation Synopsis: Utility functions for the llvm interface Description: The Low-Level Virtual-Machine is a compiler back-end with optimizer. You may also call it a high-level portable assembler. This package provides various utility functions for the Haskell interface to LLVM, for example: . * arithmetic operations with more general types but better type inference than the @llvm@ interface in "LLVM.Extra.Arithmetic", . * a type class for loading and storing sets of values with one command (macro) in "LLVM.Extra.Memory", . * storing and reading Haskell values in an LLVM compatible format in "LLVM.Extra.Marshal", . * LLVM functions for loading and storing values in Haskell's @Storable@ format in "LLVM.Extra.Storable", . * support value tuples and instance declarations of LLVM classes in "LLVM.Extra.Tuple", . * handling of termination by a custom monad on top of @CodeGenFunction@ in "LLVM.Extra.MaybeContinuation" . * various kinds of loops (while) and condition structures (if-then-else) in "LLVM.Extra.Control" . * more functional loop construction using "LLVM.Extra.Iterator" . * complex Haskell values mapped to LLVM values in "LLVM.Extra.Multi.Value" . * advanced vector operations such as sum of all vector elements, cumulative sum, floor, non-negative fraction, absolute value in "LLVM.Extra.Vector" . * type classes for handling scalar and vector operations in a uniform way in "LLVM.Extra.ScalarOrVector" Stability: Experimental Tested-With: GHC==7.0.4, GHC==7.4.2, GHC==7.8.4 Tested-With: GHC==8.4.4, GHC==8.6.5, GHC==8.8.1 Build-Type: Simple Extra-Source-Files: Makefile Changes.md Flag buildExamples description: Build example executables default: False Source-Repository this Tag: 0.10 Type: darcs Location: http://code.haskell.org/~thielema/llvm-extra/ Source-Repository head Type: darcs Location: http://code.haskell.org/~thielema/llvm-extra/ Library Build-Depends: private, llvm-tf >=9.2 && <9.3, tfp >=1.0 && <1.1, non-empty >=0.2.1 && <0.4, fixed-length >=0.2.1 && <0.3, containers >=0.1 && <0.7, enumset >=0.0.5 && <0.1, storable-record >=0.0.5 && <0.1, storable-enum >=0.0 && <0.1, bool8 >=0.0 && <0.1, transformers >=0.1.1 && <0.6, tagged >=0.7 && <0.9, utility-ht >=0.0.15 && <0.1, prelude-compat >=0.0 && <0.0.1, base-orphans >= 0.5 && <1, base >=3 && <5 Default-Language: Haskell98 GHC-Options: -Wall Hs-source-dirs: src Exposed-Modules: LLVM.Extra.Arithmetic LLVM.Extra.Monad LLVM.Extra.Memory LLVM.Extra.Marshal LLVM.Extra.Storable LLVM.Extra.Maybe LLVM.Extra.MaybeContinuation LLVM.Extra.Either LLVM.Extra.Tuple LLVM.Extra.Control LLVM.Extra.Array LLVM.Extra.Scalar LLVM.Extra.Vector LLVM.Extra.ScalarOrVector LLVM.Extra.FastMath LLVM.Extra.Iterator LLVM.Extra.Multi.Iterator LLVM.Extra.Multi.Value LLVM.Extra.Multi.Value.Vector LLVM.Extra.Multi.Vector LLVM.Extra.Multi.Vector.Instance LLVM.Extra.Multi.Class Other-Modules: LLVM.Extra.Storable.Array LLVM.Extra.Storable.Private LLVM.Extra.TuplePrivate LLVM.Extra.MaybePrivate LLVM.Extra.EitherPrivate LLVM.Extra.MemoryPrivate LLVM.Extra.Multi.Value.Private Library private Build-Depends: llvm-tf, tfp, non-empty, utility-ht, base Default-Language: Haskell98 GHC-Options: -Wall Hs-source-dirs: private Exposed-Modules: LLVM.Extra.ScalarOrVectorPrivate LLVM.Extra.ArithmeticPrivate Executable tone-llvm If flag(buildExamples) Build-Depends: llvm-extra, llvm-tf, tfp, non-empty, containers >=0.1 && <0.7, transformers, utility-ht >=0.0.1 && <0.1, base >=3 && <5 Else Buildable: False Default-Language: Haskell98 GHC-Options: -Wall Main-Is: src/Array.hs Test-Suite llvm-extra-test Type: exitcode-stdio-1.0 Build-Depends: QuickCheck >=2.11 && <3, private, llvm-extra, llvm-tf, tfp, storable-record, utility-ht >=0.0.1 && <0.1, base >=3 && <5 Default-Language: Haskell98 GHC-Options: -Wall Hs-Source-Dirs: test Main-Is: Main.hs Other-Modules: Test.Storable Test.Vector LLVM.Extra.VectorAlt