How go is put together
This is the canonical source repository for the Go programming language itself: the compiler toolchain, the Go command, and the entire standard library ('std' module). The primary language is Go, with substantial hand-written assembly for performance-critical runtime/crypto paths and shell scripts (make.bash/all.bash) driving the bootstrap build. There is no application data flow; instead the architecture is layered as src/runtime (scheduler, GC, memory), src/cmd (compiler, linker, go command), the std library packages (net, crypto, math, etc.), plus api/ compatibility files and lib/ support assets. Cross-platform execution helpers under misc/ (Android via adb, iOS, WebAssembly) let tests run on non-host targets.
Languages
Frameworks
Infrastructure
Major components
src/runtime
The Go runtime: goroutine scheduler, garbage collector, memory allocator, and low-level platform support.
src/cmd
Toolchain commands including the go command, compiler, linker, and related tools (separate 'cmd' Go module).
Standard library packages (src/net, src/crypto, src/math, src/fmt, ...)
The exported Go API: networking/DNS resolution, cryptography, numerics, I/O, formatting, and more.
internal support packages
Unexported helpers like internal/bytealg and internal/stringslite used by std packages.
api/
Per-release API compatibility files (go1.txt through go1.27.txt plus next/) used to enforce API stability.
lib/
Support assets: FIPS 140 module zips/checksums, timezone database (zoneinfo.zip), and WebAssembly exec runners.
misc/
Platform-specific binaries and wrappers (go_android_exec, iOS exec, wasm_exec.html) plus a separate misc Go module.
Build scripts (src/make.bash, all.bash, run.bash, race.bash)
Bootstrap, build, test, and race-detector orchestration across Unix/Windows/Plan 9.
A quiet week focused on enabling a new map optimization by default and adding 8-bit SIMD interleave operations.
5 weeksWeek of 2026-08-24
Week of 2026-08-24latest
A quiet week focused on enabling a new map optimization by default and adding 8-bit SIMD interleave operations.
Week of 2026-08-17
A busy week of 60 commits spanning jump tables for MIPS chips, faster hashing on arm64, HTTP/3 test re-enabling, and a big cleanup of the SIMD code generators.
Week of 2026-08-10
Compiler robustness and performance dominated, with fixes for crashes on unusual functions, atomic-operation improvements on x86, and Landlock support for execve on Linux.
Week of 2026-08-03
SVE support advanced in the SIMD package while the team deleted hand-written assembly for MD5 and added faster AES assembly for loong64.
Week of 2026-07-27
The biggest structural change of the month: the compiler's SSA packages were split apart into smaller, cleaner packages, alongside jump-table groundwork and assorted bug fixes.
The last month of Go development shows heavy investment in the compiler and runtime, including a large internal restructuring of the SSA compiler packages, a new map-splitting experiment enabled by default, and a wave of performance tuning for specific chips like loong64, arm64, and amd64. Work on the experimental SIMD package continued steadily, with code-generation tooling refactors and new instructions for SVE and other architectures. Alongside these, teams shipped many small fixes and documentation cleanups across standard library packages like encoding/json, net/http, crypto, and archive/tar.
Week by week
2026-08-24A quiet week focused on enabling a new map optimization by default and adding 8-bit SIMD interleave operations.latest3 changes
Feature
8-bit interleave operations for SIMD
The compiler gained support for 8-bit interleave operations in the SIMD package on amd64 processors.
Feature
Map splitting enabled by default
The GOEXPERIMENT=mapsplitgroup setting is now turned on automatically, meaning its map layout improvement ships without users opting in.
Fix
Reverted compiler logging change
A recent attempt to make compiler optimization logs work better with -trimpath was rolled back.
2026-08-17A busy week of 60 commits spanning jump tables for MIPS chips, faster hashing on arm64, HTTP/3 test re-enabling, and a big cleanup of the SIMD code generators.6 changes
Refactor
Jump tables on MIPS architectures
The compiler now generates jump tables (faster switch statements) for both 32-bit and 64-bit MIPS processors.
Refactor
Faster go list command
The go list tool was sped up, making it quicker to inspect package information.
Fix
HTTP/3 tests re-enabled
HTTP/3 tests are running again now that fake network support is available, improving confidence in that protocol's implementation.
Refactor
SIMD generator cleanup
The SIMD code-generation tools were consolidated around shared 'gentools' support, removing duplicated logic across several generators.
Fix
Windows unknown user errors
The os/user package now reports an unrecognized Windows account as a proper UnknownUserError instead of something less clear.
Refactor
Loong64 speedups
Several optimizations landed for loong64 chips, including unrolled CRC32 loops and better sign-extension handling in the compiler.
2026-08-10Compiler robustness and performance dominated, with fixes for crashes on unusual functions, atomic-operation improvements on x86, and Landlock support for execve on Linux.6 changes
Feature
Landlock support for execve
Linux programs built with Go can now use the Landlock security feature to restrict what programs they're allowed to launch.
Fix
Fixed compiler crash on large offsets
The compiler no longer crashes when functions have parameters located at very large memory offsets.
Refactor
Atomic operation optimizations
The compiler now emits cheaper locked-increment and locked-decrement instructions where possible instead of more expensive compare-and-swap sequences.
Fix
Resource cleanup on Close
Compression writers now release their underlying resources when closed, preventing resource leaks.
Docs
JSON v2 migration guidance
The encoding/json documentation now points readers to the v2 tutorial and migration guide.
Refactor
Shared queue for test loading
The go command uses a shared queue when loading test files, speeding up builds that include tests.
2026-08-03SVE support advanced in the SIMD package while the team deleted hand-written assembly for MD5 and added faster AES assembly for loong64.6 changes
Feature
SVE code generation groundwork
Tooling was added to auto-generate definitions for ARM's scalable vector extensions in the SIMD package.
Refactor
Loong64 AES assembly
Hand-tuned assembly using loong64's LSX instructions now accelerates AES block operations and CTR mode encryption.
Chore
MD5 assembly deleted
Hand-written MD5 assembly for amd64, arm64, 386, and arm was removed, presumably because the generic code is now competitive or the assembly wasn't worth maintaining.
Refactor
Atomic instruction improvements
The compiler generates simpler LOCK ADD instructions instead of LOCK XADD when the sum isn't needed, plus related peephole optimizations.
Fix
Crash-proof tracebacks
The runtime no longer crashes when printing a stack traceback gets stuck, as long as errors are tolerated.
Docs
JSON v2 documentation polish
Multiple documentation improvements landed for encoding/json/v2, covering marshal options, deterministic output, and clearer wording.
2026-07-27The biggest structural change of the month: the compiler's SSA packages were split apart into smaller, cleaner packages, alongside jump-table groundwork and assorted bug fixes.6 changes
Refactor
SSA package reorganization
The compiler's SSA (intermediate representation) code was split from one large package into several smaller ones, making the codebase easier to maintain.
Fix
JavaScript regexp fix in templates
html/template fixed how it tracks JavaScript regular expressions, closing a potential safety gap in templated pages.
Fix
Performance regression fix in strings
A slowdown in the strings package's Index function was identified and corrected.
Fix
GOAUTH credential matching
The go command now correctly matches saved credentials for URLs that include query parameters.
Refactor
Read-modify-write folding on amd64
Small read-modify-write memory operations are folded into single instructions on amd64, producing faster code.
Fix
Mail display-name encoding
net/mail now uses B encoding for display names containing backslashes so such addresses are transmitted correctly.
Dependencies and code review
Dependency advisories
Security Watch
No known advisories across 0 scanned dependencies.
No known advisories in the scanned dependencies.
Code review
No concrete code-level issues confirmed.
Get this report every week for your repos.
GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.
$19 a month, flat · First 10 outputs free · No card required