mescc-tools-seed VS neat

Compare mescc-tools-seed vs neat and see what are their differences.

mescc-tools-seed

A place for public review of the posix port of stage0 (by oriansj)

neat

The Neat Language compiler. Early beta? (by Neat-Lang)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
mescc-tools-seed neat
8 3
85 110
- 1.8%
6.6 9.5
2 months ago 6 days ago
C D
GNU General Public License v3.0 only BSD 3-clause "New" or "Revised" 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.

mescc-tools-seed

Posts with mentions or reviews of mescc-tools-seed. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-25.
  • Running the "Reflections on Trusting Trust" Compiler
    7 projects | news.ycombinator.com | 25 Oct 2023
  • stage0 x86 seed reduced from 357 Bytes to 256 Bytes
    1 project | /r/reproduciblebuilds | 19 Jul 2022
  • test
    2 projects | /r/brianddk | 4 Feb 2022
    From here I found a reference to the Gash, Mes-M2 and stage0 projects, who's README.org references a nice wiki for stage0. The Wiki references a more expansive stage0-posix repo. From here, I finally got all the pieces to fit togeather.
  • How reproducible are Guix packages?
    1 project | /r/GUIX | 7 Nov 2021
    Of course, reproducible builds will only give you security if you trust the compiler you're using to verify. Unlike traditional distributions, Guix packages are rigorously defined in terms of their dependencies all the way down to ~60 MB of bootstrap binaries. There has been a lot of cool work to reduce the initial binary seed size, and they are working to reduce this even further to a "full source" bootstrap which will make use of the stage0 project to bootstrap the entire OS from a small, auditable ASCII Hex -> binary program.
  • 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)
  • Bootstrapping from Hex to Bison to GCC
    6 projects | news.ycombinator.com | 3 May 2021
    I wonder if Brainfuck could be used for https://github.com/oriansj/stage0-posix ? It would not surprise me if there is no other language for which there are so many interpreters written in so many different programming languages. It is even possible to write a Brainfuck interpreter in Brainfuck, which can be verified. And there is also a Brainfuck interpreter written in x86-64: https://github.com/316k/brainfuck-x86-64 . It is a little larger than hex0_x86.hex0 , but not too much to make it hard to verify.
  • A Brief Introduction to Forth (1993)
    3 projects | news.ycombinator.com | 12 Jan 2021
    I'd argue the easiest to implement language is macro-assembly then the C subset known as cc_x86

    https://github.com/oriansj/mescc-tools-seed

neat

Posts with mentions or reviews of neat. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-25.
  • The Neat Programming Language
    3 projects | news.ycombinator.com | 25 Dec 2023
    It runs on plain C ABI, so you can just define C functions as `extern(C)`, just as you would in D. But you can also use `std.macro.cimport` to import C headers directly. Check out the Dragon demo, https://github.com/Neat-Lang/neat/blob/master/demos/dragon.n... :

        macro import std.macro.cimport;
  • Running the "Reflections on Trusting Trust" Compiler
    7 projects | news.ycombinator.com | 25 Oct 2023
    Funny sidestory: The way my compiler ( https://github.com/neat-lang/neat ) used to build is, two years ago there was an initial compiler that was written in D. And every time you checked it out on a new system, there was a file with a list of breaking commits, and it would:

    - git clone itself in a subfolder

  • Show HN: C3 – a C alternative that looks like C
    1 project | news.ycombinator.com | 20 Jul 2021
    Sure, but keep in mind it's pre-pre-alpha and the current released version is kind of outdated (ping me if you actually want to try it):

    https://github.com/neat-lang/neat

    This is more a D-like than a C-like, but it only breaks C syntax in areas where IMO C straight up made the wrong call, like the inside-out type syntax.

    The thing I'm most proud of is the full-powered macro system, which is really more of a compile-time compiler plugin system.

    A good example of a macro would be listcomprehensions: https://github.com/Neat-Lang/neat/blob/master/src/neat/macro...

    You can tell it's just compiler code that happens to be loaded at project compiletime.

    `compiler.$expr xxx` is itself a macro, that parses an expression `xxx` and returns an expression that creates a syntax tree that, when compiled, is equivalent to having written `xxx`. It's effectively the opposite of `eval`. In that expression, `$identifier` is expanded to a variable reference to "identifier".

    So `ASTSymbol test = compiler.$expr $where && $test;` is equivalent to `ASTSymbol test = new ASTBinary("&&", where, test)`. (This shows its worth as expressions become more expansive.)

    All in all, this lets you write `bool b = [all a == 5 for a in array]`, and it's exactly equivalent to a plain for loop. You can see the exact for loop at line 103 in that file. `({ })` is stolen from gcc; google "statement expression".

What are some alternatives?

When comparing mescc-tools-seed and neat you can also consider the following projects:

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

c4 - C in four functions

mes-m2 - Making Mes.c M2-Planet friendly

archlinux-installer-script - Arch Linux install script. Only performs the minimal steps for booting into arch. 75 lines of script with full progress messages and tutorial.

nixpkgs - Nix Packages collection & NixOS

mrustc - Alternative rust compiler (re-implementation)

stage0 - A set of minimal dependency bootstrap binaries

related_post_gen - Data Processing benchmark featuring Rust, Go, Swift, Zig, Julia etc.

bootstrap-seeds - The roots of trust for all architectures

brainfuck-x86-64 - A brainfuck interpreter written in x86-64 assembly