c4 VS neat

Compare c4 vs neat and see what are their differences.

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
c4 neat
11 3
9,212 110
- 1.8%
0.0 9.5
4 months ago 7 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.

c4

Posts with mentions or reviews of c4. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-06.

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 c4 and neat you can also consider the following projects:

stage0 - A set of minimal dependency bootstrap binaries

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

bcompiler - Mirror of http://www.rano.org/bcompiler.tar.gz, with a bootstrap script

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.

qbe-rs - QBE IR in natural Rust data structures

nixpkgs - Nix Packages collection & NixOS

libcperciva - BSD-licensed C99/POSIX library code shared between tarsnap, scrypt, kivaloo, spiped, and bsdiff.

mrustc - Alternative rust compiler (re-implementation)

fpga_craft - A voxel game/Minecraft clone for the iCE40 UP5K FPGA

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

packedjson - packedjson is an alternative Nim implementation for JSON. The JSON is essentially kept as a single string in order to save memory over a more traditional tree representation.

cproc - C11 compiler (mirror)