[haskell-llvm] llvm-general

Dr. Benjamin S. Scarlet roll10 at greynode.net
Mon Aug 12 22:40:44 BST 2013


On Mon, 2013-08-12 at 22:44 +0200, Henning Thielemann wrote:
> Am 12.08.2013 21:50, schrieb Benjamin Scarlet:
> 
> > I've just learned of this mailing list, so I thought given your recent discussion I'd make a belated announcement of llvm-general:
> 
> Thank you for the detailed project description!
> 
> Unfortunately, Hackage does not show the Haddock documentation of the 
> package although it claims that it could build the package successfully 
> on GHC-7.6.

Haddock for both llvm-general and llvm-general-pure are hosted
externally, with a links in the package description (at the bottom of
the description, immediately above the "Properties" heading on the
hackage page. For llvm-general, I do this because I don't expect hackage
to be able to build a package dependent on the LLVM library. For
llvm-general-pure, I do it to be consistent with llvm-general. I believe
hackage _should_ be able to build its own haddock for llvm-general-pure,
but so far it has not and I do not know why not.

> A last question: Why the name llvm-general? In which way is it more 
> general than llvm/llvm-base? And how is llvm-general-pure purer than 
> llvm-general? From its description I would have called it llvm-ast or 
> llvm-syntax or so.

Why llvm-general?

Because my intent is to support a very broad range of uses of LLVM. Just
to pick an example: not just code generation for DSLs, for which decent
coverage is sufficient, but (just to pick an example) transformation of
externally generated code, for which a representation of all possible
LLVM IR and the tools to manipulate IR read from external sources are
both necessary.

The thinking behind that name predates the introduction of such niceties
as unsafeGetElementPtr to the llvm package - a time when some uses of
LLVM were actually impossible with the llvm package.


Why llvm-general-pure?

Because (as I noted in my original message), I am working on extending
the package beyond just the AST to include tools to serialize and parse
the AST without linking in LLVM libraries. Again, as noted in the
original message - it is pure in the sense of being 100% Haskell. With
these additions, something like "-ast" or "-syntax" would be misleading.

-Benjamin S. Scarlet




More information about the Haskell-llvm mailing list