Cabal revisions of llvm-extra-0.7.3
Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.
revision 1
-Name: llvm-extra-Version: 0.7.3-License: BSD3-License-File: LICENSE-Author: Henning Thielemann <haskell@henning-thielemann.de>-Maintainer: Henning Thielemann <haskell@henning-thielemann.de>-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",- .- * support instance declarations of LLVM classes- in "LLVM.Extra.Class",- .- * 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"- .- * automatic adaption to target specific extensions,- currently used for access of vector operations- that are specific to an SSE level on x86 processors- in "LLVM.Extra.Extension"- (On x86 architectures we depend on the cpuid package- that is needed for automatic detection of available features.)- .- * 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"- .- * a Makefile and a description- of how to run LLVM code from within GHCi.-Stability: Experimental-Tested-With: GHC==6.10.4, GHC==6.12.3-Tested-With: GHC==7.0.4, GHC==7.4.1, GHC==7.6.3-Cabal-Version: >=1.14-Build-Type: Simple-Extra-Source-Files:- Makefile- Problems.txt- x86/cpuid/LLVM/Extra/ExtensionCheck/X86.hs- x86/none/LLVM/Extra/ExtensionCheck/X86.hs--Flag buildExamples- description: Build example executables- default: False--Flag buildTools- description: Build intrinsic translator- default: False--Flag cpuid- description: Use CPUID for host feature detection if available on the architecture- default: True--Source-Repository this- Tag: 0.7.3- 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:- -- llvm must be imported with restrictive version bounds,- -- because we import implicitly and unqualified- llvm-tf >=3.0.3 && <3.2,- tfp >=1.0 && <1.1,- non-empty >=0.2.1 && <0.4,- containers >=0.1 && <0.6,- bifunctors >=5.4 && <6,- transformers >=0.1.1 && <0.6,- utility-ht >=0.0.1 && <0.1-- Build-Depends:- base >=3 && <5-- If (arch(i386) || arch(x86_64)) && flag(cpuid)- Build-Depends:- unsafe >=0.0 && <0.1,- cpuid >=0.2.3 && <0.3- Hs-Source-Dirs: x86/cpuid- Else- -- Instead of calling the cpuid instruction directly- -- we may ask LLVM's Subtarget detection.- -- This would also enable cross compilation.- -- However in LLVM-2.6 this is only available in the C++ interface.- Hs-Source-Dirs: x86/none-- Default-Language: Haskell98- GHC-Options: -Wall- Hs-source-dirs: src- Exposed-Modules:- LLVM.Extra.Arithmetic- LLVM.Extra.Monad- LLVM.Extra.Memory- LLVM.Extra.Maybe- LLVM.Extra.MaybeContinuation- LLVM.Extra.Either- LLVM.Extra.Class- LLVM.Extra.Control- LLVM.Extra.Extension- LLVM.Extra.Extension.X86- LLVM.Extra.ExtensionCheck.X86- LLVM.Extra.Array- LLVM.Extra.Scalar- LLVM.Extra.Vector- LLVM.Extra.ScalarOrVector- LLVM.Extra.Iterator- LLVM.Extra.Multi.Iterator- LLVM.Extra.Multi.Value- LLVM.Extra.Multi.Value.Memory- LLVM.Extra.Multi.Vector- LLVM.Extra.Multi.Vector.Memory- LLVM.Extra.Multi.Class- Other-Modules:- LLVM.Extra.ArithmeticPrivate- LLVM.Extra.MaybePrivate- LLVM.Extra.EitherPrivate- LLVM.Extra.MemoryPrivate- LLVM.Extra.Extension.X86Auto--Executable tone-llvm- If flag(buildExamples)- Build-Depends:- llvm-extra,- llvm-tf,- tfp,- non-empty,- containers >=0.1 && <0.6,- 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--Executable prepare-intrinsics- If flag(buildTools)- Build-Depends:- parsec >=2.1 && <3.2,- containers >=0.1 && <0.6,- transformers,- utility-ht >=0.0.1 && <0.1,- base >=3 && <5- Else- Buildable: False- Default-Language: Haskell98- GHC-Options: -Wall- Main-Is: src/PrepareIntrinsics.hs+Name: llvm-extra +Version: 0.7.3 +x-revision: 1 +License: BSD3 +License-File: LICENSE +Author: Henning Thielemann <haskell@henning-thielemann.de> +Maintainer: Henning Thielemann <haskell@henning-thielemann.de> +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", + . + * support instance declarations of LLVM classes + in "LLVM.Extra.Class", + . + * 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" + . + * automatic adaption to target specific extensions, + currently used for access of vector operations + that are specific to an SSE level on x86 processors + in "LLVM.Extra.Extension" + (On x86 architectures we depend on the cpuid package + that is needed for automatic detection of available features.) + . + * 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" + . + * a Makefile and a description + of how to run LLVM code from within GHCi. +Stability: Experimental +Tested-With: GHC==6.10.4, GHC==6.12.3 +Tested-With: GHC==7.0.4, GHC==7.4.1, GHC==7.6.3 +Cabal-Version: >=1.14 +Build-Type: Simple +Extra-Source-Files: + Makefile + Problems.txt + x86/cpuid/LLVM/Extra/ExtensionCheck/X86.hs + x86/none/LLVM/Extra/ExtensionCheck/X86.hs + +Flag buildExamples + description: Build example executables + default: False + +Flag buildTools + description: Build intrinsic translator + default: False + +Flag cpuid + description: Use CPUID for host feature detection if available on the architecture + default: True + +Source-Repository this + Tag: 0.7.3 + 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: + -- llvm must be imported with restrictive version bounds, + -- because we import implicitly and unqualified + llvm-tf >=3.0.3 && <3.2, + tfp >=1.0 && <1.1, + non-empty >=0.2.1 && <0.4, + containers >=0.1 && <0.7, + bifunctors >=5.4 && <6, + transformers >=0.1.1 && <0.6, + utility-ht >=0.0.1 && <0.1 + + Build-Depends: + base >=3 && <5 + + If (arch(i386) || arch(x86_64)) && flag(cpuid) + Build-Depends: + unsafe >=0.0 && <0.1, + cpuid >=0.2.3 && <0.3 + Hs-Source-Dirs: x86/cpuid + Else + -- Instead of calling the cpuid instruction directly + -- we may ask LLVM's Subtarget detection. + -- This would also enable cross compilation. + -- However in LLVM-2.6 this is only available in the C++ interface. + Hs-Source-Dirs: x86/none + + Default-Language: Haskell98 + GHC-Options: -Wall + Hs-source-dirs: src + Exposed-Modules: + LLVM.Extra.Arithmetic + LLVM.Extra.Monad + LLVM.Extra.Memory + LLVM.Extra.Maybe + LLVM.Extra.MaybeContinuation + LLVM.Extra.Either + LLVM.Extra.Class + LLVM.Extra.Control + LLVM.Extra.Extension + LLVM.Extra.Extension.X86 + LLVM.Extra.ExtensionCheck.X86 + LLVM.Extra.Array + LLVM.Extra.Scalar + LLVM.Extra.Vector + LLVM.Extra.ScalarOrVector + LLVM.Extra.Iterator + LLVM.Extra.Multi.Iterator + LLVM.Extra.Multi.Value + LLVM.Extra.Multi.Value.Memory + LLVM.Extra.Multi.Vector + LLVM.Extra.Multi.Vector.Memory + LLVM.Extra.Multi.Class + Other-Modules: + LLVM.Extra.ArithmeticPrivate + LLVM.Extra.MaybePrivate + LLVM.Extra.EitherPrivate + LLVM.Extra.MemoryPrivate + LLVM.Extra.Extension.X86Auto + +Executable tone-llvm + If flag(buildExamples) + Build-Depends: + llvm-extra, + llvm-tf, + tfp, + non-empty, + containers, + 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 + +Executable prepare-intrinsics + If flag(buildTools) + Build-Depends: + parsec >=2.1 && <3.2, + containers, + transformers, + utility-ht >=0.0.1 && <0.1, + base >=3 && <5 + Else + Buildable: False + Default-Language: Haskell98 + GHC-Options: -Wall + Main-Is: src/PrepareIntrinsics.hs