honey-potion
mir
Our great sponsors
honey-potion | mir | |
---|---|---|
6 | 19 | |
234 | 2,184 | |
2.1% | - | |
6.4 | 7.7 | |
about 2 months ago | 14 days ago | |
C | C | |
GNU General Public License v3.0 only | MIT 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.
honey-potion
-
Honey Potion: an eBPF backend for Elixir
Hi all! We are working on an eBPF backend for Elixir. It's called Honey Potion. The project is under development, but it is possible to write some useful programs at this point. For instance, in this video, one of the guys involved explains how to write a program to count system calls.
We have been working on an eBPF backend for the Elixir programming language. The current implementation is on this branch. EBPF is a bit like a virtual machine that runs on the Linux kernel. EBPF programs are typically used to implement network applications. The most interesting aspect of the backend is that Linux uses a verifier to ensure that eBPF programs always terminate and only access memory within allocated bounds.
-
Targetting C
Hi! We have been translating Elixir to C (which we translate to eBPF) in HoneyPotion. We used mostly Chapter 15 of Appel's Modern Compiler Implementation in Java to implement the code generator (that's "15. Functional Programming Languages"). I think the choice of C has been good thus far. The implementation of Elixir's pattern matching took much work, but if we had chosen a higher level target, we would still have to translate that to eBPF. Here's the entry point for the translator.
- Writing eBPF Programs with Elixir
-
Suggestion for a backend?
We have been working on a tool that translates Elixir to eBPF. We actually translate eBPF to C. Now that we have more stuff working, I really wonder if generating C was a good choice.
-
Intersection of PLs with the OS
That's exactly what Honey Potion does, when we translate Elixir into Linux' eBPF!
mir
-
Ravi is a dialect of Lua, with JIT and AOT compilers
MIR comes from the Rubyverse and isn't related to LLVM MLIR.
https://github.com/vnmakarov/mir?tab=readme-ov-file#mir
- Mir: Strongly typed IR to implement fast and lightweight interpreters and JITs
- Implementing Interactive Languages
- I developed a faster Ruby interpreter
-
Are Hoistings Possible for C++?
When you say a fork of LLVM, am I correct in assuming that you specifically mean a fork of Clang? I don't see how the compiler backend would affect support for language extensions, regardless of whether it's an exception to that such as Tcc, Cproc, the MIR C jitter, lacc, 8cc, 9cc, and chibicc. Most of those are not for production, excluding Cproc and Tcc (at least according to Suckless or Oasis).
-
Suggestion for a backend?
MIR
- Ask HN: Recommendation for general purpose JIT compiler
- How to learn compilers: LLVM Edition
- What instructions are needed for a language vm
-
Nelua Programming Language
> I wish C was scriptable
C kinda can be used as scripting language with MIR project https://github.com/vnmakarov/mir
It was released just a few days ago, and I've successfully use it as an alternative and fast C compiler with Nelua.
What are some alternatives?
pl0c - Self-hosting PL/0 to C compiler to teach basic compiler construction from a practical, hands-on perspective.
asmjit - Low-latency machine code generation
fping - High performance ping tool
LuaJIT - Mirror of the LuaJIT git repository
TripleCross - A Linux eBPF rootkit with a backdoor, C2, library injection, execution hijacking, persistence and stealth capabilities.
Cwerg - The best C-like language that can be implemented in 10kLOC.
linux-nitrous - Mirror of https://gitlab.com/xdevs23/linux-nitrous
ecl
libfirm - graph based intermediate representation and backend for optimising compilers
kcs - Scripting in C with JIT(x64)/VM.
amacc - Small C Compiler generating ELF executable Arm architecture, supporting JIT execution
terra - Terra is a low-level system programming language that is embedded in and meta-programmed by the Lua programming language.