@hackage / llvm-base-types

The base types for a mostly pure Haskell LLVM analysis library

Latest0.3.0

About

Metadata

  • Last updated , by TristanRavitch
  • License BSD-3-Clause
  • Maintained by: travitch@cs.wisc.edu

  • Lottery factor: 0

Links

Installation

Readme

This package defines types used in the llvm-analysis and llvm-data-interop packages.

This is a separate package mostly because llvm-data-interop needed to be split out due to C++ linkage issues. llvm-data-interop needs the definitions in this packages but cannot depend on llvm-analysis (which also needs these types).

Further, to avoid code duplication some of the C++ enumeration values used in llvm-data-interop are actually included with this package. The definitions in this package are used (via c2hs) to build Haskell equivalents. The base types need these definitions, but the llvm-data-interop package also needs to be able to find the header. This is handled in Setup.hs in llvm-data-interop with cooperation from this package (which exports the cabal-generated path to the installed header).

Only llvm-data-interop and llvm-analysis should ever need to reference this package since llvm-analysis re-exports all of the definitions.