Go to file T
Code
.cargo scaffold cargo workspace: pipeline crates with locked dependency direction, spec and corpus stubs
.github bench: measure the right binary, against a baseline that executes
bench str: words, lines and split iterate without allocating
corpus str: words, lines and split iterate without allocating
crates str: words, lines and split iterate without allocating
docs midend: rle_and_forward guards escape, and the call-site fact lands in its sound half
fuzz wolf build --release end-to-end: 94 of 94 run-phase corpus files at identical verdict and stdout sha across the tiers, overflow trapping identically at O2 (X3 is profile-independent); the metadata-strip fuzz rig with the three historical shapes and the CFG-duplication stressor as permanent regressions; the tier-R compile bench lane reports 0.41s clean vs 0.075s debug
spec spec: the clauses words, lines and split answer to
xtask differ: publish lane coverage, and gate it
.editorconfig pin toolchain, add deny config and repo conventions
.gitattributes gitattributes: LF checkout everywhere — byte-exact spans require byte-stable sources
.gitignore s44: the M2 measurement protocol, and the verdict it returns
CONTRIBUTING.md Update commit message guidelines in CONTRIBUTING.md
Cargo.lock docs/api generated over wolf-std: 358 items, 357 documented, 309 with an example
Cargo.toml docs/api generated over wolf-std: 358 items, 357 documented, 309 with an example
LICENSE license: GPL-3.0-or-later with the wolf Runtime Library Exception on wolf_rt (D41 as amended) — the GCC model: copyleft protects the toolchain, the exception keeps compiled programs their authors' own
README.md docs: the prose pass — plain sentences, no antithesis tic, no unearned adjectives; twelve claims corrected against the source (the release notes' code count, the corpus counts, the tier the compiler actually ships)
clippy.toml pin toolchain, add deny config and repo conventions
deny.toml pin toolchain, add deny config and repo conventions
rust-toolchain.toml pin toolchain, add deny config and repo conventions
rustfmt.toml pin toolchain, add deny config and repo conventions

wolf

the wolf mark

Wolf is a compiled systems language. Memory lives in regions the compiler infers, so a program carries no lifetime annotations. Allocation goes through arenas by default. A region moves between tasks instead of being shared, which is what keeps concurrent access safe, and the aliasing that falls out of that is information the optimizer gets to use. Arithmetic is checked in every profile, including release.

Wolf is pre-alpha. The surface still moves.

What runs today

v0.1.0 is tagged, under the codename wolfgang. The codenames go on like that.

It ships the debug tier: wolf build and wolf run compile .lu source to native machine code through the compiler's own backend, with no LLVM in the loop. wolf build --release goes through LLVM instead. That tier compiles and runs, and both tiers agree on every corpus program that runs. The optimizer behind it is campaign c09 and that work is not finished.

cargo build --release -p wolf_driver
./target/release/wolf run corpus/hello.lu
hello, wolf

docs/release/NOTES-v0.1.0.md says what the release does and what it does not do, feature by feature.

Where things are

path what
spec/ the normative language specification: grammar, memory model, concurrency, ABI, conformance
corpus/ the conformance corpus. Every program states its own expected outcome in a //! header, and CI checks the claim
crates/ the compiler, the runtime (wolf_rt), and the driver
docs/ the diagnostic catalog, the lint triage ledger, the release notes

The reference interpreter is a separate implementation in wolf-interp. The two share no code, only the spec and the corpus, and each is tested against the other.

CONTRIBUTING.md has the gates and the commit conventions.

License

Licensed under GPL-3.0-or-later. The runtime library (wolf_rt) carries the wolf Runtime Library Exception: programs you compile with wolf are yours, under any license you choose.