qbe-rs
QBE IR in natural Rust data structures (by garritfra)
well
The Future of Assembly Language. https://wellang.github.io/well/ (by wellang)
Our great sponsors
- ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
- SonarLint - Clean code begins in your IDE with SonarLint
- InfluxDB - Access the most powerful time series database as a service
- CodiumAI - TestGPT | Generating meaningful tests for busy devs
qbe-rs | well | |
---|---|---|
23 | 12 | |
45 | 55 | |
- | - | |
4.6 | 7.7 | |
5 months ago | 6 days ago | |
Rust | C | |
GNU General Public License v3.0 or later | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
qbe-rs
Posts with mentions or reviews of qbe-rs.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-09.
-
Made my first LLVM front-end… Now what?
You can try buildling you own backend like llvm. A good example or starting point is probably QBE since it is extremely small but very functional.
- Best book on writing an optimizing compiler (inlining, types, abstract interpretation)?
-
Rust port of B3 from WebKit, LLVM-like backend
How big is the whole backend? I've heard that it is small but I wanted to compare it to QBE which is around 8 KLoC and it is quite interesting too.
-
Few lesser known tricks, quirks and features of C
I think QBE might be what you're looking for?
-
Do you consider LLVM a complicated software? And are there any alternatives and how they compare to LLVM?
As far as I know, there is QBE, which is actually kinda underrated, and Cranelift, mainly designed for JIT compilation
Before that, I had spent a bit of time working with QBE, which is much simpler and really easy to write a frontend for. I switched to libgccjit though, because I got frustrated with a few of the things lacking from QBE (like the ability to easily keep track of where different variables live on the stack). I think for many hobby language projects, QBE would be a good option (my project was off the ground very fast using QBE, and I got pretty far before I ran into limitations I couldn't easily work around).
If one of your parameters is size/complexity of the backend and you prefer something smaller, have a look at qbe and cwerg
The alternatives are generally hidden inside of another compiler. The big exception seems to be qbe (https://c9x.me/compile/) however since the author appears to have written this code without peer review, it's not easy to read it's source code.
-
Smallest possible self-hosting zig compiler
So my question is this: if a backend like QBE (~12k Loc) was added to Zig and Zig only had to compile Zig code (no C, etc) for that QBE backend -- about how many LoC would that Zig need to be?
-
Building the fastest Lua interpreter.. automatically
GCC is written in C++ these days, so something like QBE(https://c9x.me/compile/) would be needed.
well
Posts with mentions or reviews of well.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-05-07.
-
New Assembly Like Programming Language?
It appears that the language uses "return" as a synonym for the SYSCALL x86_64 instruction: https://github.com/wellang/well/blob/main/src/syscall_interp...
The example code is equivalent to:
write(1, "hello world!", 12);
What are some alternatives?
When comparing qbe-rs and well you can also consider the following projects:
minivm - A VM That is Dynamic and Fast
ubpf - Userspace eBPF VM
go.vm - A simple virtual machine - compiler & interpreter - written in golang
mir - A lightweight JIT compiler based on MIR (Medium Internal Representation) and C11 JIT compiler and interpreter based on MIR
cproc - C11 compiler (mirror)
Som - Parser, code model, navigable browser and VM for the SOM Smalltalk dialect
Oberon - Oberon parser, code model & browser, compiler and IDE with debugger
Befunge - lang befunge 93 fast
asmjit - Low-latency machine code generation
simplelanguage - A simple example language built using the Truffle API.
c4 - C in four functions