Base dev env to contribute to poneyh.
  • Python 85.5%
  • Dockerfile 13.6%
  • JavaScript 0.9%
Find a file
2026-03-24 15:44:39 +00:00
.gitignore chore: Update .gitignore 2026-03-24 16:31:17 +01:00
.pre-commit-config.yaml chore: Add branch protection for GitHub 2026-03-18 21:44:59 +01:00
.python-version feat: Add uv configuration 2026-03-18 21:48:35 +01:00
.ruff.toml feat: Add first pass build of LLVM on Linux 2026-03-18 22:23:52 +01:00
.yamlfmt feat: Initialize repository 2026-03-18 20:45:18 +01:00
.yamllint feat: Initialize repository 2026-03-18 20:45:18 +01:00
commitlint.config.js feat: Initialize repository 2026-03-18 20:45:18 +01:00
docker-compose.yml feat: Add Docker container based on Alpine 2026-03-18 21:45:32 +01:00
Dockerfile feat: Add Docker container based on Alpine 2026-03-18 21:45:32 +01:00
LICENSE feat: Initialize repository 2026-03-18 20:45:18 +01:00
main.py feat: Add first pass LLVM build with Win MSVC 2026-03-24 16:39:27 +01:00
pyproject.toml feat: Add uv configuration 2026-03-18 21:48:35 +01:00
README.md docs: Update README to reflect Windows availability 2026-03-24 16:39:36 +01:00
uv.lock feat: Add uv configuration 2026-03-18 21:48:35 +01:00

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 510× 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++abi is not compatible with the MSVC build environment. On Windows, only libc++ and compiler-rt are 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 libc rather than glibc. 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

Static Badge — Poneyh to the people