cproc
samurai
cproc | samurai | |
---|---|---|
10 | 10 | |
680 | 798 | |
- | - | |
8.7 | 3.2 | |
6 days ago | 12 days ago | |
C | C | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
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.
cproc
-
Oasis – a small, statically-linked Linux system
Michaelforney has also built croc [1], a qbe based C compiler. Really impressive!
[1]: https://github.com/michaelforney/cproc
- List of (open source) C compilers
- Hand-optimizing the TCC code generator
-
Minias – A mini x86-64 assembler for fun and learning
A word of warning for those wondering: this is not for Intel syntax, despite referencing the Intel doc.
Minias can assemble itself
...but it's written in C and uses a parser generator? IMHO it feels a bit backwards --- and perhaps even a bit cheating if you're doing this for a "bootstrap pilgrimage" --- to write a lower-level tool in a higher-level language. On the other hand, the same author also links to a C compiler in C, without a parser generator: https://github.com/michaelforney/cproc
- Cproc C Compiler
-
Hacker News top posts: Aug 20, 2021
Cproc C Compiler\ (29 comments)
- A C11 compiler using QBE as a backend, released under the ISC license
samurai
- Samurai: Ninja-compatible build tool written in C
- Oasis – a small, statically-linked Linux system
-
Ninja is enough build system
Samurai is a faster, drop-in replacement for ninja.
https://github.com/michaelforney/samurai
- samurai: Ninja-compatible build tool written in C
-
Using Landlock to Sandbox GNU Make
"If you want to do what "scrappy Google" did these days, then you should use Python + Ninja."
Or, better yet, use a simpler, faster and more portable^1 Ninja written in C.
https://github.com/michaelforney/samurai
1. The "simpler, faster, and more portable", are the author's claims, not mine. I am not the author.
- samurai: a ninja-compatible build tool written in C.
-
Moving SciPy to the Meson Build System
Why is Python not portable, as in, on which systems is "build Python and then use that to run Meson" not a reasonable option?
The CI for boson seems like it runs on platforms where Python definitely is available, but also I notice the CI uses samurai, a reimplementation of ninja with a similar motivation: https://github.com/michaelforney/samurai
Ninja is in C++ so I am even more confused at Sanurai.
Is this just an implementation-diversity thing? (which is great!)
-
xorg sucks, use swc
This means ninja is popular both on embedded for its tiny footprint (samurai is about 3k sloc and portable), and for humongous projects like Chrome, because it is infinitely scalable in complexity due to its genaration method.
-
Debian Running on Rust Coreutils
You could probably post-process samurai (a rewrite of ninja into C) into a single-file: https://github.com/michaelforney/samurai
What are some alternatives?
pl0c - Self-hosting PL/0 to C compiler to teach basic compiler construction from a practical, hands-on perspective.
stm32-cube-cmake-vscode - STM32, VSCode and CMake detailed tutorial
qbe-rs - QBE IR in natural Rust data structures
vivarium - A dynamic tiling Wayland compositor using wlroots
minias - A mini x86-64 assembler for fun and learning.
Microsoft Research Detours Package - Detours is a software package for monitoring and instrumenting API calls on Windows. It is distributed in source code form.
unix - Mirror of the Restoration of 1st Edition UNIX kernel sources from pdf document.
build2 - build2 build system
manim - A community-maintained Python framework for creating mathematical animations.
dwm - LEV Linux's window manager (a fork of dwm)
fpga_craft - A voxel game/Minecraft clone for the iCE40 UP5K FPGA
Rust-for-Linux - Adding support for the Rust language to the Linux kernel.