One of the project ideas "I'll do eventually" for years now:
A libc implementation, except all of the implementation is in the header files. Like always statically linking, except every bit of the C library you are using is in the same translation unit so you get the full power of modern optimizing compilers.
Compilation on compilers that have it will use the modern inline assembly syntax that lets the compiler intelligently connect assembly registers to C variables, and of course the low level details like C runtime setup, the true entry point like `_start` which eventually calls `main`, etc, can all be included through the headers I think.
So the simple "hello world" case on a modern compiler on systems where the ABI between userspace and kernel is stable (read: not Windows) literally involves no actual linking of multiple object files: just one translation unit directly to finished binary. But I'd also want to support systems where the compiler can't do that, by having a single C file.
The underlying work will be reusable to any other "static include" base library we may wish to make instead of or in addition to the standard one.












