llvm-pretty: A pretty printing library inspired by the llvm binding.

[ bsd3, library, text ] [ Propose Tags ] [ Report a vulnerability ]

A pretty printing library that was inspired by the LLVM binding by Lennart Augustsson. The library provides a monadic interface to a pretty printer, that allows functions to be defined and called, generating the corresponding LLVM assembly when run.


[Skip to Readme]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.3.1.0, 0.3.1.1, 0.4.0.0, 0.4.0.1, 0.5, 0.6.0.0, 0.7.0.0, 0.7.1.0, 0.7.1.1, 0.11.0, 0.12.0.0, 0.12.1.0
Change log CHANGELOG.md
Dependencies base (>=4.11 && <5), containers (>=0.4), microlens (>=0.4), microlens-th (>=0.4), monadLib (>=3.6.1), parsec (>=3), pretty (>=1.0.1), syb (>=0.7), template-haskell (>=2.7), th-abstraction (>=0.3.1 && <0.8) [details]
Tested with ghc ==8.4.3, ghc ==8.2.2, ghc ==8.0.2
License BSD-3-Clause
Author Trevor Elliott
Maintainer rscott@galois.com, kquick@galois.com
Revised Revision 1 made by ryanglscott at 2024-10-01T16:20:26Z
Category Text
Source repo head: git clone http://github.com/GaloisInc/llvm-pretty
Uploaded by mccleeary at 2024-08-30T14:10:42Z
Distributions
Reverse Dependencies 5 direct, 0 indirect [details]
Downloads 9351 total (68 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-08-30 [all 1 reports]

Readme for llvm-pretty-0.12.1.0

[back to package description]

llvm-pretty

A pretty printing library that was inspired by the LLVM binding by Lennart Augustsson. The library provides a monadic interface to a pretty printer, that allows functions to be defined and called, generating the corresponding LLVM assembly when run.

LLVM language feature support

Currently, llvm-pretty supports LLVM versions up through 17. As a result of the broad version coverage, the llvm-pretty AST is a superset of all versions of the LLVM AST. This means that the manner in which certain information is presented in the llvm-pretty AST (e.g., during pretty printing) will be different depending on the LLVM version used to originate the information. Conversely, it is possible to construct an llvm-pretty AST that cannot be represented in a specific (or any) LLVM version.

llvm-pretty strives to support a reasonable variety of LLVM language features, but there are places where our coverage of the LLVM language is incomplete. If you need a LLVM feature that is not currently supported by llvm-pretty, please file an issue.

llvm-pretty versus llvm-pretty-bc-parser

llvm-pretty supports almost everything that one would want to do with LLVM ASTs. One notable exception is parsing: llvm-pretty deliberately does not support parsing an LLVM module AST from a bitcode file. This functionality is factored out into a separate llvm-pretty-bc-parser library. llvm-pretty-bc-parser generally tries to stay in sync with all of the LLVM language features that llvm-pretty supports, but it may be the case that some valid llvm-pretty ASTs cannot be parsed by llvm-pretty-bc-parser. If you encounter an occurrence of this issue, please file an issue at the llvm-pretty-bc-parser issue tracker.