ziglang/zig
Lore
Zig is a long-running project. The git history in this repository starts in August 2015 and ends, at the surveyed commit, in November 2025. The README at the time of this snapshot also includes the public note that the canonical repository has moved to Codeberg, so the GitHub repository is no longer the active home — but the code captured here is the entire pre-move history.
Eras
Pre-1.0 incubation (Aug 2015 – Oct 2017)
The earliest commit on record is from 2015-08-05. The first tagged release in this repository is 0.1.0 on Oct 17, 2017, more than two years after the project started. During this era the compiler was written in C++ and aimed at "a better C", with LLVM as the only backend.
Stage1 maturity (2017 – 2019)
0.2.0— Mar 15, 2018.0.3.0— Sep 28, 2018.0.4.0— Apr 8, 2019.0.5.0— Sep 30, 2019.
These releases evolved the C++ stage1 compiler. The standard library and language semantics took shape; comptime and the type system stabilized.
The self-hosting push (2019 – 2022)
0.6.0— Apr 13, 2020.0.7.0— Nov 8, 2020.0.8.0— Jun 4, 2021.0.9.0— Dec 20, 2021.
The self-hosted compiler was being written in Zig itself in src/. The pipeline split (AST → ZIR → AIR) was introduced, the Sema evaluator was bootstrapped, and the LLVM backend was joined by experimental hand-written backends.
Stage2 takeover and incremental compilation (2022 – 2024)
0.10.0— Oct 31, 2022. Self-hosted stage2 became the default.0.11.0— Aug 3, 2023. The new package manager landed (build.zig.zon).0.12.0— Apr 19, 2024. Major build system refactor.0.13.0— Jun 6, 2024.
Sema and InternPool grew into the largest files in the codebase. The build system was reworked into the present lib/std/Build/ shape with Step, Cache, and Module. Hand-written backends gained traction (x86_64 first).
Backend diversification and async-Io overhaul (2024 – 2025)
0.14.0— Mar 4, 2025. Hand-written backends matured; newIomodel added tolib/std/.0.15.0— Aug 18, 2025.0.15.1,0.15.2, work toward0.16.0— the surveyed commit is on the0.16.0-devline.
July, August, and October 2025 had the highest monthly commit counts in the recent window (650, 401, 564 respectively), correlating with 0.15.x and 0.16.0-dev activity. New backends (RISC-V 64, AArch64, SPARC64, Wasm, SPIR-V) were heavily worked on; an alternative ELF linker (src/link/Elf2.zig) appeared alongside Elf.zig.
The move to Codeberg (2025)
Per the current README.md, the project's canonical home moved to Codeberg, and the GitHub repository is no longer mirrored. The wiki was generated from the GitHub-hosted snapshot and reflects the code at that point in time.
Longest-standing pieces
These have been part of the codebase essentially since stage2 was introduced and continue to evolve:
src/Sema.zig— semantic analysis. Has grown to ~1.6 MB. Every release touches it.src/Compilation.zig— the orchestrator. Owns the thread pool, queues, and watch-mode plumbing.lib/std/zig/AstGen.zig— AST → ZIR. The compiler's frontend has been remarkably stable in shape even as ZIR opcodes have evolved.lib/std/zig/Zir.zigandsrc/Air.zig— the ZIR/AIR encodings.src/InternPool.zig— the interned types/values table; central to comptime correctness.lib/std/Build.zig—std.Build. The user-facing build API has been refactored several times but has lived under this name for years.
Major rewrites
- C++ stage1 → Zig stage2. Visible in the history as the gradual shift of work from a no-longer-present
src-self-hosted/and the introduction ofsrc/files. Thestage1/directory in the current tree is the residual bootstrap path. - Build system refactor.
std.build.Builderwas renamed tostd.Buildand theStep/Module/Cachesplit formalized;lib/std/Build/Step/now holds dozens of step types. - Async I/O overhaul.
lib/std/Io.zig(~66 KB) andlib/std/Io/were introduced to replace the olderstd.ioshape. The newIointerface is now used bystd.fs,std.http, andstd.process. - ELF linker rewrite in progress. Both
src/link/Elf.zig(159 KB) and158 KB) live in the tree at this commit, with the latter being the in-progress replacement.src/link/Elf2.zig( - Backend explosion.
src/codegen/now contains dedicated subtrees foraarch64,arm,mips,riscv64,sparc64,spirv,wasm,x86_64, and thecandllvmbackends — most of which were added during the 0.12–0.15 cycles. - Aro adoption.
lib/compiler/aro/(Aro, the C frontend) replaced earlier in-treetranslate-cinfrastructure. Todayzig translate-cand parts ofzig cc's preprocessing path call into it. - Resinator adoption.
lib/compiler/resinator/provides a full Zig-languagerc.exe, removing a Windows-only external dependency.
Deprecated or replaced features
- The original C++ compiler. Some glue still lives in
src/zig_clang_*.cpp,src/zig_llvm*.cpp, andsrc/zig_llvm-ar.cpp, but the bulk of the C++ implementation is gone. std.ArrayListAligned/std.ArrayListAlignedUnmanaged/std.ArrayListUnmanaged— kept as deprecated aliases ofarray_list.Aligned/ArrayList(seelib/std/std.zig).- The old non-
Io.Reader/Io.Writerbyte streams have largely been folded intolib/std/Io.zig.
Growth trajectory
- 2015–2017: incubation. Single-digit contributors.
- 2018–2020:
0.1–0.7. Contributor base broadens. - 2021–2024: stage2 self-hosting. Contributor and commit volumes climb.
- 2024–2025: ~2,665 commits in the trailing year before the wiki snapshot. Top recent contributors: Andrew Kelley (13,495 lifetime commits), Jakub Konka (3,249), Alex Rønne Petersen (1,787), Jacob Young (1,384), Veikka Tuominen (1,102), LemonBoy (851), mlugg (837), Robin Voetter (525), Luuk de Gram (522), Vexu (505).
The contributor counts above are a snapshot, not a leaderboard — they exist to give a sense of activity scale. See maintainers for the active-contributors per subsystem.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.