Renderingla

Coreutils

Faber reimplements GNU coreutils as application-lane proof. These are real CLI programs demonstrating Faber building working binaries with argv, stdio, exit codes, and host I/O, verified against host GNU utilities via a parity harness.

Implemented utilities

Stage 1 — scaffold + true/false true, false

Stage 2 — shared common helpers + inline tests echo, basename, dirname, printf, seq

Stage 3 — nullable-stdin slices cat, head, tail, wc, tac, uniq, fold, nl, expand, unexpand, sort, cut, grep, tr, tee, paste

Scaffolded — Stage 5+ rm, cp, mv, mkdir, touch, pwd, readlink, realpath, join, comm, od, cksum, split, yes, printenv

Example — echo

The echo package demonstrates Faber patterns used throughout coreutils: CLI annotations, option parsing, inline tests with probandum/proba/adfirma, and shared common modules:

importa ex "norma:consolum" privata consolum
importa ex "../../../common/gnu/format" privata gnu_format

functio echo_textus(lista<textus> words) → textus {
    redde ""
}

functio echo_novam_lineam(lista<textus> words) → bivalens {
    redde falsum
}

probandum "echo formatting" tag "coreutils" {
    proba "empty operands" {
        adfirma echo_textus([]) ≡ ""
    }
    proba "-n suppresses newline" {
        adfirma echo_novam_lineam(["-n", "hello"]) ≡ falsum
    }
}

@ cli "echo"
@ descriptio "GNU coreutils echo parity exemplum"
@ operandus ceteri textus words
incipit argumenta args {
    # ... CLI logic here
}

Running

faber check coreutils/packages/echo
faber test coreutils/packages/echo
faber run coreutils/packages/echo -- hello world