Go to file T
Code
.cargo api conventions, ci with the loud pre-M1 acquisition skip, nightly drift watch, findings ledger with F-0001
.fac org migration: tenseleyFlow -> wolffe-lang
.github Plant local-time rows and cross-host date oracle
assets assets: the wolf mark
ci ci/tl30-prediction.md: the plant, seen red (run 39608592855)
docs witness: the two tier pr rigs' summaries at the code head (39977644707, green at 59.8 s) and at 47fcb91 (39986553915, the one timeout)
std std.list: set reads the slot before it stores, so an out-of-range index traps bounds on lupin too (its out-of-range store is refused by name)
tests ledger: x/crypto/sha2/cavp_sha384_long is slow on lupin 0.1.56 off windows — its step-budget refusal now lands past CI's 60 s ubuntu ceiling (59.8 s, then two timeouts: runs 39977644707, 39977416300, 39986553915; 55-56.5 s at 0.1.55); windows' 180 s ceiling still observes the refusal (R-sc72-5)
vendor vendor: binary pin to wolf 0.2.35, by digest (v0.2.35 at cf0c13d3)
xtask doc-examples: os.name and os.arch are mirror-lagged on lupin 0.1.56 by the builtin they name (wolf-interp#277), red the day lupin runs them
.gitattributes wolf-std#15: `* text=auto eol=lf` — line endings only, and the normalization moves no byte
.gitignore gitignore: the agents' working-knowledge guide stays local
.gitmodules org migration: tenseleyFlow -> wolffe-lang
API-CONVENTIONS.md API-CONVENTIONS: the 0.2.35 amendment — flags as pub const, mutators in place, the language's reserve and reset
CHANGELOG.md changelog: sc72 — the one slow cell
CONTRIBUTING.md CONTRIBUTING: the host-scoped ledger cell, and what it is not for
Cargo.lock api conventions, ci with the loud pre-M1 acquisition skip, nightly drift watch, findings ledger with F-0001
Cargo.toml api conventions, ci with the loud pre-M1 acquisition skip, nightly drift watch, findings ledger with F-0001
GUIDE-ENTRIES-sc40.txt findings: F-0113 — four xtask ci steps run in no workflow, and doc-examples is one of them
LICENSE license: GPL-3.0-or-later with the wolf Runtime Library Exception (D41 as amended) — std compiles into user programs, so the exception rides here too
LICENSE-EXCEPTION license: GPL-3.0-or-later with the wolf Runtime Library Exception (D41 as amended) — std compiles into user programs, so the exception rides here too
LICENSE-TRAINING-DATA license: add the wolf Training Data Permission, version 1.0
README.md README: refresh the test count and the newest surfaces for wolf 0.2.35
rust-toolchain.toml api conventions, ci with the loud pre-M1 acquisition skip, nightly drift watch, findings ledger with F-0001
upstream @ cf0c13d vendor: data pin 9da7bdcf (v0.2.34) -> cf0c13d3 (v0.2.35)

wolf-std

the wolf mark

The wolf standard library: the modules behind use std.*.

The library has its own release cadence. Each wolf release ships a copy of std/ beside the compiler binary, pinned by the compiler's crates/wolf_driver/STD-PIN. To use a checkout instead:

git clone https://github.com/wolffe-lang/wolf-std
export WOLF_STD="$PWD/wolf-std/std"
wolf run main.lu

--std-root <dir> does the same for a single invocation and overrides WOLF_STD. The directory tree is the namespace: use std.list names <root>/list/.

What's in it

Core: list map set deque option errors iter range cmp sort search mem pool ops prelude

Text and data: str strbuf fmt unicode bytes hex base64 json

Numbers: math rand

The os tier: fs io net time env process os signal term

Testing: testing

std/x/ is the nursery. crypto, tls, jose and a few others live there until their surfaces settle, and anything under x may change without notice.

Every function names the capability it reaches and records which execution rungs run it.

The library is pre-alpha, with the compiler. The newest surfaces are wolf 0.2.35's: std.fs's advisory locks, fifos, handle records, non-blocking writes and reads into a caller's buffer; std.process's core limits; std.os's name and arch. std.list's mutators work in place.

Testing

Library code here is executed by lupin (the reference interpreter), by the compiler's checked tier, and by the compiler's native tier, which compiles, links and runs it.

The three refuse different shapes of program, so each test records what each rung achieved. tests/ledger.toml holds those records for all 552 tests. A test that passes deeper than its ledger entry claims fails CI, the same as one that passes shallower, so the ledger has to be kept accurate in both directions.

When a test finds a gap in the language, the gap is filed in docs/findings.md and upstream. The library does not work around it.

Building

cargo xtask std-test                     # stage + run every test on all three rungs
cargo xtask doc-examples                 # every fenced ```wolf-doc-example, executed
cargo xtask ulp                          # std.math.float accuracy + bit-for-bit agreement
cargo xtask doctor                       # which binaries resolved, and whether they match the pins
cargo xtask ledger-check                 # every test has a ledger row, and every row has a test
cargo xtask std-test --lint-conventions  # test-authoring conventions, without running tests
cargo xtask fmt-lu                       # wolf formatting, checked without rewriting
cargo xtask sync-pin                     # verify the vendored upstream snapshot against PIN
cargo xtask gen-vectors --check          # verify the committed crypto vector tests
cargo xtask time-oracle                  # local time against the host's date command
cargo xtask ci                           # all of it, behind fmt/clippy/test

Toolchain binaries are looked up at run time from $LUPIN_BIN / $WOLF_BIN, then .wolf-bin/, then PATH. A rung whose binary is missing reports SKIP: no lupin at pin … and is counted as skipped. The native rung also needs the runtime staticlib beside the wolf binary (or $WOLF_RT_LIB) and skips the same way without it. Its name is rustc's own spelling per target — wolf_rt.lib on windows, libwolf_rt.a everywhere else — which is what every release archive ships; a rig that knew only one of the two reported a lane dark at a file it could see (wolf-std#18).

upstream/ is the wolf-lang submodule (sparse spec/ and corpus/), vendor/upstream/ the snapshot CI reads, and vendor/tools.toml the binary pins. Surface conventions are in API-CONVENTIONS.md.

License

GPL-3.0-or-later with the wolf Runtime Library Exception. The standard library compiles into your programs, and your programs are yours, under any license you choose. The wolf Training Data Permission lets you train models on this repository's text and ship excerpts of it in datasets under CC BY 4.0.