llvm-pretty-bc-parser
llvm-hs
Our great sponsors
llvm-pretty-bc-parser | llvm-hs | |
---|---|---|
2 | 4 | |
54 | 494 | |
- | 0.6% | |
8.6 | 0.0 | |
30 days ago | about 1 month ago | |
LLVM | LLVM | |
GNU General Public License v3.0 or later | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
llvm-pretty-bc-parser
-
LLVM Internals: The Bitcode Format
It's actually interesting how many independent implementations of bitcode writers there, given that there are almost no independent bitcode readers (mine is very preliminary, and then there's one from Galois[1]).
I believe Swift also does their own serialization in LLVM's bitstream format[2]. I also saw an implementation of the writer in Swift, but now I've lost it.
[1]: https://github.com/GaloisInc/llvm-pretty-bc-parser
[2]: https://github.com/apple/swift/blob/main/docs/Serialization....
llvm-hs
-
Is it viable to develop a compiler in haskell that uses LLVM
The llvm-hs GitHub has branches for LLVM 12 and even LLVM 15. I believe the LLVM 12 version works pretty well, but I am not sure of the LLVM 15 version.
-
Should I abandon using haskell for my compiler?
2 days later and I'm still failing to get a project to build with the LLVM bindings. The repository seems fairly inactive, and is several versions behind modern LLVM. This seems like a very basic package for a language that is supposed to be well suited to writing compilers. Even flipping Python seemingly has more up to date LLVM bindings.
Looking at the network graph, it looks like there are forks which mention llvm-12 branches, which may be more up to date.
What are some alternatives?
llvm-general - Rich LLVM bindings for Haskell (with transfer of LLVM IR to and from C++, detailed compilation pass control, etc.)
llvm-general-quote - Use QuasiQuotation with llvm-general
llvm - Haskell bindings to the LLVM compiler infrastructure project.
llvm-pretty - An llvm pretty printer inspired by the haskell llvm binding
dataflow - Render graphs using a declarative markup.
haskell-generate - Type-safe library for generating haskell source code
morloc - A typed, polyglot, functional language
flexible-defaults - Template Haskell system for implementing type classes with complex default-implementation rules