Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 10 intermediate-representation Open-Source Projects
-
write-you-a-haskell
Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
mir
A lightweight JIT compiler based on MIR (Medium Internal Representation) and C11 JIT compiler and interpreter based on MIR
-
vast
VAST is an experimental compiler pipeline designed for program analysis of C and C++. It provides a tower of IRs as MLIR dialects to choose the best fit representations for a program analysis or further program abstraction.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
atom
Atom is a novel intermediate representation for applications and a standalone tool that is powered by chen. (by AppThreat)
I highly recommend https://github.com/sdiehl/write-you-a-haskell as it is very developer friendly. It’s not complete, but it really gets the gears turning and will set you up for writing your own Hendley-Milner style type checker.
Project mention: Ravi is a dialect of Lua, with JIT and AOT compilers | news.ycombinator.com | 2024-03-18MIR comes from the Rubyverse and isn't related to LLVM MLIR.
https://github.com/vnmakarov/mir?tab=readme-ov-file#mir
Project mention: Print(“lol”) doubled the speed of my Go function | news.ycombinator.com | 2023-08-23Most languages target C or LLVM, and C and LLVM have a fundamentally lossy compilation processes.
To get around this, you'd need a hodge podge of pre compiler directives, or take a completely different approach.
I found a cool project that uses a "Tower of IRs" that can restablish source to binary provenance, which, seems to me, to be on the right track:
https://github.com/trailofbits/vast
I'd definitely like to see the compilation processes be more transparent and easy to work with.
Project mention: Decoding C/C++ Compilation Process: From Source Code to Binary | /r/cpp | 2023-06-08It could be cool to see some explanation of CFG representations or GIMPLE/LLVM here. GCC/Clang can print those out as text, or just compile to that code and not go lower if you ask them to. There are some interesting things you can do with bytecode, like Rellic, AFL++, or optview2. It seems a bit reductive imo to go straight from high-level code to disassembly without at all examining any layers in between. Especially if we use something like Polygeist or CIR.
Project mention: Show devsecops: OWASP dep-scan v5 - a next-generation security and risk audit tool for everyone | /r/devsecops | 2023-12-05Today, it gives me great pleasure to announce OWASP dep-scan v5. Like everyone, I was constantly frustrated with the amount of false positives generated by all Software Composition Analysis tools (including mine) and wanted to do something. I worked closely with a few colleagues (Caroline, Tim, Saket, and David) for a year to build the various capabilities that together form depscan v5.
intermediate-representation related posts
- I developed a faster Ruby interpreter
- The Wonderfully Terrible World of C and C++ Text Encoding APIs (With Some Rust)
- cross compiling issues with mingw32
- How to learn compilers: LLVM Edition
- The first release of MIR project
- A new compiler for Lua and Ravi that can also generate code AOT
- The MIR C interpreter and Just-in-Time (JIT) compiler - Red Hat Developer
-
A note from our sponsor - InfluxDB
www.influxdata.com | 23 Apr 2024
Index
What are some of the best open-source intermediate-representation projects? This list will help you:
Project | Stars | |
---|---|---|
1 | miasm | 3,338 |
2 | write-you-a-haskell | 3,304 |
3 | mir | 2,184 |
4 | binaryninja-api | 812 |
5 | ddisasm | 617 |
6 | vast | 334 |
7 | clangir | 274 |
8 | ravi-compiler | 63 |
9 | thorin2 | 43 |
10 | atom | 18 |
Sponsored