$ account rust-lang
This repository is the main source code for the Rust programming language compiler (rustc) and its standard library. It is a monorepo containing the compiler, standard library (core, alloc, std), and development tools (clippy linter, miri interpreter, rustfmt formatter, rust-analyzer, rustdoc documentation generator). The compiler is implemented as a collection of Rust crates under compiler/, each handling a specific phase: lexing, parsing, AST construction, HIR lowering, type inference, borrow checking, MIR optimization, and code generation (LLVM, GCC, Cranelift backends). The architecture is modular with well-defined interfaces between phases, enabling incremental compilation and separate development of backends. The primary entry point is compiler/rustc/src/main.rs, which drives the compilation pipeline. Source code flows through the lexer, parser, AST, HIR, MIR, and finally to code generation. The borrow checker (rustc_borrowck) performs region-based static analysis for memory safety. The type inference engine (rustc_infer) handles complex type relationships including generics, traits, and higher-ranked types. The MIR optimization framework (rustc_mir_transform) applies numerous passes such as constant propagation, dead store elimination, and GVN. External dependencies include LLVM for the primary code generation backend, libgccjit for the GCC backend, and various system libraries for platform-specific functionality. The standard library provides OS abstractions, synchronization primitives, I/O, and collections. The repository also includes extensive test suites (tests/) covering compiler diagnostics, code generation, optimization, and tool behavior.
Rustlings is an interactive CLI application designed to teach Rust through a series of small, hands-on exercises. It provides a terminal-based learning environment where users edit, compile, test, and run Rust code snippets, progressing through topics from basic variables to async programming. The system is built as a single binary that embeds all exercise files and solutions at compile time using a custom proc macro, eliminating external file dependencies. The CLI offers multiple modes: a watch mode that automatically re-checks exercises on file changes, a list mode for browsing and selecting exercises, and commands for running, hinting, resetting, and checking all exercises. State persistence tracks user progress in a local file. The architecture is modular, with clear separation between exercise execution logic, terminal UI, state management, and developer tooling. External dependencies include clap for argument parsing, crossterm for terminal control, notify for file watching, and serde for serialization. The project is actively maintained by the Rust community and serves as the official companion to 'The Rust Programming Language' book.
This repository provides two core Rust libraries: `compiler-builtins` and `libm`. `compiler-builtins` is a pure-Rust port of LLVM's `compiler-rt` intrinsics, including integer arithmetic (division, multiplication, leading/trailing zeros), floating-point operations (add, sub, mul, div, pow, conversion, truncation, extension), memory operations (memcpy, memset, memcmp), and platform-specific atomics. It is used by the Rust compiler to link against required runtime symbols for bare-metal and embedded targets. `libm` is a pure-Rust implementation of the C standard math library, ported from musl, covering trigonometric, exponential, logarithmic, power, Bessel, error, gamma, and rounding functions for f32 and f64, with experimental f16/f128 support. Both crates are `#![no_std]` and rely only on `core`. The codebase exhibits strong engineering: extensive use of generic traits (Float, Int) to abstract over widths, macro-driven code generation (intrinsics!, division algorithm macros, benchmark macros), architecture-specific optimizations (x86 SSE/AVX, ARM NEON, AArch64 outline atomics, Wasm, LoongArch, Hexagon assembly), and rigorous correctness verification against MPFR (via rug) and musl. CI tests run across 20+ targets, including instruction-count and wall-time benchmarks. This code is foundational for the Rust ecosystem, particularly in embedded, WebAssembly, and systems programming.