Skip to content

Compiler and research tooling

Toolchains supply projects; projects supply proofs and results

Section titled “Toolchains supply projects; projects supply proofs and results”

The global setup provides launchers, compilers, debuggers, and selected command line tools. A project still owns its lockfiles, dependencies, build directory, and evidence. This distinction matters for Rust, CMake, Python, Lean, Julia, TeX, and formal research: a working global executable does not validate a specific project.

WorkGlobal provisionProject-level action
Rustrustup, Cargo tools, LLVM/CMake helperscargo manifest and test suite
Pythonuv and a managed interactive interpreteruv init, lockfile, uv sync
Leanelan and a pinned defaultproject lean-toolchain, lake build
Juliajuliaup and isolated depotPkg environment per project
TypesettingMacTeX or TinyTeX and Quartodocument source and render command

Lean is installed under ELAN_HOME with a deliberate default pin; projects can override it through lean-toolchain (source). For a fresh Mathlib project, use the installer’s documented creation sequence:

Terminal window
lake +leanprover-community/mathlib4:lean-toolchain new example math
cd example
lake exe cache get
lake build

The cache is a speed aid, not a proof check. For formal-result expectations and the full proof gate, follow math workflows and scientific review.

CMake toolchain files are copied into $_LOCAL_PLAT/cmake/toolchains, preserving the repository versions rather than inventing a host path (source). The managed Python command has libraries from packages/python.txt; isolated CLI tools are verified through their declared entrypoints (source).

Terminal window
uv init experiment
cd experiment
uv add numpy
uv run python -c 'import numpy; print(numpy.__version__)'
ls "${_LOCAL_PLAT:?open a managed login shell first}/cmake/toolchains"
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE="$_LOCAL_PLAT/cmake/toolchains/llvm-22.cmake"
cmake --build build

The CMake filename must exist in the installed toolchain directory; list it before selecting it. Compiler package versions and specific toolchain files may change with repository revisions.