bootstrap-seeds VS mrustc

Compare bootstrap-seeds vs mrustc and see what are their differences.

bootstrap-seeds

The roots of trust for all architectures (by oriansj)

mrustc

Alternative rust compiler (re-implementation) (by thepowersgang)
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.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
bootstrap-seeds mrustc
6 75
73 2,095
- -
5.2 8.8
5 months ago 1 day ago
Assembly C++
GNU General Public License v3.0 only 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.

bootstrap-seeds

Posts with mentions or reviews of bootstrap-seeds. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-29.
  • NixOS Reproducible Builds: minimal ISO successfully independently rebuilt
    13 projects | news.ycombinator.com | 29 Oct 2023
    This[0] is basically the hand-documentation of those bytes then. Handwritten ELF header and assembly code.

    [0] https://github.com/oriansj/bootstrap-seeds/blob/master/POSIX...

  • SectorC: A C Compiler in 512 bytes
    7 projects | news.ycombinator.com | 24 May 2023
    The bootstrap seed, https://github.com/oriansj/bootstrap-seeds/blob/master/POSIX..., is a tiny interpreter that takes a much larger program written in a special-purpose, bytecode-based language. This proceeds in turn once or twice more--special purpose program generating another interpreter for another special-purpose language--until you end up with a minimal Scheme interpreter, which then can be used to execute a C compiler program.

    All of this is incredible work, but a minimal C-subset compiler in under 512 bytes seems like a unique achievement.

  • Ken Thompson: Reflections on Trusting Trust (Turing Award Lecture)
    3 projects | /r/linux | 29 Sep 2022
    There is also live-bootstrap which uses a similar bootstrap chain to Guix (stage0 -> Mes -> tcc -> gcc), but without needing Guile/guix-daemon binaries etc. The whole thing starts with just a 357-byte binary seed (source)!
  • Zig is now self–hosted by default
    13 projects | news.ycombinator.com | 19 Aug 2022
    Yeah, it's a binary blob, but it's small enough to be easily auditable. Anyone with some knowledge of x86 assembly can read the annotated version [1] and verify that it does what it claims (which is to convert ASCII hex with comments into binary).

    You're right, it also requires a Linux kernel, and of course, you also have to trust the hardware you're running it on. Still, it reduces the amount of stuff we have to take for granted as trusted, which I think is a good thing. (I'm not involved in the project, just an admirer).

    [1]: https://github.com/oriansj/bootstrap-seeds/blob/b09a8b8cbcb6...

  • stage0-posix was ported to RISC-V
    4 projects | /r/RISCV | 3 Oct 2021
    stage0-posix just gained initial support for RISC-V (64-bit). It starts with 392 byte hex assembler, 361 byte "shell" and bootstraps simple linker (hex2), macro assembler (M0). Then it builds cc_riscv64 RISC-V compiler written in RISC-V assembly and uses it to build simple C compiler written in C (M2-Planet). Then it builds a few extra utilities (cp, mkdir, untar, ungz, sha256sum, chmod)
  • Reproducibility
    1 project | /r/Gentoo | 20 Jun 2021
    From a security point of view the only thing that gentoo users need to achieve similar levels of security is a bootstrapped compiler from a known good seed. The source code is already deterministic by definition. After that all you need is a compiler bootstrapped via something like https://github.com/oriansj/bootstrap-seeds which can be independently verified. It would probably be useful to be able to have independent bootstraps arrive at the same binary output for a compiler, but probably only as an option. Ultimately way less work for the same level of security.

mrustc

Posts with mentions or reviews of mrustc. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-08.
  • Why do lifetimes need to be leaky?
    6 projects | /r/rust | 8 Dec 2023
    No, you don't. Existential proof: mrustc ignores lifetimes. Just flat out simply ignores. It changes some corner-cases related to HRBT, yet rustc compiled by mrustc works (that's BTW mrustc exist: to bootsrap the rustc compiler).
  • I think C++ is still a desirable coding platform compared to Rust
    2 projects | news.ycombinator.com | 22 Nov 2023
    Incidentally C++ is the only way to bootstrap rust without rust today.

    https://github.com/thepowersgang/mrustc

  • Rust – Faster compilation with the parallel front-end in nightly
    3 projects | news.ycombinator.com | 10 Nov 2023
    Well, there is mrustc[0], a Rust compiler that doesn't include a borrow-checker, so it's possible to compile (at least some versions of) Rust without a borrow checker, though it might not result in the most optimized code.

    AFAIK there are some optimization like the infamous `noalias` optimization (which took several tries to get turned on[1]) that uses information established during borrow checking.

    I'm also not sure what the relation with NLL (non-lexical lifetimes) is, where I would assume you would need at least a primitive borrow-checker to establish some information that the backend might be interested in. Then again, mrustc compiles Rust versions that have NLL features without a borrow-checker, so it's again probably more on the optimization side than being essential.

    [0]: https://github.com/thepowersgang/mrustc

    [1]: https://stackoverflow.com/a/57259339

  • Running the "Reflections on Trusting Trust" Compiler
    7 projects | news.ycombinator.com | 25 Oct 2023
  • Forty years of GNU and the free software movement
    1 project | news.ycombinator.com | 19 Sep 2023
    > Maybe another memory safe language, but Rust has severe bootstrapping issues which is a hard sell for distros that care about source to binary transparency.

    It is possible to bootstrap rustc from just GCC relatively easily, although it's a little bit time consuming.

    You can use mrustc to bootstrap Rust 1.54: https://github.com/thepowersgang/mrustc

    And from then you can go through each version all the way to the current 1.72. (Each new Rust version officially needs the previous one to compile.)

  • Building rustc on sparcv9 Solaris
    1 project | /r/rust | 27 Jun 2023
    Have you tried this route : https://github.com/thepowersgang/mrustc ?
  • GCC 13 and the state of gccrs
    4 projects | /r/rust | 25 Apr 2023
    Mrustc supports Rust 1.54.0 today
  • Any alternate Rust compilers?
    10 projects | /r/rust | 10 Apr 2023
  • Stop Comparing Rust to Old C++
    10 projects | /r/cpp | 31 Jan 2023
    There are three. The official one, mrustc (no borrow checker, but can essentially compile the official rustc) and GCC (can't really compile anything substantial yet). Only rustc is production-ready though.
  • Can I make it so that only the newest version of Rust gets installed?
    1 project | /r/GUIX | 29 Jan 2023
    That probably depends on what you mean by problematic. Having an ever increasing chain of dependencies isn’t the most desirable situation so there has been some work to trim the bootstrap chain. In 2018, when the blogpost I linked above was written, mrustc was used to bootstrap rust 1.19.0; now mrustc can bootstrap rust 1.54.0 so the chain to recent versions is much shorter than if all those intervening versions back through 1.19.0 needed to be built. https://github.com/thepowersgang/mrustc

What are some alternatives?

When comparing bootstrap-seeds and mrustc you can also consider the following projects:

live-bootstrap - Use of a Linux initramfs to fully automate the bootstrapping process

gccrs - GCC Front-End for Rust

zig-bootstrap - take off every zig

gccrs - GCC Front-End for Rust

bcc - bcc is a b compiler

llvm-cbe - resurrected LLVM "C Backend", with improvements

stage0-posix-x86

rust-ttapi

turning-polyglot-solutions-into-t

miri - An interpreter for Rust's mid-level intermediate representation

mescc-tools-seed - A place for public review of the posix port of stage0

gcc-rust - a (WIP) Rust frontend for gcc / a gcc backend for rustc