- Python 85.5%
- Dockerfile 13.6%
- JavaScript 0.9%
|
|
||
|---|---|---|
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .python-version | ||
| .ruff.toml | ||
| .yamlfmt | ||
| .yamllint | ||
| commitlint.config.js | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| main.py | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
Poneyh-toolkit
A 100% LLVM C++ toolchain — packaged, distributed, ready to use.
Description
Poneyh-toolkit automates the build and distribution of a complete LLVM toolchain (Clang, lld, libc++) via GitHub Actions. The goal is straightforward: zero friction between the intent to write C++23 and the first compiler invocation.
The project rests on two complementary pillars:
- Prebuilt binaries — every GitHub release ships the LLVM toolchain for Linux, macOS and Windows, ready to unpack and use with no installation required.
- Alpine Dev Container — a containerized development environment built on Alpine Linux, designed for VS Code and GitHub Codespaces. Opening the repo is all it takes to land in a shell with the full toolchain available.
Toolchain
| Component | Choice | Why |
|---|---|---|
| Compiler | Clang 20+ | Precise diagnostics, C++23 standards |
| Linker | lld | 5–10× faster than ld/gold |
| C++ stdlib | libc++ | Tracks new standards ahead of libstdc++ |
| Build system | CMake + Ninja | Portability and speed |
| Standard | C++23 | — |
Supported platforms
| Platform | Architecture | Status |
|---|---|---|
| Linux | x86_64 | 🔄️ In progress |
| macOS | x86_64 (Intel) | 🔄️ In progress |
| Windows | x86_64 | 🔄️ In progress |
| macOS | arm64 (Apple Silicon) | 🚧 todo |
| Linux | arm64 | 🚧 todo — RPi 3 available |
| Windows | arm64 | 🚧 todo — no hardware available |
Available runtimes
| Runtime | Description | Linux | macOS | Windows |
|---|---|---|---|---|
| libc++ | C++ standard library | ✅ | ✅ | ✅ |
| libc++abi | C++ ABI support library | ✅ | ✅ | ❌ |
| compiler-rt | Compiler runtime (builtins, sanitizers) | ✅ | ✅ | ✅ |
| libunwind | Stack unwinding | ✅ | ✅ | ❌ |
Note (Windows):
libc++abiis not compatible with the MSVC build environment. On Windows, onlylibc++andcompiler-rtare available.
Project Status
In Progress
- Add build for Windows x86_64 plateform
To do
- Add build for MacOS Intel x86_64
- Add tests to validate runtimes.
- Package binaries
- Add devcontainer with binaries from Linux x86_64
Done
- Init repository
- Create docker container as devcontainer
- First pass build on Linux
Releases — Prebuilt binaries
Binaries are built automatically by GitHub Actions on every llvmorg-* tag.
Linux / macOS / Windows — download the archive for your platform from the
Releases page, extract it, and point CC/CXX at the binaries:
export CC=/path/to/llvm/bin/clang
export CXX=/path/to/llvm/bin/clang++
Dev Container — Ready to code
The dev container runs on Alpine Linux (~6 MB base image), keeping startup times near-instant both locally and in CI.
Requirements: Docker + VS Code with the Dev Containers extension.
git clone <repo>
code <repo>
# VS Code will prompt to reopen in the container — accept
The container exposes clang, clang++, lld, cmake, ninja and mold directly.
musl note: Alpine uses
musl libcrather thanglibc. Some GNU-specific libraries may require minor adaptations.
Building the toolchain from source
uv sync
uv run build_llvm.py llvmorg-20.1.0
The script clones llvm-project, downloads the official LLVM bootstrapper, and compiles the runtimes (libc++, libc++abi, libunwind, compiler-rt) for the target platform.
Structure
poneyh-toolkit/ \
├── .devcontainer/ # Dev Container (VS Code / Codespaces) \
│ └── devcontainer.json \
├── .github/workflows/ # CI — build and publish releases \
├── Dockerfile # Alpine build image \
├── build_llvm.py # Toolchain build script
All credits to the LLVM Team. Github available here
Maintained by Seb Paoli (@poneyh) — Apashe-2.0 License