tatara-pkgs — nixpkgs, fully expressed in tatara-lisp
Two things live together:
-
PackageSettrait — backend-agnostic view of a package universe. Every backend (nixpkgs bridge, tatara-lisp-authored set, overlay of either) answersget(name) -> Option<Derivation>+names() -> Vec<String>. -
Synthesizer — a
MultiSynthesizerthat walks aPackageSetand emits one tatara-lisp.tlfile per package.tenddrives this: on a nixpkgs commit bump, the generator regenerates the mirror tree; each package becomes a typed(defderivation …)that realizes to the same/nix/store/...path nixpkgs would produce.
nixpkgs ──tend sync──► PackageSet (NixpkgsBridge)
│
▼ MultiSynthesizer::generate_all
Vec<Artifact> (`hello.tl`, `bash.tl`, …)
│
▼ disk
pleme-io/nixpkgs-tl/
│
▼ tatara-eval + tatara-nix::Realizer
/nix/store/<hash>-<name> (same path nixpkgs builds)
The gradient: today a tatara-lisp file is a bridge wrapper; tomorrow the hot-path packages (stdenv, coreutils, bash, kernel) transliterate to pure tatara-lisp and stop bridging. The typed surface doesn't change.