mucc

Mucc C Compiler

News

[October 14, 2026: Mucc 1.4.0 runs on and makes programs for 64-bit ARM Linux (the Raspberry Pi 4 and 5, Asahi Linux, ARM servers) as well as x86-64, natively or with --target=, starts several times faster, and fixes the bugs a deep review found. See the changelog. October 8, 2026: Mucc 1.3.0 fixes every wrong-code bug, the crash and the rejected valid code an outside test of 1.2.1 found, and needs no system as or ld for -Xlinker or for assembly files that use GNU as's common directives (.macro, .rept, .p2align, ...). Mucc 1.2.1 was the first release built by mucc alone.]

Features

The README is the full guide: how to use mucc day to day, every option, and what it doesn't do.

Compilation Speed

Compilation speed for mucc's own source. There are 32,137 lines; 56,252 lines (1.2 MBytes) are compiled because the same headers are included in many files. Mucc is about 2.6 times faster than GCC -O0, 1.5 times faster than Clang -O0, and 14 times faster than GCC -O2.

CompilerTime(s)lines/secondMBytes/second
Mucc 1.4.00.56990002.2
Clang 21.1 -O00.84660001.5
GCC 15.2 -O01.47380000.84
Clang 21.1 -O25.46100000.23
GCC 15.2 -O27.8372000.16

Measures were done on an Intel Core i7-1185G7 laptop under WSL 2, one file at a time, best of 7, with the compilers taking turns. Real time is measured. Compilation time includes compilation and assembly. Code that mucc generates runs about 15% slower than code from gcc -O0 with glibc (--libc=system), and about 1.4 times slower again with the bundled musl: for the fastest programs, use gcc or clang. Run make bench to measure all of this on your own machine.

Download

The latest release is at github.com/Dom-Yan/Mucc/releases/latest. To install it on any x86-64 or ARM64 Linux (Ubuntu, Debian, Fedora, Arch, Alpine, WSL 2, Raspberry Pi OS and others):

mkdir -p ~/.local/bin
curl -Lo ~/.local/bin/mucc https://github.com/Dom-Yan/Mucc/releases/latest/download/mucc-$(uname -m)-linux
chmod +x ~/.local/bin/mucc
mucc -o hello hello.c && ./hello

Programs are linked statically against the musl inside mucc, so they run on any Linux for that CPU. To make programs for the other CPU, add --target=aarch64-linux or --target=x86_64-linux. To use the system's glibc and shared libraries instead, add --libc=system. Building mucc from source, with only mucc, is explained in the README.

What it doesn't do

The README's Limitations has the full list.

Want to help?

Here are some suggestions:

Links

License

Mucc is distributed under the MIT License, as is musl, the C library inside it.


Copyright (c) 2026 Dom-Yan and Rei. Mucc™ and Dom-Yan™ are trademarks of Dom-Yan.


Dom-Yan - https://github.com/Dom-Yan - https://dom-yan.github.io/Mucc/