name: llvm-hs
version: 6.1.1
license: BSD3
license-file: LICENSE
author: Anthony Cowley, Stephen Diehl, Moritz Kiefer <moritz.kiefer@purelyfunctional.org>, Benjamin S. Scarlet
maintainer: Anthony Cowley, Stephen Diehl, Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
copyright: (c) 2013 Benjamin S. Scarlet and Google Inc.
homepage: http://github.com/llvm-hs/llvm-hs/
bug-reports: http://github.com/llvm-hs/llvm-hs/issues
build-type: Custom
stability: experimental
cabal-version: 1.24
category: Compilers/Interpreters, Code Generation
synopsis: General purpose LLVM bindings
description:
llvm-hs is a set of Haskell bindings for LLVM <http://llvm.org/>. Unlike other current Haskell bindings,
it uses an ADT to represent LLVM IR (<http://llvm.org/docs/LangRef.html>), and so offers two advantages: it
handles almost all of the stateful complexities of using the LLVM API to build IR; and it supports moving IR not
only from Haskell into LLVM C++ objects, but the other direction - from LLVM C++ into Haskell.
extra-source-files:
src/LLVM/Internal/FFI/Analysis.h
src/LLVM/Internal/FFI/Attribute.h
src/LLVM/Internal/FFI/AttributeC.hpp
src/LLVM/Internal/FFI/BinaryOperator.h
src/LLVM/Internal/FFI/CallingConvention.h
src/LLVM/Internal/FFI/Constant.h
src/LLVM/Internal/FFI/ErrorHandling.hpp
src/LLVM/Internal/FFI/GlobalValue.h
src/LLVM/Internal/FFI/InlineAssembly.h
src/LLVM/Internal/FFI/Instruction.h
src/LLVM/Internal/FFI/LibFunc.h
src/LLVM/Internal/FFI/Metadata.h
src/LLVM/Internal/FFI/OrcJIT.h
src/LLVM/Internal/FFI/SMDiagnostic.h
src/LLVM/Internal/FFI/Target.h
src/LLVM/Internal/FFI/Target.hpp
src/LLVM/Internal/FFI/Type.h
src/LLVM/Internal/FFI/Value.h
test/debug_metadata_1.ll
test/debug_metadata_2.ll
tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.1
extra-source-files: CHANGELOG.md
source-repository head
type: git
location: git://github.com/llvm-hs/llvm-hs.git
branch: llvm-4
flag shared-llvm
description: link against llvm shared rather than static library
default: True
flag debug
description: compile C(++) shims with debug info for ease of troubleshooting
default: False
custom-setup
setup-depends: base
, Cabal
, containers
library
default-language: Haskell2010
build-tools: hsc2hs, llvm-config
ghc-options: -Wall -fno-warn-name-shadowing -fno-warn-orphans
build-depends:
base >= 4.9 && < 5,
attoparsec >= 0.13,
exceptions >= 0.8,
utf8-string >= 0.3.7,
bytestring >= 0.9.1.10,
transformers >= 0.3 && < 0.6,
mtl >= 2.1.3,
template-haskell >= 2.5.0.0,
containers >= 0.4.2.1,
array >= 0.4.0.0,
llvm-hs-pure == 6.1.*
hs-source-dirs: src
default-extensions:
NoImplicitPrelude
TupleSections
DeriveDataTypeable
DeriveGeneric
EmptyDataDecls
FlexibleContexts
FlexibleInstances
StandaloneDeriving
ConstraintKinds
exposed-modules:
LLVM
LLVM.Analysis
LLVM.CodeGenOpt
LLVM.CodeModel
LLVM.CommandLine
LLVM.Context
LLVM.Diagnostic
LLVM.Exception
LLVM.ExecutionEngine
LLVM.Internal.Analysis
LLVM.Internal.Atomicity
LLVM.Internal.Attribute
LLVM.Internal.BasicBlock
LLVM.Internal.CallingConvention
LLVM.Internal.Coding
LLVM.Internal.CommandLine
LLVM.Internal.Constant
LLVM.Internal.Context
LLVM.Internal.DataLayout
LLVM.Internal.DecodeAST
LLVM.Internal.Diagnostic
LLVM.Internal.EncodeAST
LLVM.Internal.ExecutionEngine
LLVM.Internal.FastMathFlags
LLVM.Internal.FloatingPointPredicate
LLVM.Internal.Function
LLVM.Internal.Global
LLVM.Internal.InlineAssembly
LLVM.Internal.Instruction
LLVM.Internal.InstructionDefs
LLVM.Internal.IntegerPredicate
LLVM.Internal.LibraryFunction
LLVM.Internal.MemoryBuffer
LLVM.Internal.Metadata
LLVM.Internal.Module
LLVM.Internal.ObjectFile
LLVM.Internal.OrcJIT
LLVM.Internal.OrcJIT.CompileLayer
LLVM.Internal.OrcJIT.LinkingLayer
LLVM.Internal.OrcJIT.CompileOnDemandLayer
LLVM.Internal.OrcJIT.IRCompileLayer
LLVM.Internal.OrcJIT.IRTransformLayer
LLVM.Internal.Operand
LLVM.Internal.PassManager
LLVM.Internal.RawOStream
LLVM.Internal.RMWOperation
LLVM.Internal.String
LLVM.Internal.TailCallKind
LLVM.Internal.Target
LLVM.Internal.Threading
LLVM.Internal.Type
LLVM.Internal.Value
LLVM.Internal.FFI.Analysis
LLVM.Internal.FFI.Attribute
LLVM.Internal.FFI.Assembly
LLVM.Internal.FFI.BasicBlock
LLVM.Internal.FFI.BinaryOperator
LLVM.Internal.FFI.Bitcode
LLVM.Internal.FFI.Builder
LLVM.Internal.FFI.ByteRangeCallback
LLVM.Internal.FFI.Cleanup
LLVM.Internal.FFI.CommandLine
LLVM.Internal.FFI.Constant
LLVM.Internal.FFI.Context
LLVM.Internal.FFI.DataLayout
LLVM.Internal.FFI.DynamicLibrary
LLVM.Internal.FFI.ExecutionEngine
LLVM.Internal.FFI.Function
LLVM.Internal.FFI.GlobalAlias
LLVM.Internal.FFI.GlobalValue
LLVM.Internal.FFI.GlobalVariable
LLVM.Internal.FFI.InlineAssembly
LLVM.Internal.FFI.Instruction
LLVM.Internal.FFI.InstructionDefs
LLVM.Internal.FFI.Iterate
LLVM.Internal.FFI.LLVMCTypes
LLVM.Internal.FFI.MemoryBuffer
LLVM.Internal.FFI.Metadata
LLVM.Internal.FFI.Module
LLVM.Internal.FFI.ObjectFile
LLVM.Internal.FFI.OrcJIT
LLVM.Internal.FFI.OrcJIT.CompileLayer
LLVM.Internal.FFI.OrcJIT.LinkingLayer
LLVM.Internal.FFI.OrcJIT.CompileOnDemandLayer
LLVM.Internal.FFI.OrcJIT.IRCompileLayer
LLVM.Internal.FFI.OrcJIT.IRTransformLayer
LLVM.Internal.FFI.PassManager
LLVM.Internal.FFI.PtrHierarchy
LLVM.Internal.FFI.RawOStream
LLVM.Internal.FFI.RTDyldMemoryManager
LLVM.Internal.FFI.ShortByteString
LLVM.Internal.FFI.SMDiagnostic
LLVM.Internal.FFI.Target
LLVM.Internal.FFI.Threading
LLVM.Internal.FFI.Transforms
LLVM.Internal.FFI.Type
LLVM.Internal.FFI.User
LLVM.Internal.FFI.Value
LLVM.Internal.Linking
LLVM.Linking
LLVM.Module
LLVM.OrcJIT
LLVM.PassManager
LLVM.Relocation
LLVM.Target
LLVM.Target.LibraryFunction
LLVM.Target.Options
LLVM.Threading
LLVM.Transforms
other-modules:
Control.Monad.AnyCont
Control.Monad.AnyCont.Class
Control.Monad.Trans.AnyCont
include-dirs: src
c-sources:
src/LLVM/Internal/FFI/AssemblyC.cpp
src/LLVM/Internal/FFI/AttributeC.cpp
src/LLVM/Internal/FFI/BitcodeC.cpp
src/LLVM/Internal/FFI/BuilderC.cpp
src/LLVM/Internal/FFI/CallingConventionC.cpp
src/LLVM/Internal/FFI/ConstantC.cpp
src/LLVM/Internal/FFI/CommandLineC.cpp
src/LLVM/Internal/FFI/ErrorHandling.cpp
src/LLVM/Internal/FFI/ExecutionEngineC.cpp
src/LLVM/Internal/FFI/FunctionC.cpp
src/LLVM/Internal/FFI/GlobalAliasC.cpp
src/LLVM/Internal/FFI/GlobalValueC.cpp
src/LLVM/Internal/FFI/InlineAssemblyC.cpp
src/LLVM/Internal/FFI/InstructionC.cpp
src/LLVM/Internal/FFI/MetadataC.cpp
src/LLVM/Internal/FFI/ModuleC.cpp
src/LLVM/Internal/FFI/OrcJITC.cpp
src/LLVM/Internal/FFI/RawOStreamC.cpp
src/LLVM/Internal/FFI/PassManagerC.cpp
src/LLVM/Internal/FFI/RTDyldMemoryManager.cpp
src/LLVM/Internal/FFI/SMDiagnosticC.cpp
src/LLVM/Internal/FFI/TargetC.cpp
src/LLVM/Internal/FFI/TypeC.cpp
src/LLVM/Internal/FFI/ValueC.cpp
if flag(debug)
cc-options: -g
test-suite test
default-language: Haskell2010
type: exitcode-stdio-1.0
build-depends:
base >= 4.9 && < 5,
bytestring >= 0.10 && < 0.11,
tasty >= 0.11,
tasty-hunit >= 0.9,
tasty-quickcheck >= 0.8,
QuickCheck >= 2.5.1.1,
llvm-hs,
llvm-hs-pure,
containers >= 0.4.2.1,
mtl >= 2.1,
transformers >= 0.3.0.0,
temporary >= 1.2 && < 1.4,
pretty-show >= 1.6 && < 1.8
hs-source-dirs: test
default-extensions:
TupleSections
FlexibleInstances
FlexibleContexts
main-is: Test.hs
other-modules:
LLVM.Test.Analysis
LLVM.Test.Attribute
LLVM.Test.CallingConvention
LLVM.Test.Constants
LLVM.Test.DataLayout
LLVM.Test.ExecutionEngine
LLVM.Test.FunctionAttribute
LLVM.Test.Global
LLVM.Test.InlineAssembly
LLVM.Test.Instructions
LLVM.Test.Instrumentation
LLVM.Test.Linking
LLVM.Test.Metadata
LLVM.Test.Module
LLVM.Test.ObjectCode
LLVM.Test.OrcJIT
LLVM.Test.Optimization
LLVM.Test.Regression
LLVM.Test.Support
LLVM.Test.Target
LLVM.Test.Tests