diff --git a/.claude/skills/limbo-dev/SKILL.md b/.claude/skills/limbo-dev/SKILL.md index be628bd0c..247c3930d 100644 --- a/.claude/skills/limbo-dev/SKILL.md +++ b/.claude/skills/limbo-dev/SKILL.md @@ -32,9 +32,14 @@ cd appl/cmd; mk install # installs to the canonical path ``` If a fix "isn't taking effect" — same bug after recompile, diagnostic -prints not appearing — run `tools/verify-dis-paths.sh` before chasing -anything else. The pre-commit hook (`./hooks/install.sh`) and CI both run -it. +prints not appearing — you almost certainly compiled to a path nothing +loads. `dis/` is a build product and is not tracked; rebuild it properly: + + for d in appl appl/mpeg appl/veltro tests; do (cd $d && mk install); done + +Never hand-roll `limbo -o `; use `tools/compile-limbo.sh` or +`mk install`. `tools/verify-dis-build.sh` (run by CI) checks the build +against `tools/dis-manifest.txt`. **2. A changed `.m` interface stales every dependent `.dis`.** The Dis VM rejects stale modules at load time with `link typecheck` errors — blank @@ -71,7 +76,7 @@ Verify every modified file's pre-image matches master tip (rebase, then `git diff master...HEAD` and check the base blobs). A branch cut from — or contaminated by — another unmerged branch can carry someone else's change through a textually clean merge, silently. Then run -`tools/verify-dis-paths.sh` and fill the PR template's design-principles +`tools/verify-dis-build.sh` and fill the PR template's design-principles checklist honestly. ## Running what you built diff --git a/.claude/skills/limbo-test/SKILL.md b/.claude/skills/limbo-test/SKILL.md index 30790b304..93003ca56 100644 --- a/.claude/skills/limbo-test/SKILL.md +++ b/.claude/skills/limbo-test/SKILL.md @@ -119,6 +119,6 @@ assuming it exercises behavior. suite passed — read the job log when it matters. - Gating: nsaudit fixture checks, wallet/secstore integration, the presentation file-open GUI regression, JIT correctness and boot smoke, - `verify-dis-paths`, `verify-sh-exec`, and the ring-fence job. + `verify-dis-build`, `verify-sh-exec`, and the ring-fence job. - Benchmarks (`tests/bench/`), stress (`tests/stress/`), and interop (`tests/interop/`) are deliberately outside the auto-run suite. diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 855e45e1a..7d0891e5c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -171,13 +171,13 @@ jobs: echo "WARNING: libfido2 not linked — /dev/2fa will be a stub in this artifact" >&2 fi - # The archive ships the runtime tree as-is, so prove it is exactly - # what this tag's source compiles to before copying it in. Without - # this the tarball carries whatever bytecode was last committed, - # which is not necessarily what the source beside it produces. + # dis/ is not tracked, so the tree must be built before it can be + # staged -- exactly as emu/*/o.emu already is. This also checks the + # build against tools/dis-manifest.txt, so a release cannot quietly + # ship with a module missing. PATH="$ROOT/$(uname -s | sed 's/Darwin/MacOSX/')/$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')/bin:$PATH" export PATH - "$ROOT/tools/verify-dis-reproducible.sh" + "$ROOT/tools/verify-dis-build.sh" # Shared runtime tree for d in dis lib fonts module services locale usr mnt; do @@ -457,13 +457,13 @@ jobs: cp Linux/amd64/bin/limbo Linux/amd64/bin/mk "$STAGE/bin/" strip "$STAGE/bin/emu" "$STAGE/bin/limbo" "$STAGE/bin/mk" - # The archive ships the runtime tree as-is, so prove it is exactly - # what this tag's source compiles to before copying it in. Without - # this the tarball carries whatever bytecode was last committed, - # which is not necessarily what the source beside it produces. + # dis/ is not tracked, so the tree must be built before it can be + # staged -- exactly as emu/*/o.emu already is. This also checks the + # build against tools/dis-manifest.txt, so a release cannot quietly + # ship with a module missing. PATH="$ROOT/$(uname -s | sed 's/Darwin/MacOSX/')/$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')/bin:$PATH" export PATH - "$ROOT/tools/verify-dis-reproducible.sh" + "$ROOT/tools/verify-dis-build.sh" # Runtime tree into resources/ for d in dis lib fonts module services locale usr mnt; do @@ -659,13 +659,13 @@ jobs: echo "WARNING: libfido2 not linked — /dev/2fa will be a stub in this artifact" >&2 fi - # The archive ships the runtime tree as-is, so prove it is exactly - # what this tag's source compiles to before copying it in. Without - # this the tarball carries whatever bytecode was last committed, - # which is not necessarily what the source beside it produces. + # dis/ is not tracked, so the tree must be built before it can be + # staged -- exactly as emu/*/o.emu already is. This also checks the + # build against tools/dis-manifest.txt, so a release cannot quietly + # ship with a module missing. PATH="$ROOT/$(uname -s | sed 's/Darwin/MacOSX/')/$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')/bin:$PATH" export PATH - "$ROOT/tools/verify-dis-reproducible.sh" + "$ROOT/tools/verify-dis-build.sh" # Shared runtime tree for d in dis lib fonts module services locale usr mnt; do @@ -943,13 +943,13 @@ jobs: # Native tools cp Linux/arm64/bin/limbo Linux/arm64/bin/mk "$STAGE/bin/" - # The archive ships the runtime tree as-is, so prove it is exactly - # what this tag's source compiles to before copying it in. Without - # this the tarball carries whatever bytecode was last committed, - # which is not necessarily what the source beside it produces. + # dis/ is not tracked, so the tree must be built before it can be + # staged -- exactly as emu/*/o.emu already is. This also checks the + # build against tools/dis-manifest.txt, so a release cannot quietly + # ship with a module missing. PATH="$ROOT/$(uname -s | sed 's/Darwin/MacOSX/')/$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')/bin:$PATH" export PATH - "$ROOT/tools/verify-dis-reproducible.sh" + "$ROOT/tools/verify-dis-build.sh" # Runtime tree into resources/ for d in dis lib fonts module services locale usr mnt; do @@ -1147,13 +1147,13 @@ jobs: # Strip debug symbols before signing strip "$MACOS/emu" "$MACOS/tools/limbo" "$MACOS/tools/mk" - # The archive ships the runtime tree as-is, so prove it is exactly - # what this tag's source compiles to before copying it in. Without - # this the tarball carries whatever bytecode was last committed, - # which is not necessarily what the source beside it produces. + # dis/ is not tracked, so the tree must be built before it can be + # staged -- exactly as emu/*/o.emu already is. This also checks the + # build against tools/dis-manifest.txt, so a release cannot quietly + # ship with a module missing. PATH="$ROOT/$(uname -s | sed 's/Darwin/MacOSX/')/$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')/bin:$PATH" export PATH - "$ROOT/tools/verify-dis-reproducible.sh" + "$ROOT/tools/verify-dis-build.sh" # Runtime tree goes in Contents/Resources/ for d in dis lib fonts module services locale usr mnt; do @@ -1376,13 +1376,13 @@ jobs: cp MacOSX/arm64/bin/limbo MacOSX/arm64/bin/mk "$STAGE/MacOSX/arm64/bin/" strip "$STAGE/emu/MacOSX/o.emu" "$STAGE/MacOSX/arm64/bin/limbo" "$STAGE/MacOSX/arm64/bin/mk" 2>/dev/null || true - # The archive ships the runtime tree as-is, so prove it is exactly - # what this tag's source compiles to before copying it in. Without - # this the tarball carries whatever bytecode was last committed, - # which is not necessarily what the source beside it produces. + # dis/ is not tracked, so the tree must be built before it can be + # staged -- exactly as emu/*/o.emu already is. This also checks the + # build against tools/dis-manifest.txt, so a release cannot quietly + # ship with a module missing. PATH="$ROOT/$(uname -s | sed 's/Darwin/MacOSX/')/$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')/bin:$PATH" export PATH - "$ROOT/tools/verify-dis-reproducible.sh" + "$ROOT/tools/verify-dis-build.sh" # Shared runtime tree for d in dis lib fonts module services locale usr mnt; do diff --git a/.github/workflows/verify-dis-build.yml b/.github/workflows/verify-dis-build.yml new file mode 100644 index 000000000..0a5e4c383 --- /dev/null +++ b/.github/workflows/verify-dis-build.yml @@ -0,0 +1,42 @@ +name: Verify dis build + +# dis/ is a build product and is not tracked, so it cannot go stale. What +# it CAN do is quietly lose a module: drop a target from an mkfile's TARG +# and the module simply stops being built, with nothing to say so until +# something fails to load at runtime. 45 modules were already in that +# state and only kept working because their bytecode happened to be +# committed. +# +# tools/dis-manifest.txt tracks the set of modules the build must produce. +# This job builds the tree and compares. A module appearing or vanishing +# is a reviewable one-line diff instead of a binary blob. + +on: + pull_request: + push: + branches: [master] + +permissions: + contents: read + +jobs: + dis-build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + + - name: Build native toolchain + run: | + set -e + export ROOT="$PWD" + SYSTARG=Linux OBJTYPE=amd64 ./makemk.sh + export PATH="$ROOT/Linux/amd64/bin:$PATH" + for d in lib9 libbio libmp libsec libmath utils/iyacc limbo; do + (cd "$d" && mk install) + done + + - name: Build the runtime tree and check the manifest + run: | + export ROOT="$PWD" + export PATH="$ROOT/Linux/amd64/bin:$PATH" + ./tools/verify-dis-build.sh diff --git a/.github/workflows/verify-dis-paths.yml b/.github/workflows/verify-dis-paths.yml deleted file mode 100644 index 4c6df9884..000000000 --- a/.github/workflows/verify-dis-paths.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Verify dis-paths - -# Universal backstop for the "stale build artefact" bug class -# (INFR-28 history): a Limbo source file is committed, but the -# corresponding compiled .dis at the path declared in the module's -# PATH constant is missing or older than the source. emu loads the -# stale .dis; every "fix" appears to do nothing locally. -# -# This job runs in seconds and blocks merge. It catches contributors -# who don't have the local pre-commit hook installed (hooks/install.sh) -# or who used the wrong manual `limbo -o ...` target. - -on: - pull_request: - push: - branches: [master] - -permissions: - contents: read - -jobs: - verify: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - - name: Verify dis paths - run: ./tools/verify-dis-paths.sh diff --git a/.github/workflows/verify-dis-reproducible.yml b/.github/workflows/verify-dis-reproducible.yml deleted file mode 100644 index 7ed653515..000000000 --- a/.github/workflows/verify-dis-reproducible.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Verify dis reproducible - -# dis/ is committed so a downloaded release runs without the user -# building anything. The price of that is a tree free to drift from -# its source with nothing to say so. All four ways it can drift have -# already happened here: bytecode went stale (dis/acme.dis shipped -# font paths the source abandoned in March), a module was compiled to -# a path the build never installs to, sources were deleted with their -# binaries left behind (including a Veltro tool removed by a commit -# titled "chore(security)"), and 45 modules shipped that no mkfile -# ever compiled. -# -# This job rebuilds the runtime tree from the tagged source and -# requires the result to be byte-identical to what is committed. It -# does not reason about where a .dis belongs -- that reasoning is -# what the wrong-target trap defeats. mk already knows. - -on: - pull_request: - push: - branches: [master] - -permissions: - contents: read - -jobs: - reproducible: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - - - name: Build native toolchain - run: | - set -e - export ROOT="$PWD" - SYSTARG=Linux OBJTYPE=amd64 ./makemk.sh - export PATH="$ROOT/Linux/amd64/bin:$PATH" - for d in lib9 libbio libmp libsec libmath utils/iyacc limbo; do - (cd "$d" && mk install) - done - - - name: Verify dis/ is exactly what the source compiles to - run: | - export ROOT="$PWD" - export PATH="$ROOT/Linux/amd64/bin:$PATH" - ./tools/verify-dis-reproducible.sh diff --git a/.gitignore b/.gitignore index 50010caf8..b92efc78d 100644 --- a/.gitignore +++ b/.gitignore @@ -66,7 +66,36 @@ services/httpd/httpd.log !.clusterfuzzlite/Dockerfile # Compiled Limbo bytecode in source tree (build artifacts) -# Note: dis/*.dis (runtime files) are TRACKED, matching upstream Inferno OS +# Compiled Dis bytecode is a BUILD PRODUCT, not source. It is not tracked. +# +# It used to be, inherited from the 2006 upstream drop (46439007c), and the +# tree drifted from the source that produced it: bytecode went stale, modules +# were compiled to paths the build never installs to, sources were deleted +# with their binaries left behind, and 45 modules shipped that no mkfile +# compiled. Releases shipped ~940 files nothing had built from the tagged +# source. +# +# A release still ships a runnable tree -- the packaging job builds it first, +# exactly as it already did for emu/*/o.emu, which was never tracked either. +# +# Rebuild after a pull: for d in appl appl/mpeg appl/veltro tests; do +# (cd $d && mk install); done +# (hooks/post-merge does this for you -- install it with ./hooks/install.sh) +# +# The SET of modules the build must produce IS tracked, as +# tools/dis-manifest.txt, so a module cannot vanish unnoticed. +# +# Only *.dis is ignored: the hand-written Inferno sh scripts that live in +# these trees (acme/dis/Clean, dis/svc/auth, dis/lc, ...) are real sources +# and stay tracked. +dis/**/*.dis +acme/dis/**/*.dis +xenith/dis/**/*.dis +dis/**/*.sbl +# installed by appl/cmd/git/mkfile +dis/cmd/git/log.sh +dis/cmd/git/status.sh +dis/cmd/git/diff.sh /appl/**/*.dis /appl/**/*.sbl # Also exclude tests build artifacts @@ -77,15 +106,8 @@ services/httpd/httpd.log # Root-level build artifacts (stray compiles) /*.dis /*.sbl -# Debug symbols in runtime dis tree -/dis/**/*.sbl -# dis/tests/*.dis is TRACKED (runtime tree ships prebuilt, tests included — -# maintainer ruling 2026-08-21); only this stray lib-tree test artifact is not. -/dis/lib/testing_test.dis # CI/local test output test-output.txt -# Xenith plugin build artifacts (built from appl/xenith/xenith/) -/xenith/dis/ .env # Claude Code local settings @@ -199,9 +221,6 @@ tmp/.veltro/ # running veltro tests under emu); not source. usr/inferno/veltro/ -# Stale build artifacts placed in wrong location (authoritative copies are in dis/) -dis/cmd/luci*.dis -dis/cmd/luci*.sbl # Stray files fprint' @@ -254,7 +273,6 @@ usr/inferno/secstore/*/ lib/veltro/welcome_shown lib/veltro/tour_offered -dis/mermaid_test.dis # Runtime overlay root — populated by emu at boot, never tracked n/local/ @@ -294,10 +312,6 @@ build-android-apk.ndk-x86_64.log # node interop harness artifacts (generated; never commit keys) usr/inferno/keyring/interop-* tmp/interop_pulled_* -dis/interop_node_server.dis -dis/interop_node_client.dis -/dis/tests/stress/ -/dis/tests/bench/ # Local video/image capture from codec testing (kept on disk, never committed) *.m1v diff --git a/AGENTS.md b/AGENTS.md index fee2af9ed..714ed4929 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -30,12 +30,46 @@ Use the platform scripts instead of inventing local build flows. - `./build-linux-amd64.sh headless`: Linux build without SDL3. - `./build-macos-sdl3.sh` or `./build-macos-headless.sh`: macOS builds. - `powershell -ExecutionPolicy Bypass -File build-windows-amd64.ps1`: Windows build. -- `cd appl/cmd && mk install`: rebuild one Limbo subtree and install tracked runtime output into `dis/`. -- `cd tests && mk install && cd ..`: rebuild Limbo tests into the tracked runtime tree. +- `cd appl/cmd && mk install`: rebuild one Limbo subtree into `dis/`. +- `cd tests && mk install && cd ..`: rebuild the Limbo tests into `dis/tests/`. - `./run-tests.sh`: run host and emulator tests. - `./run-tests.sh -h` or `./run-tests.sh -i -v`: run only host tests, or only emulator tests with verbose output. - `./emu//o.emu -r. /tests/runner.dis -v`: run the native Limbo test runner directly when working inside the emulator workflow. +## Compiled bytecode is not in the repository + +`dis/` holds compiled Dis bytecode. **It is a build product and is not +tracked**, exactly like `emu/*/o.emu`. A fresh clone has no runtime until you +build one. Do not commit `.dis` files, and do not treat a missing one as a +bug in the tree. + +**Standard procedure after cloning, pulling, or changing any `.b` or `.m`:** + +```sh +export ROOT=$PWD +export PATH="$ROOT/$SYSHOST/$OBJTYPE/bin:$PATH" # e.g. Linux/arm64/bin +for d in appl appl/mpeg appl/veltro tests; do (cd $d && mk install); done +``` + +`hooks/post-merge` does this automatically after `git pull` — install it once +with `./hooks/install.sh`. Rebuilding the whole tree takes about 20 seconds. + +Those four directories are the complete set: `appl/mpeg` and `appl/veltro` are +**not** in `appl/mkfile`'s `DIRS`, so `cd appl && mk install` alone does not +reach them. This catches people out; use the loop. + +**If a change makes the build produce a different set of modules**, update +`tools/dis-manifest.txt` in the same commit. It lists every module the build +must produce, and `tools/verify-dis-build.sh` (run by CI and by every release +job) fails when one goes missing. Adding a module means adding a target to an +mkfile `TARG` *and* a line to the manifest; removing one means deleting both. +A module that is not in any `TARG` is never compiled — 45 were in that state +and only appeared to work because their bytecode had been committed by hand. + +**Never run `limbo -o ` by hand.** Use `tools/compile-limbo.sh` or +`mk install` from the source directory. Choosing an output path yourself is +how modules end up somewhere no build installs to and no runtime loads from. + ## Coding Style & Naming Conventions Match the surrounding code closely. Limbo (`.b`) is close to Go in structure but should follow existing Inferno idioms, naming, and control-flow style. C uses Plan 9 / Inferno conventions and tabs, not generic modern C house styles. *Host-side* shell scripts (`tests/host/`, `tools/`, `build-*.sh`) stay POSIX `sh` compatible; scripts that run *inside Inferno* (`tests/inferno/`, `lib/sh/`, boot scripts) are rc-style — no `&&`/`||` — see [docs/INFERNO-SHELL.md](docs/INFERNO-SHELL.md). Name new emulator tests `*_test.b`, host tests `*_test.sh`, and keep module interfaces in `module/` aligned with their implementation names. @@ -44,7 +78,7 @@ Use Inferno `mk`, not GNU make, for subtree builds. In `mkfile`s, do not chain c ## Testing Guidelines -Behavior changes should include tests. Prefer the repository’s Limbo test setup instead of ad hoc harnesses: build tests with `mk install`, then run them through `tests/runner.dis` or `./run-tests.sh`. Host integration checks belong in `tests/host/`. If a change regenerates runtime `.dis` files under `dis/`, make sure they result from `mk install` in the corresponding source directory rather than manual edits. +Behavior changes should include tests. Prefer the repository’s Limbo test setup instead of ad hoc harnesses: build tests with `mk install`, then run them through `tests/runner.dis` or `./run-tests.sh`. Host integration checks belong in `tests/host/`. `.dis` files are never committed; if a change adds or removes a module, update `tools/dis-manifest.txt` to match (see above). ## Security Review Priorities @@ -60,4 +94,4 @@ When proposing fixes, prefer namespace, mount, process-group, file-permission, a Recent history uses scoped, imperative subjects such as `fix(theme): ...`, `build: ...`, and `test: ...`. Keep the first line under 72 characters, explain why in the body when needed, and reference issue IDs like `INFR-28` when relevant. PRs should stay focused, describe the motivation, include test coverage, update docs for interface changes, and include screenshots for UI work in Lucia/Xenith. -Know what CI will check before you push: `verify-dis-paths` (every source's declared `.dis` exists and is fresh — the wrong-target trap), `verify-sh-exec` (Inferno-side test scripts committed mode 755), the ring-fence job (`tests/agent-harness/` material must never appear elsewhere), the advisory style gate (rc-violations, JSON inside `appl/`, new file interfaces with no linked proposal issue), plus builds, the test suites, CodeQL, and nsaudit fixture checks. The PR template's design-principles checklist is expected to be filled honestly. +Know what CI will check before you push: `verify-dis-build` (the tree builds and produces every module `tools/dis-manifest.txt` lists), `verify-sh-exec` (Inferno-side test scripts committed mode 755), the ring-fence job (`tests/agent-harness/` material must never appear elsewhere), the advisory style gate (rc-violations, JSON inside `appl/`, new file interfaces with no linked proposal issue), plus builds, the test suites, CodeQL, and nsaudit fixture checks. The PR template's design-principles checklist is expected to be filled honestly. diff --git a/CLAUDE.md b/CLAUDE.md index 090a86ce5..915e0e631 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -47,19 +47,40 @@ The native tools are built to: - `MacOSX/arm64/bin/mk` - Plan 9 mk (Inferno's build tool) - `MacOSX/arm64/bin/limbo` - Limbo compiler -### Dis Files: What's Tracked and What's Not +### Dis Files: A Build Product -The `dis/` directory (the Inferno runtime tree) **is tracked in git**. This is intentional, but not for the reason this file used to give. It is tracked so a downloaded release runs without the user building anything, and because upstream Inferno tracked it (commit `46439007c`, the 2006 Fourth Edition drop, is still in this history). +The `dis/` directory holds compiled Dis bytecode. **It is a build product and +is not tracked in git**, exactly like `emu/*/o.emu`. A fresh clone has no +runtime until you build one — and it has no emulator either, so you were +building regardless. -It is *not* a bootstrap requirement. `mk` and `limbo` are C programs, and `emu/*/o.emu` is gitignored, so a fresh clone can run nothing until you build the toolchain and emulator anyway. Rebuilding all ~940 `.dis` from source after that takes about 20 seconds. +It used to be tracked, inherited from the 2006 upstream drop (`46439007c`, +still in this history). The cost was a tree free to drift from the source that +produced it: bytecode went stale (`dis/acme.dis` shipped font paths the source +had abandoned five months earlier), modules were compiled to paths the build +never installs to, sources were deleted with their binaries left behind, and 45 +modules shipped that no mkfile ever compiled. Releases carried ~940 files that +nothing had built from the tagged source. -**The tracked tree must equal what the source compiles to.** `tools/verify-dis-reproducible.sh` rebuilds it and requires a byte-identical result; CI runs it on every PR and every release. limbo output is deterministic and records source paths relative to `$ROOT`, so this holds across machines and architectures — provided you build from the repository root. If you change a `.b`, commit the rebuilt `.dis` with it. +Releases still ship a runnable tree: the packaging job builds it before +staging, which is how `o.emu` has always worked. -However, **build artifacts in source directories are not tracked**: -- `appl/**/*.dis` — intermediate build outputs (`.gitignore`d) -- `tests/**/*.dis` — compiled tests (`.gitignore`d) +**Rebuild after cloning, pulling, or editing any `.b` or `.m`:** -This means: the runtime tree ships pre-built — including `dis/tests/`, whose test bytecode is tracked and updated via `mk install` like the rest of `dis/` — but you never commit `.dis` files from the `appl/` or `tests/` source directories. +```sh +export ROOT=$PWD +export PATH="$ROOT/$SYSHOST/$OBJTYPE/bin:$PATH" +for d in appl appl/mpeg appl/veltro tests; do (cd $d && mk install); done +``` + +Takes about 20 seconds. `hooks/post-merge` does it for you after `git pull` +(`./hooks/install.sh` once). All four directories are needed: `appl/mpeg` and +`appl/veltro` are not in `appl/mkfile`'s `DIRS`. + +**The set of modules the build must produce is tracked**, as +`tools/dis-manifest.txt`. `tools/verify-dis-build.sh` builds the tree and fails +if anything on that list is missing; CI and every release job run it. Add or +remove a module and you update the manifest in the same commit. **The stale bytecode problem:** When a `.m` interface file changes (e.g. `module/widget.m`), every `.dis` compiled against the old interface becomes stale. The Dis VM rejects stale modules at load time with `link typecheck` errors — apps show blank tabs, commands fail to load, and everything looks broken even though the source is fine. This is the most common class of post-pull breakage. @@ -71,15 +92,31 @@ This means: the runtime tree ships pre-built — including `dis/tests/`, whose t After that, every `git pull` triggers an automatic rebuild of stale bytecode. See `hooks/post-merge` for details. -**The wrong-target trap (READ THIS BEFORE COMPILING ANYTHING).** A separate class of stale-bytecode bug: a module declares `PATH: con "/dis/foo.dis";` so the runtime loads `dis/foo.dis`. The mkfile installs to `dis/foo.dis`. But there is *also* an `appl/cmd/foo.dis` (intermediate) and there used to be a parallel `dis/cmd/foo.dis` tree. If you manually compile with `limbo -o dis/cmd/foo.dis ...` (or any path that is NOT what the module's PATH constant declares), `emu` cheerfully keeps loading the old `dis/foo.dis` while your "fix" silently lands in a directory it never reads from. This has burned multiple debug sessions. The defences: +**The wrong-target trap (READ THIS BEFORE COMPILING ANYTHING).** A module +declares `PATH: con "/dis/foo.dis";` so the runtime loads `dis/foo.dis`, and its +mkfile installs there. If you hand-compile with `limbo -o dis/cmd/foo.dis ...` +— any path that is not what the build installs to — `emu` keeps loading the old +`dis/foo.dis` while your "fix" lands in a directory it never reads from. This +burned multiple debug sessions, and `dis/cmd/` accumulated seven stale +duplicates that way before it was cleaned out. -- **Never run `limbo -o ...` directly.** Use one of: - - `tools/compile-limbo.sh ` — reads the module's `PATH` constant and emits to that exact location. No `-o` to get wrong. - - `mk install` from the appropriate `appl//` — also installs to the canonical path (`DISBIN=$ROOT/dis`). -- **Pre-commit hook** (installed by `./hooks/install.sh`) runs `tools/verify-dis-paths.sh`, which refuses any commit where a source's `dis/.dis` is missing or older than the source. -- **CI** (`.github/workflows/verify-dis-paths.yml`) runs the same verifier on every PR — universal backstop for contributors who didn't install the local hook. +Untracking `dis/` removes most of this: you can no longer commit bytecode, so a +wrongly-placed file is a local mess rather than something that ships. What +remains is that your own tree can lie to you for an afternoon. The defences: -If you see "my fix isn't taking effect" symptoms (the bug looks the same after recompile, diagnostic prints don't appear in logs), check `tools/verify-dis-paths.sh` immediately before chasing anything else. +- **Never run `limbo -o ...` directly.** Use one of: + - `tools/compile-limbo.sh ` — reads the module's `PATH` constant and + emits to that exact location. No `-o` to get wrong. + - `mk install` from the appropriate source directory — installs to the + canonical path the mkfile's `DISBIN` names. +- **`tools/verify-dis-build.sh`** builds the tree and checks it against + `tools/dis-manifest.txt`. A module that no mkfile compiles shows up as + missing. CI and every release job run it. + +If you see "my fix isn't taking effect" symptoms — the bug looks identical after +a recompile, diagnostic prints never appear — you almost certainly compiled to a +path nothing loads. Rebuild properly with the loop above before chasing anything +else. ### Build Commands @@ -396,7 +433,7 @@ infernode/ │ ├── inferno/ # Inferno-side shell tests │ ├── testing/ # Testing framework self-tests │ └── agent-harness/ # Ring-fenced eval-harness gateway (see Ring-fence rule) -├── dis/ # Compiled Dis bytecode (~630 .dis files) +├── dis/ # Compiled Dis bytecode (build product, NOT tracked) ├── lib/ # Runtime data (fonts, shell profile, etc.) │ └── veltro/ # Veltro tools, agents, reminders ├── libinterp/ # Dis VM interpreter and JIT compilers diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a74d16de9..8225f9126 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -241,7 +241,9 @@ InferNode uses Plan 9's `mk` (not GNU make). Important points: - Use InferNode's **native build tools** (`mk`, `limbo`), not Plan 9 Port - Build from your host OS terminal, not inside the Inferno emulator - `mkfile` in each directory defines build rules -- `mk install` compiles and copies output to `dis/` +- `mk install` compiles and copies output to `dis/`, which is a build product and is **not** tracked; + rebuild with `for d in appl appl/mpeg appl/veltro tests; do (cd $d && mk install); done` +- Never commit `.dis` files. If a change adds or removes a module, update `tools/dis-manifest.txt` in the same commit - `mk nuke` cleans build artifacts - Don't use `&&` to chain commands in mkfiles — use `;` or separate rules diff --git a/QUICKSTART.md b/QUICKSTART.md index 9731bacd0..ca72a2789 100644 --- a/QUICKSTART.md +++ b/QUICKSTART.md @@ -71,11 +71,25 @@ This hook runs automatically after every `git pull` or `git merge`. It detects w ### Why are `.dis` files in git? -Inferno is a self-hosting OS — the `dis/` directory is its runtime, like `/usr/bin` on Unix. The runtime tree (`dis/`) is tracked so that a downloaded release runs without building anything, and so a checkout is runnable the moment the emulator is built. +Inferno is a self-hosting OS and the `dis/` directory is its runtime, like +`/usr/bin` on Unix. It holds compiled bytecode, so it is a **build product and +is not tracked in git** — the same as the emulator binary. A fresh clone has +neither, which is why the build step below is not optional. -It is not a bootstrap requirement: `mk` and `limbo` are C programs, and `emu/*/o.emu` is not tracked at all, so a fresh clone must build the toolchain and the emulator regardless. Rebuilding the whole runtime tree from source afterwards takes about 20 seconds. What tracking buys is the release, not the clone. +Rebuild the runtime whenever you clone, pull, or edit a `.b` or `.m`: -Because it is tracked, `dis/` can drift from the source that produced it. CI rebuilds the tree on every pull request and requires the result to be byte-identical to what is committed (`tools/verify-dis-reproducible.sh`) — so if you change a `.b`, commit the rebuilt `.dis` with it. +```sh +export ROOT=$PWD +export PATH="$ROOT/$SYSHOST/$OBJTYPE/bin:$PATH" # e.g. Linux/arm64/bin +for d in appl appl/mpeg appl/veltro tests; do (cd $d && mk install); done +``` + +That takes about 20 seconds. Installing the git hooks (`./hooks/install.sh`) +makes `git pull` do it for you. All four directories matter: `appl/mpeg` and +`appl/veltro` are not reached by `cd appl && mk install` on its own. + +A downloaded **release** already contains a built runtime — the packaging job +builds it before staging, so nothing is required of you there. Build artifacts in source directories (`appl/**/*.dis`, `tests/**/*.dis`) are **not** tracked — only the runtime tree. diff --git a/acme/dis/Calendar.dis b/acme/dis/Calendar.dis deleted file mode 100644 index e863cf7f1..000000000 Binary files a/acme/dis/Calendar.dis and /dev/null differ diff --git a/acme/dis/Chat.dis b/acme/dis/Chat.dis deleted file mode 100644 index 282451e99..000000000 Binary files a/acme/dis/Chat.dis and /dev/null differ diff --git a/acme/dis/Ctag.dis b/acme/dis/Ctag.dis deleted file mode 100644 index e8199f865..000000000 Binary files a/acme/dis/Ctag.dis and /dev/null differ diff --git a/acme/dis/Feedkey.dis b/acme/dis/Feedkey.dis deleted file mode 100644 index 66ab47ce2..000000000 Binary files a/acme/dis/Feedkey.dis and /dev/null differ diff --git a/acme/dis/Jwin.dis b/acme/dis/Jwin.dis deleted file mode 100644 index 70801e121..000000000 Binary files a/acme/dis/Jwin.dis and /dev/null differ diff --git a/acme/dis/Mail.dis b/acme/dis/Mail.dis deleted file mode 100644 index fd0c11d00..000000000 Binary files a/acme/dis/Mail.dis and /dev/null differ diff --git a/acme/dis/Mailpop3.dis b/acme/dis/Mailpop3.dis deleted file mode 100644 index 9d0471617..000000000 Binary files a/acme/dis/Mailpop3.dis and /dev/null differ diff --git a/acme/dis/Navigator.dis b/acme/dis/Navigator.dis deleted file mode 100644 index 6ac281358..000000000 Binary files a/acme/dis/Navigator.dis and /dev/null differ diff --git a/acme/dis/Prompt.dis b/acme/dis/Prompt.dis deleted file mode 100644 index 38b5f2d83..000000000 Binary files a/acme/dis/Prompt.dis and /dev/null differ diff --git a/acme/dis/Sql.dis b/acme/dis/Sql.dis deleted file mode 100644 index f1ee90ed8..000000000 Binary files a/acme/dis/Sql.dis and /dev/null differ diff --git a/acme/dis/Wiki.dis b/acme/dis/Wiki.dis deleted file mode 100644 index bef0a9119..000000000 Binary files a/acme/dis/Wiki.dis and /dev/null differ diff --git a/acme/dis/adeb.dis b/acme/dis/adeb.dis deleted file mode 100644 index eadfdd1e0..000000000 Binary files a/acme/dis/adeb.dis and /dev/null differ diff --git a/acme/dis/adict.dis b/acme/dis/adict.dis deleted file mode 100644 index 2c317f6b6..000000000 Binary files a/acme/dis/adict.dis and /dev/null differ diff --git a/acme/dis/adiff.dis b/acme/dis/adiff.dis deleted file mode 100644 index 08f22381a..000000000 Binary files a/acme/dis/adiff.dis and /dev/null differ diff --git a/acme/dis/agrep.dis b/acme/dis/agrep.dis deleted file mode 100644 index 315999cdb..000000000 Binary files a/acme/dis/agrep.dis and /dev/null differ diff --git a/acme/dis/airc.dis b/acme/dis/airc.dis deleted file mode 100644 index ba3dccac4..000000000 Binary files a/acme/dis/airc.dis and /dev/null differ diff --git a/acme/dis/awd.dis b/acme/dis/awd.dis deleted file mode 100644 index 9fb735702..000000000 Binary files a/acme/dis/awd.dis and /dev/null differ diff --git a/acme/dis/cd.dis b/acme/dis/cd.dis deleted file mode 100644 index db3ef3df4..000000000 Binary files a/acme/dis/cd.dis and /dev/null differ diff --git a/acme/dis/irc.dis b/acme/dis/irc.dis deleted file mode 100644 index c77d5272b..000000000 Binary files a/acme/dis/irc.dis and /dev/null differ diff --git a/acme/dis/mkbox.dis b/acme/dis/mkbox.dis deleted file mode 100644 index 5051c0d8d..000000000 Binary files a/acme/dis/mkbox.dis and /dev/null differ diff --git a/acme/dis/rect.dis b/acme/dis/rect.dis deleted file mode 100644 index 143fe1593..000000000 Binary files a/acme/dis/rect.dis and /dev/null differ diff --git a/acme/dis/spout.dis b/acme/dis/spout.dis deleted file mode 100644 index 55dfbf0ad..000000000 Binary files a/acme/dis/spout.dis and /dev/null differ diff --git a/acme/dis/win.dis b/acme/dis/win.dis deleted file mode 100644 index 49082f00f..000000000 Binary files a/acme/dis/win.dis and /dev/null differ diff --git a/acme/dis/winm.dis b/acme/dis/winm.dis deleted file mode 100644 index dc5debf0d..000000000 Binary files a/acme/dis/winm.dis and /dev/null differ diff --git a/appl/acme/mkfile b/appl/acme/mkfile index f9b075ce2..c861870c6 100644 --- a/appl/acme/mkfile +++ b/appl/acme/mkfile @@ -83,7 +83,9 @@ all:V: acme.dis install:V: $ROOT/dis/acme.dis $ROOT/dis/acme.dis: acme.dis - rm -f $target && cp acme.dis $target + mkdir -p $ROOT/dis + rm -f $target + cp acme.dis $target acme.dis: $MODULES $SYS_MODULE diff --git a/appl/charon/mkfile b/appl/charon/mkfile index 47cdf3930..46ada9195 100644 --- a/appl/charon/mkfile +++ b/appl/charon/mkfile @@ -81,10 +81,14 @@ all:V: charon.dis install:V: $ROOT/dis/charon.dis $ROOT/dis/wm/charon.dis $ROOT/dis/charon.dis: charon.dis - rm -f $target && cp charon.dis $target + mkdir -p $ROOT/dis + rm -f $target + cp charon.dis $target $ROOT/dis/wm/charon.dis: charon.dis - rm -f $target && cp charon.dis $target + mkdir -p $ROOT/dis/wm + rm -f $target + cp charon.dis $target charon.dis: $MODULES $SYS_MODULE diff --git a/appl/cmd/dict/mkfile b/appl/cmd/dict/mkfile index 903e4f181..414006663 100644 --- a/appl/cmd/dict/mkfile +++ b/appl/cmd/dict/mkfile @@ -29,13 +29,19 @@ install:V: $BINTARG $ROOT/dis/dict.dis $ROOT/acme/dis/adict.dis %.installall:V: $DISBIN/% $ROOT/dis/dict.dis: dict.dis - rm -f $target && cp dict.dis $target + mkdir -p $ROOT/dis + rm -f $target + cp dict.dis $target $ROOT/acme/dis/adict.dis: adict.dis - rm -f $target && cp adict.dis $target + mkdir -p $ROOT/acme/dis + rm -f $target + cp adict.dis $target $DISBIN/%: %.sh - cp $stem.sh $target && chmod a+rx $target + mkdir -p $DISBIN + cp $stem.sh $target + chmod a+rx $target nuke:V: rm -f $ROOT/dis/dict.dis diff --git a/appl/cmd/git/mkfile b/appl/cmd/git/mkfile index 35bb2ed1b..bdfccd856 100644 --- a/appl/cmd/git/mkfile +++ b/appl/cmd/git/mkfile @@ -34,6 +34,7 @@ DISBIN=$ROOT/dis/cmd/git <$ROOT/mkfiles/mkdis installsh:V: + mkdir -p $DISBIN cp log.sh $DISBIN/log.sh cp status.sh $DISBIN/status.sh cp diff.sh $DISBIN/diff.sh diff --git a/appl/cmd/sh/mkfile b/appl/cmd/sh/mkfile index 1ea656e1c..5c6fe7d71 100644 --- a/appl/cmd/sh/mkfile +++ b/appl/cmd/sh/mkfile @@ -55,6 +55,8 @@ uninstall:V: rm -f $INS $ROOT/dis/sh.dis: sh.dis - rm -f $ROOT/dis/sh.dis && cp sh.dis $ROOT/dis/sh.dis + mkdir -p $ROOT/dis + rm -f $ROOT/dis/sh.dis + cp sh.dis $ROOT/dis/sh.dis %.dis: ${SYSMODULES:%=$MODDIR/%} diff --git a/appl/cmd/wikifs/mkfile b/appl/cmd/wikifs/mkfile index 65f7d20d4..221b3e29e 100644 --- a/appl/cmd/wikifs/mkfile +++ b/appl/cmd/wikifs/mkfile @@ -22,4 +22,6 @@ install:V: $BINTARG %.installall:V: $DISBIN/% $DISBIN/%: %.sh - cp $stem.sh $target && chmod a+rx $target + mkdir -p $DISBIN + cp $stem.sh $target + chmod a+rx $target diff --git a/appl/lib/mkfile b/appl/lib/mkfile index 7d01699ed..5217e8d2f 100644 --- a/appl/lib/mkfile +++ b/appl/lib/mkfile @@ -313,8 +313,12 @@ DISBIN=$ROOT/dis/lib <$ROOT/mkfiles/mksubdirs $DISBIN/arg.dis: arg.dis - rm -f $DISBIN/arg.dis && cat arg.dis > $DISBIN/arg.dis + mkdir -p $DISBIN + rm -f $DISBIN/arg.dis + cat arg.dis > $DISBIN/arg.dis $DISBIN/readdir.dis: readdir.dis - rm -f $DISBIN/readdir.dis && cat readdir.dis > $DISBIN/readdir.dis + mkdir -p $DISBIN + rm -f $DISBIN/readdir.dis + cat readdir.dis > $DISBIN/readdir.dis diff --git a/appl/svc/mkfile b/appl/svc/mkfile index ee411d3ee..acec9e6e0 100644 --- a/appl/svc/mkfile +++ b/appl/svc/mkfile @@ -21,4 +21,6 @@ install:V: $SHFILES %.installall:V: $BIN/% $BIN/%: %.sh - cp $stem.sh $target && chmod a+rx $target + mkdir -p $BIN + cp $stem.sh $target + chmod a+rx $target diff --git a/appl/xenith/mkfile b/appl/xenith/mkfile index 1fa792ea8..1e3c46a3e 100644 --- a/appl/xenith/mkfile +++ b/appl/xenith/mkfile @@ -97,7 +97,9 @@ all:V: xenith.dis install:V: $ROOT/dis/xenith.dis $ROOT/dis/xenith.dis: xenith.dis - rm -f $target && cp xenith.dis $target + mkdir -p $ROOT/dis + rm -f $target + cp xenith.dis $target xenith.dis: $MODULES $SYS_MODULE diff --git a/dis/2fa.dis b/dis/2fa.dis deleted file mode 100644 index 5542fab53..000000000 Binary files a/dis/2fa.dis and /dev/null differ diff --git a/dis/9660srv.dis b/dis/9660srv.dis deleted file mode 100644 index 75498a9be..000000000 Binary files a/dis/9660srv.dis and /dev/null differ diff --git a/dis/9cpu.dis b/dis/9cpu.dis deleted file mode 100644 index f3859640f..000000000 Binary files a/dis/9cpu.dis and /dev/null differ diff --git a/dis/9export.dis b/dis/9export.dis deleted file mode 100644 index 6cf80fc0a..000000000 Binary files a/dis/9export.dis and /dev/null differ diff --git a/dis/9win.dis b/dis/9win.dis deleted file mode 100644 index f458a0f7f..000000000 Binary files a/dis/9win.dis and /dev/null differ diff --git a/dis/acme.dis b/dis/acme.dis deleted file mode 100644 index 5fbd3ad54..000000000 Binary files a/dis/acme.dis and /dev/null differ diff --git a/dis/acme/acme.dis b/dis/acme/acme.dis deleted file mode 100644 index 5fbd3ad54..000000000 Binary files a/dis/acme/acme.dis and /dev/null differ diff --git a/dis/acme/buff.dis b/dis/acme/buff.dis deleted file mode 100644 index 32f711d1f..000000000 Binary files a/dis/acme/buff.dis and /dev/null differ diff --git a/dis/acme/col.dis b/dis/acme/col.dis deleted file mode 100644 index ac71567f0..000000000 Binary files a/dis/acme/col.dis and /dev/null differ diff --git a/dis/acme/dat.dis b/dis/acme/dat.dis deleted file mode 100644 index 7c47e6bd9..000000000 Binary files a/dis/acme/dat.dis and /dev/null differ diff --git a/dis/acme/disk.dis b/dis/acme/disk.dis deleted file mode 100644 index 870a419e2..000000000 Binary files a/dis/acme/disk.dis and /dev/null differ diff --git a/dis/acme/ecmd.dis b/dis/acme/ecmd.dis deleted file mode 100644 index 19743885f..000000000 Binary files a/dis/acme/ecmd.dis and /dev/null differ diff --git a/dis/acme/edit.dis b/dis/acme/edit.dis deleted file mode 100644 index 60593695e..000000000 Binary files a/dis/acme/edit.dis and /dev/null differ diff --git a/dis/acme/elog.dis b/dis/acme/elog.dis deleted file mode 100644 index 354279599..000000000 Binary files a/dis/acme/elog.dis and /dev/null differ diff --git a/dis/acme/exec.dis b/dis/acme/exec.dis deleted file mode 100644 index 9fed4e819..000000000 Binary files a/dis/acme/exec.dis and /dev/null differ diff --git a/dis/acme/file.dis b/dis/acme/file.dis deleted file mode 100644 index 65dbfc37c..000000000 Binary files a/dis/acme/file.dis and /dev/null differ diff --git a/dis/acme/frame.dis b/dis/acme/frame.dis deleted file mode 100644 index 635a6b6ac..000000000 Binary files a/dis/acme/frame.dis and /dev/null differ diff --git a/dis/acme/fsys.dis b/dis/acme/fsys.dis deleted file mode 100644 index a366079ce..000000000 Binary files a/dis/acme/fsys.dis and /dev/null differ diff --git a/dis/acme/graph.dis b/dis/acme/graph.dis deleted file mode 100644 index 9ca6dbbc3..000000000 Binary files a/dis/acme/graph.dis and /dev/null differ diff --git a/dis/acme/gui.dis b/dis/acme/gui.dis deleted file mode 100644 index eff36834a..000000000 Binary files a/dis/acme/gui.dis and /dev/null differ diff --git a/dis/acme/look.dis b/dis/acme/look.dis deleted file mode 100644 index 288503a85..000000000 Binary files a/dis/acme/look.dis and /dev/null differ diff --git a/dis/acme/regx.dis b/dis/acme/regx.dis deleted file mode 100644 index f938a1d1a..000000000 Binary files a/dis/acme/regx.dis and /dev/null differ diff --git a/dis/acme/row.dis b/dis/acme/row.dis deleted file mode 100644 index f2bad6397..000000000 Binary files a/dis/acme/row.dis and /dev/null differ diff --git a/dis/acme/scrl.dis b/dis/acme/scrl.dis deleted file mode 100644 index be753a1f2..000000000 Binary files a/dis/acme/scrl.dis and /dev/null differ diff --git a/dis/acme/styxaux.dis b/dis/acme/styxaux.dis deleted file mode 100644 index 7da0817f4..000000000 Binary files a/dis/acme/styxaux.dis and /dev/null differ diff --git a/dis/acme/text.dis b/dis/acme/text.dis deleted file mode 100644 index b5f1f5723..000000000 Binary files a/dis/acme/text.dis and /dev/null differ diff --git a/dis/acme/time.dis b/dis/acme/time.dis deleted file mode 100644 index 5b5189ca6..000000000 Binary files a/dis/acme/time.dis and /dev/null differ diff --git a/dis/acme/util.dis b/dis/acme/util.dis deleted file mode 100644 index 88de9ba44..000000000 Binary files a/dis/acme/util.dis and /dev/null differ diff --git a/dis/acme/wind.dis b/dis/acme/wind.dis deleted file mode 100644 index c17ec36cc..000000000 Binary files a/dis/acme/wind.dis and /dev/null differ diff --git a/dis/acme/xfid.dis b/dis/acme/xfid.dis deleted file mode 100644 index 90d4e3b62..000000000 Binary files a/dis/acme/xfid.dis and /dev/null differ diff --git a/dis/acmeevent.dis b/dis/acmeevent.dis deleted file mode 100644 index ffbeeb32c..000000000 Binary files a/dis/acmeevent.dis and /dev/null differ diff --git a/dis/ar.dis b/dis/ar.dis deleted file mode 100644 index c7a1b2ae5..000000000 Binary files a/dis/ar.dis and /dev/null differ diff --git a/dis/archfs.dis b/dis/archfs.dis deleted file mode 100644 index 683c07407..000000000 Binary files a/dis/archfs.dis and /dev/null differ diff --git a/dis/audiotone.dis b/dis/audiotone.dis deleted file mode 100644 index 6aae9d625..000000000 Binary files a/dis/audiotone.dis and /dev/null differ diff --git a/dis/auditfs.dis b/dis/auditfs.dis deleted file mode 100644 index e66e3b78d..000000000 Binary files a/dis/auditfs.dis and /dev/null differ diff --git a/dis/auditget.dis b/dis/auditget.dis deleted file mode 100644 index 5adbf2e7c..000000000 Binary files a/dis/auditget.dis and /dev/null differ diff --git a/dis/auditverify.dis b/dis/auditverify.dis deleted file mode 100644 index 486009cde..000000000 Binary files a/dis/auditverify.dis and /dev/null differ diff --git a/dis/auplay.dis b/dis/auplay.dis deleted file mode 100644 index 257e7bd47..000000000 Binary files a/dis/auplay.dis and /dev/null differ diff --git a/dis/auth/aescbc.dis b/dis/auth/aescbc.dis deleted file mode 100644 index f718b170f..000000000 Binary files a/dis/auth/aescbc.dis and /dev/null differ diff --git a/dis/auth/ai2key.dis b/dis/auth/ai2key.dis deleted file mode 100644 index 3dbce80dc..000000000 Binary files a/dis/auth/ai2key.dis and /dev/null differ diff --git a/dis/auth/changelogin.dis b/dis/auth/changelogin.dis deleted file mode 100644 index d1d56a3bc..000000000 Binary files a/dis/auth/changelogin.dis and /dev/null differ diff --git a/dis/auth/convpasswd.dis b/dis/auth/convpasswd.dis deleted file mode 100644 index 2f8f68464..000000000 Binary files a/dis/auth/convpasswd.dis and /dev/null differ diff --git a/dis/auth/countersigner.dis b/dis/auth/countersigner.dis deleted file mode 100644 index 68415a762..000000000 Binary files a/dis/auth/countersigner.dis and /dev/null differ diff --git a/dis/auth/createsignerkey.dis b/dis/auth/createsignerkey.dis deleted file mode 100644 index e677a7c8f..000000000 Binary files a/dis/auth/createsignerkey.dis and /dev/null differ diff --git a/dis/auth/createuser.dis b/dis/auth/createuser.dis deleted file mode 100644 index c2d27aea9..000000000 Binary files a/dis/auth/createuser.dis and /dev/null differ diff --git a/dis/auth/dsagen.dis b/dis/auth/dsagen.dis deleted file mode 100644 index 55098f978..000000000 Binary files a/dis/auth/dsagen.dis and /dev/null differ diff --git a/dis/auth/factotum.dis b/dis/auth/factotum.dis deleted file mode 100644 index 7e1cef895..000000000 Binary files a/dis/auth/factotum.dis and /dev/null differ diff --git a/dis/auth/getpk.dis b/dis/auth/getpk.dis deleted file mode 100644 index 053f00109..000000000 Binary files a/dis/auth/getpk.dis and /dev/null differ diff --git a/dis/auth/keyfs.dis b/dis/auth/keyfs.dis deleted file mode 100644 index 60378c706..000000000 Binary files a/dis/auth/keyfs.dis and /dev/null differ diff --git a/dis/auth/keysrv.dis b/dis/auth/keysrv.dis deleted file mode 100644 index 4a46b700f..000000000 Binary files a/dis/auth/keysrv.dis and /dev/null differ diff --git a/dis/auth/logind.dis b/dis/auth/logind.dis deleted file mode 100644 index 7dd5dd55a..000000000 Binary files a/dis/auth/logind.dis and /dev/null differ diff --git a/dis/auth/mkauthinfo.dis b/dis/auth/mkauthinfo.dis deleted file mode 100644 index 4ebcc5e54..000000000 Binary files a/dis/auth/mkauthinfo.dis and /dev/null differ diff --git a/dis/auth/passwd.dis b/dis/auth/passwd.dis deleted file mode 100644 index 74ddace7a..000000000 Binary files a/dis/auth/passwd.dis and /dev/null differ diff --git a/dis/auth/proto/infauth.dis b/dis/auth/proto/infauth.dis deleted file mode 100644 index 45bef8744..000000000 Binary files a/dis/auth/proto/infauth.dis and /dev/null differ diff --git a/dis/auth/proto/p9any.dis b/dis/auth/proto/p9any.dis deleted file mode 100644 index 860d0c759..000000000 Binary files a/dis/auth/proto/p9any.dis and /dev/null differ diff --git a/dis/auth/proto/pass.dis b/dis/auth/proto/pass.dis deleted file mode 100644 index 73e22eb72..000000000 Binary files a/dis/auth/proto/pass.dis and /dev/null differ diff --git a/dis/auth/proto/sign.dis b/dis/auth/proto/sign.dis deleted file mode 100644 index d1746837b..000000000 Binary files a/dis/auth/proto/sign.dis and /dev/null differ diff --git a/dis/auth/rpc.dis b/dis/auth/rpc.dis deleted file mode 100644 index 1fb51fbbe..000000000 Binary files a/dis/auth/rpc.dis and /dev/null differ diff --git a/dis/auth/rsagen.dis b/dis/auth/rsagen.dis deleted file mode 100644 index 264e6a711..000000000 Binary files a/dis/auth/rsagen.dis and /dev/null differ diff --git a/dis/auth/secstore-setup.dis b/dis/auth/secstore-setup.dis deleted file mode 100644 index 046afef96..000000000 Binary files a/dis/auth/secstore-setup.dis and /dev/null differ diff --git a/dis/auth/secstore.dis b/dis/auth/secstore.dis deleted file mode 100644 index 0ddc76872..000000000 Binary files a/dis/auth/secstore.dis and /dev/null differ diff --git a/dis/auth/secstored.dis b/dis/auth/secstored.dis deleted file mode 100644 index 9675822a1..000000000 Binary files a/dis/auth/secstored.dis and /dev/null differ diff --git a/dis/auth/signer.dis b/dis/auth/signer.dis deleted file mode 100644 index ba61a060e..000000000 Binary files a/dis/auth/signer.dis and /dev/null differ diff --git a/dis/auth/verify.dis b/dis/auth/verify.dis deleted file mode 100644 index 2a86126ba..000000000 Binary files a/dis/auth/verify.dis and /dev/null differ diff --git a/dis/auxi/cpuslave.dis b/dis/auxi/cpuslave.dis deleted file mode 100644 index 2d1e76965..000000000 Binary files a/dis/auxi/cpuslave.dis and /dev/null differ diff --git a/dis/auxi/rdbgsrv.dis b/dis/auxi/rdbgsrv.dis deleted file mode 100644 index 3cc445e2f..000000000 Binary files a/dis/auxi/rdbgsrv.dis and /dev/null differ diff --git a/dis/auxi/rstyxd.dis b/dis/auxi/rstyxd.dis deleted file mode 100644 index 8dc6bedd9..000000000 Binary files a/dis/auxi/rstyxd.dis and /dev/null differ diff --git a/dis/awk.dis b/dis/awk.dis deleted file mode 100644 index bfbb84b3d..000000000 Binary files a/dis/awk.dis and /dev/null differ diff --git a/dis/basename.dis b/dis/basename.dis deleted file mode 100644 index 8910e70b8..000000000 Binary files a/dis/basename.dis and /dev/null differ diff --git a/dis/bdf2subfont.dis b/dis/bdf2subfont.dis deleted file mode 100644 index 2bb3c5a56..000000000 Binary files a/dis/bdf2subfont.dis and /dev/null differ diff --git a/dis/bind.dis b/dis/bind.dis deleted file mode 100644 index dda06f508..000000000 Binary files a/dis/bind.dis and /dev/null differ diff --git a/dis/bioget.dis b/dis/bioget.dis deleted file mode 100644 index 203734954..000000000 Binary files a/dis/bioget.dis and /dev/null differ diff --git a/dis/bit2gif.dis b/dis/bit2gif.dis deleted file mode 100644 index 0109778f6..000000000 Binary files a/dis/bit2gif.dis and /dev/null differ diff --git a/dis/broke.dis b/dis/broke.dis deleted file mode 100644 index e023d15d7..000000000 Binary files a/dis/broke.dis and /dev/null differ diff --git a/dis/bytes.dis b/dis/bytes.dis deleted file mode 100644 index dc6ff10bb..000000000 Binary files a/dis/bytes.dis and /dev/null differ diff --git a/dis/cal.dis b/dis/cal.dis deleted file mode 100644 index 2e49b17e2..000000000 Binary files a/dis/cal.dis and /dev/null differ diff --git a/dis/calc.dis b/dis/calc.dis deleted file mode 100644 index 8a928a2b6..000000000 Binary files a/dis/calc.dis and /dev/null differ diff --git a/dis/calendar9p.dis b/dis/calendar9p.dis deleted file mode 100644 index 1b57b17db..000000000 Binary files a/dis/calendar9p.dis and /dev/null differ diff --git a/dis/cat.dis b/dis/cat.dis deleted file mode 100644 index 799543da3..000000000 Binary files a/dis/cat.dis and /dev/null differ diff --git a/dis/cd.dis b/dis/cd.dis deleted file mode 100644 index f294e825b..000000000 Binary files a/dis/cd.dis and /dev/null differ diff --git a/dis/cddb.dis b/dis/cddb.dis deleted file mode 100644 index 81af8b2a0..000000000 Binary files a/dis/cddb.dis and /dev/null differ diff --git a/dis/charon.dis b/dis/charon.dis deleted file mode 100644 index 21d1a95d9..000000000 Binary files a/dis/charon.dis and /dev/null differ diff --git a/dis/charon/build.dis b/dis/charon/build.dis deleted file mode 100644 index 8d634c074..000000000 Binary files a/dis/charon/build.dis and /dev/null differ diff --git a/dis/charon/chutils.dis b/dis/charon/chutils.dis deleted file mode 100644 index 154508e6c..000000000 Binary files a/dis/charon/chutils.dis and /dev/null differ diff --git a/dis/charon/cookiesrv.dis b/dis/charon/cookiesrv.dis deleted file mode 100644 index 823c74f46..000000000 Binary files a/dis/charon/cookiesrv.dis and /dev/null differ diff --git a/dis/charon/ctype.dis b/dis/charon/ctype.dis deleted file mode 100644 index 20e2da8f7..000000000 Binary files a/dis/charon/ctype.dis and /dev/null differ diff --git a/dis/charon/date.dis b/dis/charon/date.dis deleted file mode 100644 index ce9f02610..000000000 Binary files a/dis/charon/date.dis and /dev/null differ diff --git a/dis/charon/event.dis b/dis/charon/event.dis deleted file mode 100644 index 89249d4ff..000000000 Binary files a/dis/charon/event.dis and /dev/null differ diff --git a/dis/charon/file.dis b/dis/charon/file.dis deleted file mode 100644 index f8cb9d125..000000000 Binary files a/dis/charon/file.dis and /dev/null differ diff --git a/dis/charon/ftp.dis b/dis/charon/ftp.dis deleted file mode 100644 index 1ff7e0ce2..000000000 Binary files a/dis/charon/ftp.dis and /dev/null differ diff --git a/dis/charon/gui.dis b/dis/charon/gui.dis deleted file mode 100644 index 3fe09630c..000000000 Binary files a/dis/charon/gui.dis and /dev/null differ diff --git a/dis/charon/http.dis b/dis/charon/http.dis deleted file mode 100644 index c46698bb6..000000000 Binary files a/dis/charon/http.dis and /dev/null differ diff --git a/dis/charon/img.dis b/dis/charon/img.dis deleted file mode 100644 index 2ce201f13..000000000 Binary files a/dis/charon/img.dis and /dev/null differ diff --git a/dis/charon/jscript.dis b/dis/charon/jscript.dis deleted file mode 100644 index 72b5f1293..000000000 Binary files a/dis/charon/jscript.dis and /dev/null differ diff --git a/dis/charon/layout.dis b/dis/charon/layout.dis deleted file mode 100644 index f3d927664..000000000 Binary files a/dis/charon/layout.dis and /dev/null differ diff --git a/dis/charon/lex.dis b/dis/charon/lex.dis deleted file mode 100644 index 6042c8bd4..000000000 Binary files a/dis/charon/lex.dis and /dev/null differ diff --git a/dis/charon/url.dis b/dis/charon/url.dis deleted file mode 100644 index ccfd193f7..000000000 Binary files a/dis/charon/url.dis and /dev/null differ diff --git a/dis/chatsrv.dis b/dis/chatsrv.dis deleted file mode 100644 index 9feea9bbf..000000000 Binary files a/dis/chatsrv.dis and /dev/null differ diff --git a/dis/chgrp.dis b/dis/chgrp.dis deleted file mode 100644 index 366a4744d..000000000 Binary files a/dis/chgrp.dis and /dev/null differ diff --git a/dis/chmod.dis b/dis/chmod.dis deleted file mode 100644 index 1c192bf69..000000000 Binary files a/dis/chmod.dis and /dev/null differ diff --git a/dis/cleanname.dis b/dis/cleanname.dis deleted file mode 100644 index 529f02305..000000000 Binary files a/dis/cleanname.dis and /dev/null differ diff --git a/dis/cmd/git/add.dis b/dis/cmd/git/add.dis deleted file mode 100644 index 6ee13aec7..000000000 Binary files a/dis/cmd/git/add.dis and /dev/null differ diff --git a/dis/cmd/git/branch.dis b/dis/cmd/git/branch.dis deleted file mode 100644 index 91bf9c7f4..000000000 Binary files a/dis/cmd/git/branch.dis and /dev/null differ diff --git a/dis/cmd/git/checkout.dis b/dis/cmd/git/checkout.dis deleted file mode 100644 index 77376acd6..000000000 Binary files a/dis/cmd/git/checkout.dis and /dev/null differ diff --git a/dis/cmd/git/clone.dis b/dis/cmd/git/clone.dis deleted file mode 100644 index f3c5970f4..000000000 Binary files a/dis/cmd/git/clone.dis and /dev/null differ diff --git a/dis/cmd/git/commit.dis b/dis/cmd/git/commit.dis deleted file mode 100644 index a6287828a..000000000 Binary files a/dis/cmd/git/commit.dis and /dev/null differ diff --git a/dis/cmd/git/diff.sh b/dis/cmd/git/diff.sh deleted file mode 100644 index 4a656bbcf..000000000 --- a/dis/cmd/git/diff.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/dis/sh.dis -# -# git/diff — show file differences via git/fs -# -# Usage: git/diff [dir] -# -# Runs system diff for each modified tracked file. -# - -load std -load expr - -fn findgit { - d=$1 - lim=20 - while {! ftest -d $d/.git} { - d=$d/.. - lim=${expr $lim 1 -} - if {~ $lim 0} { - echo 'not a git repository' >[1=2] - raise 'fail:not a git repository' - } - } - result=$d/.git -} - -fn ensure_fs { - gdir=$1 - mtpt=$gdir/fs - if {! ftest -d $mtpt/HEAD} { - cmd/git/fs $gdir - } - result=$mtpt -} - -fn treediff { - fsdir=$1 - prefix=$2 - workdir=$3 - for f in `{ls $fsdir} { - base=`{basename $f} - rpath=$prefix^$base - if {ftest -d $f} { - treediff $f $rpath/ $workdir - } { - if {ftest -e $workdir/$rpath} { - if {! cmp -s $f $workdir/$rpath} { - echo '---' a/$rpath - echo '+++' b/$rpath - diff $f $workdir/$rpath - } - } { - echo 'deleted:' $rpath - } - } - } -} - -dir=. -if {! ~ $#* 0} { - dir=$1 -} - -findgit $dir -gitdir=$result - -ensure_fs $gitdir -mtpt=$result - -if {ftest -d $mtpt/HEAD/tree} { - treediff $mtpt/HEAD/tree '' $dir -} -~ 1 1 diff --git a/dis/cmd/git/fetch.dis b/dis/cmd/git/fetch.dis deleted file mode 100644 index 4cf151541..000000000 Binary files a/dis/cmd/git/fetch.dis and /dev/null differ diff --git a/dis/cmd/git/fs.dis b/dis/cmd/git/fs.dis deleted file mode 100644 index a6a75bc8e..000000000 Binary files a/dis/cmd/git/fs.dis and /dev/null differ diff --git a/dis/cmd/git/init.dis b/dis/cmd/git/init.dis deleted file mode 100644 index 6d3e5d9d0..000000000 Binary files a/dis/cmd/git/init.dis and /dev/null differ diff --git a/dis/cmd/git/log.sh b/dis/cmd/git/log.sh deleted file mode 100644 index 58eaa014f..000000000 --- a/dis/cmd/git/log.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/dis/sh.dis -# -# git/log — display commit history via git/fs -# -# Usage: git/log [-n count] [dir] -# - -load std -load expr - -fn findgit { - d=$1 - lim=20 - while {! ftest -d $d/.git} { - d=$d/.. - lim=${expr $lim 1 -} - if {~ $lim 0} { - echo 'not a git repository' >[1=2] - raise 'fail:not a git repository' - } - } - result=$d/.git -} - -fn ensure_fs { - gdir=$1 - mtpt=$gdir/fs - if {! ftest -d $mtpt/HEAD} { - cmd/git/fs $gdir - } - result=$mtpt -} - -dir=. -limit=0 -args=$* - -# Parse arguments -while {! ~ $#args 0} { - a=${hd $args} - args=${tl $args} - if {~ $a -n} { - if {~ $#args 0} { - echo 'git/log: -n requires argument' >[1=2] - raise 'fail:usage' - } - limit=${hd $args} - args=${tl $args} - } { - dir=$a - } -} - -findgit $dir -gitdir=$result - -ensure_fs $gitdir -mtpt=$result - -hash=`{cat $mtpt/HEAD/hash} -count=0 - -while {! ~ $#hash 0} { - if {! ~ $limit 0} { - if {~ $count $limit} { - exit - } - } - - if {! ftest -d $mtpt/object/$hash} { - exit - } - - echo 'commit' $hash - echo 'Author:' `{cat $mtpt/object/$hash/author} - echo '' - cat $mtpt/object/$hash/msg | sed 's/^/ /' - echo '' - - # Follow first parent - if {ftest -f $mtpt/object/$hash/parent} { - hash=`{sed 1q $mtpt/object/$hash/parent} - } { - hash=() - } - count=${expr $count 1 +} -} diff --git a/dis/cmd/git/merge.dis b/dis/cmd/git/merge.dis deleted file mode 100644 index 3a8b92184..000000000 Binary files a/dis/cmd/git/merge.dis and /dev/null differ diff --git a/dis/cmd/git/pull.dis b/dis/cmd/git/pull.dis deleted file mode 100644 index a69e4f6cf..000000000 Binary files a/dis/cmd/git/pull.dis and /dev/null differ diff --git a/dis/cmd/git/push.dis b/dis/cmd/git/push.dis deleted file mode 100644 index b6c81d6aa..000000000 Binary files a/dis/cmd/git/push.dis and /dev/null differ diff --git a/dis/cmd/git/rm.dis b/dis/cmd/git/rm.dis deleted file mode 100644 index 7c1da1594..000000000 Binary files a/dis/cmd/git/rm.dis and /dev/null differ diff --git a/dis/cmd/git/status.sh b/dis/cmd/git/status.sh deleted file mode 100644 index 3185d7dd8..000000000 --- a/dis/cmd/git/status.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/dis/sh.dis -# -# git/status — show working tree status via git/fs -# -# Usage: git/status [dir] -# -# Compares files served by git/fs HEAD/tree/ with working directory. -# - -load std -load expr - -fn findgit { - d=$1 - lim=20 - while {! ftest -d $d/.git} { - d=$d/.. - lim=${expr $lim 1 -} - if {~ $lim 0} { - echo 'not a git repository' >[1=2] - raise 'fail:not a git repository' - } - } - result=$d/.git -} - -fn ensure_fs { - gdir=$1 - mtpt=$gdir/fs - if {! ftest -d $mtpt/HEAD} { - cmd/git/fs $gdir - } - result=$mtpt -} - -# Walk git/fs tree, compare each blob with working copy -fn treestatus { - fsdir=$1 - prefix=$2 - workdir=$3 - for f in `{ls $fsdir} { - base=`{basename $f} - rpath=$prefix^$base - if {ftest -d $f} { - treestatus $f $rpath/ $workdir - } { - if {! ftest -e $workdir/$rpath} { - echo ' D' $rpath - } { - if {! cmp -s $f $workdir/$rpath} { - echo ' M' $rpath - } - } - } - } -} - -# Walk working dir, check for untracked files -fn finduntracked { - wdir=$1 - prefix=$2 - treedir=$3 - for f in `{ls $wdir} { - base=`{basename $f} - if {! ~ $base .git} { - rpath=$prefix^$base - if {ftest -d $wdir/$base} { - finduntracked $wdir/$base $rpath/ $treedir - } { - if {! ftest -e $treedir/$rpath} { - echo '??' $rpath - } - } - } - } -} - -dir=. -if {! ~ $#* 0} { - dir=$1 -} - -findgit $dir -gitdir=$result - -ensure_fs $gitdir -mtpt=$result - -if {ftest -d $mtpt/HEAD/tree} { - treestatus $mtpt/HEAD/tree '' $dir - finduntracked $dir '' $mtpt/HEAD/tree -} -~ 1 1 diff --git a/dis/cmp.dis b/dis/cmp.dis deleted file mode 100644 index 251ffe546..000000000 Binary files a/dis/cmp.dis and /dev/null differ diff --git a/dis/comm.dis b/dis/comm.dis deleted file mode 100644 index 76e9fc8df..000000000 Binary files a/dis/comm.dis and /dev/null differ diff --git a/dis/countfs.dis b/dis/countfs.dis deleted file mode 100644 index 10b8b4ea5..000000000 Binary files a/dis/countfs.dis and /dev/null differ diff --git a/dis/cp.dis b/dis/cp.dis deleted file mode 100644 index 7ca6113de..000000000 Binary files a/dis/cp.dis and /dev/null differ diff --git a/dis/cprof.dis b/dis/cprof.dis deleted file mode 100644 index f9942696e..000000000 Binary files a/dis/cprof.dis and /dev/null differ diff --git a/dis/cpu.dis b/dis/cpu.dis deleted file mode 100644 index ec5b53c8c..000000000 Binary files a/dis/cpu.dis and /dev/null differ diff --git a/dis/crypt.dis b/dis/crypt.dis deleted file mode 100644 index 602eebb01..000000000 Binary files a/dis/crypt.dis and /dev/null differ diff --git a/dis/cut.dis b/dis/cut.dis deleted file mode 100644 index ece3caf91..000000000 Binary files a/dis/cut.dis and /dev/null differ diff --git a/dis/date.dis b/dis/date.dis deleted file mode 100644 index 0ed3ba9c5..000000000 Binary files a/dis/date.dis and /dev/null differ diff --git a/dis/dbfs.dis b/dis/dbfs.dis deleted file mode 100644 index e3cb7de43..000000000 Binary files a/dis/dbfs.dis and /dev/null differ diff --git a/dis/dbm/delete.dis b/dis/dbm/delete.dis deleted file mode 100644 index db3e1b401..000000000 Binary files a/dis/dbm/delete.dis and /dev/null differ diff --git a/dis/dbm/fetch.dis b/dis/dbm/fetch.dis deleted file mode 100644 index aef91d441..000000000 Binary files a/dis/dbm/fetch.dis and /dev/null differ diff --git a/dis/dbm/keys.dis b/dis/dbm/keys.dis deleted file mode 100644 index 3ac61198b..000000000 Binary files a/dis/dbm/keys.dis and /dev/null differ diff --git a/dis/dbm/list.dis b/dis/dbm/list.dis deleted file mode 100644 index 1e7aab774..000000000 Binary files a/dis/dbm/list.dis and /dev/null differ diff --git a/dis/dbm/store.dis b/dis/dbm/store.dis deleted file mode 100644 index 6109eef72..000000000 Binary files a/dis/dbm/store.dis and /dev/null differ diff --git a/dis/dcr.dis b/dis/dcr.dis deleted file mode 100644 index 872bd3468..000000000 Binary files a/dis/dcr.dis and /dev/null differ diff --git a/dis/dd.dis b/dis/dd.dis deleted file mode 100644 index 21f1442b6..000000000 Binary files a/dis/dd.dis and /dev/null differ diff --git a/dis/dial.dis b/dis/dial.dis deleted file mode 100644 index 39f456a7a..000000000 Binary files a/dis/dial.dis and /dev/null differ diff --git a/dis/dict.dis b/dis/dict.dis deleted file mode 100644 index a300a849b..000000000 Binary files a/dis/dict.dis and /dev/null differ diff --git a/dis/dict/adict.dis b/dis/dict/adict.dis deleted file mode 100644 index 2c317f6b6..000000000 Binary files a/dis/dict/adict.dis and /dev/null differ diff --git a/dis/dict/mkindex.dis b/dis/dict/mkindex.dis deleted file mode 100644 index f53fe3f2f..000000000 Binary files a/dis/dict/mkindex.dis and /dev/null differ diff --git a/dis/dict/oeis.dis b/dis/dict/oeis.dis deleted file mode 100644 index 7e7efa08c..000000000 Binary files a/dis/dict/oeis.dis and /dev/null differ diff --git a/dis/dict/pg.dis b/dis/dict/pg.dis deleted file mode 100644 index 34b896902..000000000 Binary files a/dis/dict/pg.dis and /dev/null differ diff --git a/dis/dict/pgw.dis b/dis/dict/pgw.dis deleted file mode 100644 index b3b1ba81c..000000000 Binary files a/dis/dict/pgw.dis and /dev/null differ diff --git a/dis/dict/roget.dis b/dis/dict/roget.dis deleted file mode 100644 index 4c4955b9b..000000000 Binary files a/dis/dict/roget.dis and /dev/null differ diff --git a/dis/dict/simple.dis b/dis/dict/simple.dis deleted file mode 100644 index 8871e92a4..000000000 Binary files a/dis/dict/simple.dis and /dev/null differ diff --git a/dis/dict/utils.dis b/dis/dict/utils.dis deleted file mode 100644 index b759ac003..000000000 Binary files a/dis/dict/utils.dis and /dev/null differ diff --git a/dis/dict/wikipedia.dis b/dis/dict/wikipedia.dis deleted file mode 100644 index d0acd072d..000000000 Binary files a/dis/dict/wikipedia.dis and /dev/null differ diff --git a/dis/diff.dis b/dis/diff.dis deleted file mode 100644 index 696ca8b9b..000000000 Binary files a/dis/diff.dis and /dev/null differ diff --git a/dis/disdep.dis b/dis/disdep.dis deleted file mode 100644 index 879b7a046..000000000 Binary files a/dis/disdep.dis and /dev/null differ diff --git a/dis/disdump.dis b/dis/disdump.dis deleted file mode 100644 index 82316d126..000000000 Binary files a/dis/disdump.dis and /dev/null differ diff --git a/dis/disk/calc.tab.dis b/dis/disk/calc.tab.dis deleted file mode 100644 index c0c2bfd34..000000000 Binary files a/dis/disk/calc.tab.dis and /dev/null differ diff --git a/dis/disk/fdisk.dis b/dis/disk/fdisk.dis deleted file mode 100644 index 1e01106bf..000000000 Binary files a/dis/disk/fdisk.dis and /dev/null differ diff --git a/dis/disk/format.dis b/dis/disk/format.dis deleted file mode 100644 index 2f66f9afd..000000000 Binary files a/dis/disk/format.dis and /dev/null differ diff --git a/dis/disk/ftl.dis b/dis/disk/ftl.dis deleted file mode 100644 index 43cf826b6..000000000 Binary files a/dis/disk/ftl.dis and /dev/null differ diff --git a/dis/disk/kfs.dis b/dis/disk/kfs.dis deleted file mode 100644 index 36f5b6394..000000000 Binary files a/dis/disk/kfs.dis and /dev/null differ diff --git a/dis/disk/kfscmd.dis b/dis/disk/kfscmd.dis deleted file mode 100644 index eed7710de..000000000 Binary files a/dis/disk/kfscmd.dis and /dev/null differ diff --git a/dis/disk/mbr.dis b/dis/disk/mbr.dis deleted file mode 100644 index a75cd27d5..000000000 Binary files a/dis/disk/mbr.dis and /dev/null differ diff --git a/dis/disk/mkext.dis b/dis/disk/mkext.dis deleted file mode 100644 index 2de2a52dd..000000000 Binary files a/dis/disk/mkext.dis and /dev/null differ diff --git a/dis/disk/mkfs.dis b/dis/disk/mkfs.dis deleted file mode 100644 index a572d4a34..000000000 Binary files a/dis/disk/mkfs.dis and /dev/null differ diff --git a/dis/disk/pedit.dis b/dis/disk/pedit.dis deleted file mode 100644 index 0aa03a23f..000000000 Binary files a/dis/disk/pedit.dis and /dev/null differ diff --git a/dis/disk/prep.dis b/dis/disk/prep.dis deleted file mode 100644 index 0f42062c8..000000000 Binary files a/dis/disk/prep.dis and /dev/null differ diff --git a/dis/du.dis b/dis/du.dis deleted file mode 100644 index 541f6a135..000000000 Binary files a/dis/du.dis and /dev/null differ diff --git a/dis/echo.dis b/dis/echo.dis deleted file mode 100644 index 1a60a19d3..000000000 Binary files a/dis/echo.dis and /dev/null differ diff --git a/dis/ed.dis b/dis/ed.dis deleted file mode 100644 index 004184336..000000000 Binary files a/dis/ed.dis and /dev/null differ diff --git a/dis/edit.dis b/dis/edit.dis deleted file mode 100644 index fb733a6e8..000000000 Binary files a/dis/edit.dis and /dev/null differ diff --git a/dis/emuinit.dis b/dis/emuinit.dis deleted file mode 100644 index 00388786e..000000000 Binary files a/dis/emuinit.dis and /dev/null differ diff --git a/dis/env.dis b/dis/env.dis deleted file mode 100644 index abe0a6923..000000000 Binary files a/dis/env.dis and /dev/null differ diff --git a/dis/esort.dis b/dis/esort.dis deleted file mode 100644 index a0ff7faea..000000000 Binary files a/dis/esort.dis and /dev/null differ diff --git a/dis/export.dis b/dis/export.dis deleted file mode 100644 index 71be87d58..000000000 Binary files a/dis/export.dis and /dev/null differ diff --git a/dis/fc.dis b/dis/fc.dis deleted file mode 100644 index 977b976b8..000000000 Binary files a/dis/fc.dis and /dev/null differ diff --git a/dis/fcp.dis b/dis/fcp.dis deleted file mode 100644 index 68bb2d6cc..000000000 Binary files a/dis/fcp.dis and /dev/null differ diff --git a/dis/fmt.dis b/dis/fmt.dis deleted file mode 100644 index 9efa6833e..000000000 Binary files a/dis/fmt.dis and /dev/null differ diff --git a/dis/fortune.dis b/dis/fortune.dis deleted file mode 100644 index 5bce29fc4..000000000 Binary files a/dis/fortune.dis and /dev/null differ diff --git a/dis/freq.dis b/dis/freq.dis deleted file mode 100644 index 01e5a15b9..000000000 Binary files a/dis/freq.dis and /dev/null differ diff --git a/dis/fs.dis b/dis/fs.dis deleted file mode 100644 index 20466db78..000000000 Binary files a/dis/fs.dis and /dev/null differ diff --git a/dis/fs/and.dis b/dis/fs/and.dis deleted file mode 100644 index 84449dd38..000000000 Binary files a/dis/fs/and.dis and /dev/null differ diff --git a/dis/fs/bundle.dis b/dis/fs/bundle.dis deleted file mode 100644 index 7e5a0d6c3..000000000 Binary files a/dis/fs/bundle.dis and /dev/null differ diff --git a/dis/fs/chstat.dis b/dis/fs/chstat.dis deleted file mode 100644 index 0a607e6f7..000000000 Binary files a/dis/fs/chstat.dis and /dev/null differ diff --git a/dis/fs/compose.dis b/dis/fs/compose.dis deleted file mode 100644 index e897d413c..000000000 Binary files a/dis/fs/compose.dis and /dev/null differ diff --git a/dis/fs/depth.dis b/dis/fs/depth.dis deleted file mode 100644 index c823259bc..000000000 Binary files a/dis/fs/depth.dis and /dev/null differ diff --git a/dis/fs/entries.dis b/dis/fs/entries.dis deleted file mode 100644 index c8d4ff89a..000000000 Binary files a/dis/fs/entries.dis and /dev/null differ diff --git a/dis/fs/eval.dis b/dis/fs/eval.dis deleted file mode 100644 index 091a1ccda..000000000 Binary files a/dis/fs/eval.dis and /dev/null differ diff --git a/dis/fs/exec.dis b/dis/fs/exec.dis deleted file mode 100644 index 3d1680b48..000000000 Binary files a/dis/fs/exec.dis and /dev/null differ diff --git a/dis/fs/filter.dis b/dis/fs/filter.dis deleted file mode 100644 index 00b20ffa3..000000000 Binary files a/dis/fs/filter.dis and /dev/null differ diff --git a/dis/fs/ls.dis b/dis/fs/ls.dis deleted file mode 100644 index 67bd403f0..000000000 Binary files a/dis/fs/ls.dis and /dev/null differ diff --git a/dis/fs/match.dis b/dis/fs/match.dis deleted file mode 100644 index 937a94382..000000000 Binary files a/dis/fs/match.dis and /dev/null differ diff --git a/dis/fs/merge.dis b/dis/fs/merge.dis deleted file mode 100644 index ce39f56e0..000000000 Binary files a/dis/fs/merge.dis and /dev/null differ diff --git a/dis/fs/mergewrite.dis b/dis/fs/mergewrite.dis deleted file mode 100644 index 416e7d745..000000000 Binary files a/dis/fs/mergewrite.dis and /dev/null differ diff --git a/dis/fs/mode.dis b/dis/fs/mode.dis deleted file mode 100644 index 93ac369f0..000000000 Binary files a/dis/fs/mode.dis and /dev/null differ diff --git a/dis/fs/not.dis b/dis/fs/not.dis deleted file mode 100644 index 31f97a02b..000000000 Binary files a/dis/fs/not.dis and /dev/null differ diff --git a/dis/fs/or.dis b/dis/fs/or.dis deleted file mode 100644 index eb11ef26e..000000000 Binary files a/dis/fs/or.dis and /dev/null differ diff --git a/dis/fs/path.dis b/dis/fs/path.dis deleted file mode 100644 index 499d5b677..000000000 Binary files a/dis/fs/path.dis and /dev/null differ diff --git a/dis/fs/pipe.dis b/dis/fs/pipe.dis deleted file mode 100644 index 584ec7756..000000000 Binary files a/dis/fs/pipe.dis and /dev/null differ diff --git a/dis/fs/print.dis b/dis/fs/print.dis deleted file mode 100644 index 268a79904..000000000 Binary files a/dis/fs/print.dis and /dev/null differ diff --git a/dis/fs/proto.dis b/dis/fs/proto.dis deleted file mode 100644 index ab7cef5e8..000000000 Binary files a/dis/fs/proto.dis and /dev/null differ diff --git a/dis/fs/query.dis b/dis/fs/query.dis deleted file mode 100644 index 4bd3202e9..000000000 Binary files a/dis/fs/query.dis and /dev/null differ diff --git a/dis/fs/run.dis b/dis/fs/run.dis deleted file mode 100644 index 631031606..000000000 Binary files a/dis/fs/run.dis and /dev/null differ diff --git a/dis/fs/select.dis b/dis/fs/select.dis deleted file mode 100644 index 51cd4e282..000000000 Binary files a/dis/fs/select.dis and /dev/null differ diff --git a/dis/fs/setroot.dis b/dis/fs/setroot.dis deleted file mode 100644 index 5baa7eac0..000000000 Binary files a/dis/fs/setroot.dis and /dev/null differ diff --git a/dis/fs/size.dis b/dis/fs/size.dis deleted file mode 100644 index 46fa485a2..000000000 Binary files a/dis/fs/size.dis and /dev/null differ diff --git a/dis/fs/unbundle.dis b/dis/fs/unbundle.dis deleted file mode 100644 index abeefe758..000000000 Binary files a/dis/fs/unbundle.dis and /dev/null differ diff --git a/dis/fs/void.dis b/dis/fs/void.dis deleted file mode 100644 index 016e2ebb3..000000000 Binary files a/dis/fs/void.dis and /dev/null differ diff --git a/dis/fs/walk.dis b/dis/fs/walk.dis deleted file mode 100644 index 283451cb5..000000000 Binary files a/dis/fs/walk.dis and /dev/null differ diff --git a/dis/fs/write.dis b/dis/fs/write.dis deleted file mode 100644 index b5b19716a..000000000 Binary files a/dis/fs/write.dis and /dev/null differ diff --git a/dis/ftest.dis b/dis/ftest.dis deleted file mode 100644 index b10576055..000000000 Binary files a/dis/ftest.dis and /dev/null differ diff --git a/dis/ftpfs.dis b/dis/ftpfs.dis deleted file mode 100644 index ea2581fec..000000000 Binary files a/dis/ftpfs.dis and /dev/null differ diff --git a/dis/ftrans.dis b/dis/ftrans.dis deleted file mode 100644 index 8659f2a33..000000000 Binary files a/dis/ftrans.dis and /dev/null differ diff --git a/dis/gateprobe.dis b/dis/gateprobe.dis deleted file mode 100644 index 2e37c55be..000000000 Binary files a/dis/gateprobe.dis and /dev/null differ diff --git a/dis/getauthinfo.dis b/dis/getauthinfo.dis deleted file mode 100644 index 3fe15acbc..000000000 Binary files a/dis/getauthinfo.dis and /dev/null differ diff --git a/dis/getkey.dis b/dis/getkey.dis deleted file mode 100644 index 4664261d1..000000000 Binary files a/dis/getkey.dis and /dev/null differ diff --git a/dis/getline.dis b/dis/getline.dis deleted file mode 100644 index ae580df7d..000000000 Binary files a/dis/getline.dis and /dev/null differ diff --git a/dis/gettar.dis b/dis/gettar.dis deleted file mode 100644 index 51e75f03f..000000000 Binary files a/dis/gettar.dis and /dev/null differ diff --git a/dis/gif2bit.dis b/dis/gif2bit.dis deleted file mode 100644 index acc1b30c0..000000000 Binary files a/dis/gif2bit.dis and /dev/null differ diff --git a/dis/gpusrv.dis b/dis/gpusrv.dis deleted file mode 100644 index 9fb6e59f3..000000000 Binary files a/dis/gpusrv.dis and /dev/null differ diff --git a/dis/grep.dis b/dis/grep.dis deleted file mode 100644 index 9eb122cf0..000000000 Binary files a/dis/grep.dis and /dev/null differ diff --git a/dis/grid/lib/announce.dis b/dis/grid/lib/announce.dis deleted file mode 100644 index 8793e02fb..000000000 Binary files a/dis/grid/lib/announce.dis and /dev/null differ diff --git a/dis/grid/register.dis b/dis/grid/register.dis deleted file mode 100644 index c208728d7..000000000 Binary files a/dis/grid/register.dis and /dev/null differ diff --git a/dis/grid/reglisten.dis b/dis/grid/reglisten.dis deleted file mode 100644 index af87f2f5e..000000000 Binary files a/dis/grid/reglisten.dis and /dev/null differ diff --git a/dis/grid/regstyxlisten.dis b/dis/grid/regstyxlisten.dis deleted file mode 100644 index b75e835b1..000000000 Binary files a/dis/grid/regstyxlisten.dis and /dev/null differ diff --git a/dis/gunzip.dis b/dis/gunzip.dis deleted file mode 100644 index c9f29ac19..000000000 Binary files a/dis/gunzip.dis and /dev/null differ diff --git a/dis/gzip.dis b/dis/gzip.dis deleted file mode 100644 index c55dea59e..000000000 Binary files a/dis/gzip.dis and /dev/null differ diff --git a/dis/history.dis b/dis/history.dis deleted file mode 100644 index 0c1bdb75d..000000000 Binary files a/dis/history.dis and /dev/null differ diff --git a/dis/idea.dis b/dis/idea.dis deleted file mode 100644 index 8acc83c65..000000000 Binary files a/dis/idea.dis and /dev/null differ diff --git a/dis/import.dis b/dis/import.dis deleted file mode 100644 index 91c4cc57c..000000000 Binary files a/dis/import.dis and /dev/null differ diff --git a/dis/install/applylog.dis b/dis/install/applylog.dis deleted file mode 100644 index e5b115678..000000000 Binary files a/dis/install/applylog.dis and /dev/null differ diff --git a/dis/install/arch.dis b/dis/install/arch.dis deleted file mode 100644 index 6a684bee9..000000000 Binary files a/dis/install/arch.dis and /dev/null differ diff --git a/dis/install/archfs.dis b/dis/install/archfs.dis deleted file mode 100644 index 0c92290d2..000000000 Binary files a/dis/install/archfs.dis and /dev/null differ diff --git a/dis/install/ckproto.dis b/dis/install/ckproto.dis deleted file mode 100644 index 16f9046cc..000000000 Binary files a/dis/install/ckproto.dis and /dev/null differ diff --git a/dis/install/create.dis b/dis/install/create.dis deleted file mode 100644 index 760ef239f..000000000 Binary files a/dis/install/create.dis and /dev/null differ diff --git a/dis/install/eproto.dis b/dis/install/eproto.dis deleted file mode 100644 index 81cf3811c..000000000 Binary files a/dis/install/eproto.dis and /dev/null differ diff --git a/dis/install/info.dis b/dis/install/info.dis deleted file mode 100644 index 81b19cb9e..000000000 Binary files a/dis/install/info.dis and /dev/null differ diff --git a/dis/install/inst.dis b/dis/install/inst.dis deleted file mode 100644 index 48a022d8f..000000000 Binary files a/dis/install/inst.dis and /dev/null differ diff --git a/dis/install/install.dis b/dis/install/install.dis deleted file mode 100644 index 941e2764b..000000000 Binary files a/dis/install/install.dis and /dev/null differ diff --git a/dis/install/log.dis b/dis/install/log.dis deleted file mode 100644 index 5284bb11d..000000000 Binary files a/dis/install/log.dis and /dev/null differ diff --git a/dis/install/logs.dis b/dis/install/logs.dis deleted file mode 100644 index 56808c477..000000000 Binary files a/dis/install/logs.dis and /dev/null differ diff --git a/dis/install/mergelog.dis b/dis/install/mergelog.dis deleted file mode 100644 index 54991c091..000000000 Binary files a/dis/install/mergelog.dis and /dev/null differ diff --git a/dis/install/mkproto.dis b/dis/install/mkproto.dis deleted file mode 100644 index eb0d455d8..000000000 Binary files a/dis/install/mkproto.dis and /dev/null differ diff --git a/dis/install/proto.dis b/dis/install/proto.dis deleted file mode 100644 index cbc5f36a7..000000000 Binary files a/dis/install/proto.dis and /dev/null differ diff --git a/dis/install/proto2list.dis b/dis/install/proto2list.dis deleted file mode 100644 index 324ad6883..000000000 Binary files a/dis/install/proto2list.dis and /dev/null differ diff --git a/dis/install/updatelog.dis b/dis/install/updatelog.dis deleted file mode 100644 index 0e35933bd..000000000 Binary files a/dis/install/updatelog.dis and /dev/null differ diff --git a/dis/install/wdiff.dis b/dis/install/wdiff.dis deleted file mode 100644 index d6a16917b..000000000 Binary files a/dis/install/wdiff.dis and /dev/null differ diff --git a/dis/install/wfind.dis b/dis/install/wfind.dis deleted file mode 100644 index 41de4317b..000000000 Binary files a/dis/install/wfind.dis and /dev/null differ diff --git a/dis/install/wrap.dis b/dis/install/wrap.dis deleted file mode 100644 index dd5d18e99..000000000 Binary files a/dis/install/wrap.dis and /dev/null differ diff --git a/dis/install/wrap2list.dis b/dis/install/wrap2list.dis deleted file mode 100644 index 84ec39b57..000000000 Binary files a/dis/install/wrap2list.dis and /dev/null differ diff --git a/dis/iostats.dis b/dis/iostats.dis deleted file mode 100644 index a9093e19c..000000000 Binary files a/dis/iostats.dis and /dev/null differ diff --git a/dis/ip/bootpd.dis b/dis/ip/bootpd.dis deleted file mode 100644 index 93e7a0dca..000000000 Binary files a/dis/ip/bootpd.dis and /dev/null differ diff --git a/dis/ip/dhcp.dis b/dis/ip/dhcp.dis deleted file mode 100644 index 2fa197ffd..000000000 Binary files a/dis/ip/dhcp.dis and /dev/null differ diff --git a/dis/ip/ping.dis b/dis/ip/ping.dis deleted file mode 100644 index 88481a026..000000000 Binary files a/dis/ip/ping.dis and /dev/null differ diff --git a/dis/ip/rip.dis b/dis/ip/rip.dis deleted file mode 100644 index 212d13d9a..000000000 Binary files a/dis/ip/rip.dis and /dev/null differ diff --git a/dis/ip/sntp.dis b/dis/ip/sntp.dis deleted file mode 100644 index 08793938c..000000000 Binary files a/dis/ip/sntp.dis and /dev/null differ diff --git a/dis/ip/tftpd.dis b/dis/ip/tftpd.dis deleted file mode 100644 index 4e5a36997..000000000 Binary files a/dis/ip/tftpd.dis and /dev/null differ diff --git a/dis/ip/virgild.dis b/dis/ip/virgild.dis deleted file mode 100644 index c49be0308..000000000 Binary files a/dis/ip/virgild.dis and /dev/null differ diff --git a/dis/jitbench.dis b/dis/jitbench.dis deleted file mode 100644 index 7cc72235a..000000000 Binary files a/dis/jitbench.dis and /dev/null differ diff --git a/dis/jitbench2.dis b/dis/jitbench2.dis deleted file mode 100644 index e69a6e90c..000000000 Binary files a/dis/jitbench2.dis and /dev/null differ diff --git a/dis/jitbug.dis b/dis/jitbug.dis deleted file mode 100644 index 204c50900..000000000 Binary files a/dis/jitbug.dis and /dev/null differ diff --git a/dis/jitbug2.dis b/dis/jitbug2.dis deleted file mode 100644 index 9f8323475..000000000 Binary files a/dis/jitbug2.dis and /dev/null differ diff --git a/dis/jitcrash.dis b/dis/jitcrash.dis deleted file mode 100644 index a7feef508..000000000 Binary files a/dis/jitcrash.dis and /dev/null differ diff --git a/dis/jitshift.dis b/dis/jitshift.dis deleted file mode 100644 index bdce59f77..000000000 Binary files a/dis/jitshift.dis and /dev/null differ diff --git a/dis/jittest.dis b/dis/jittest.dis deleted file mode 100644 index 0a81b3309..000000000 Binary files a/dis/jittest.dis and /dev/null differ diff --git a/dis/js.dis b/dis/js.dis deleted file mode 100644 index 2db679bc8..000000000 Binary files a/dis/js.dis and /dev/null differ diff --git a/dis/kill.dis b/dis/kill.dis deleted file mode 100644 index 78315c5cf..000000000 Binary files a/dis/kill.dis and /dev/null differ diff --git a/dis/ktrans.dis b/dis/ktrans.dis deleted file mode 100644 index 1c4f41756..000000000 Binary files a/dis/ktrans.dis and /dev/null differ diff --git a/dis/lib/aadraw.dis b/dis/lib/aadraw.dis deleted file mode 100644 index caba72a6c..000000000 Binary files a/dis/lib/aadraw.dis and /dev/null differ diff --git a/dis/lib/acmewin.dis b/dis/lib/acmewin.dis deleted file mode 100644 index 833c3d62e..000000000 Binary files a/dis/lib/acmewin.dis and /dev/null differ diff --git a/dis/lib/arg.dis b/dis/lib/arg.dis deleted file mode 100644 index 97c6830e0..000000000 Binary files a/dis/lib/arg.dis and /dev/null differ diff --git a/dis/lib/asn1.dis b/dis/lib/asn1.dis deleted file mode 100644 index 9324b1467..000000000 Binary files a/dis/lib/asn1.dis and /dev/null differ diff --git a/dis/lib/attrdb.dis b/dis/lib/attrdb.dis deleted file mode 100644 index 0185413ca..000000000 Binary files a/dis/lib/attrdb.dis and /dev/null differ diff --git a/dis/lib/attrhash.dis b/dis/lib/attrhash.dis deleted file mode 100644 index e47946465..000000000 Binary files a/dis/lib/attrhash.dis and /dev/null differ diff --git a/dis/lib/audit.dis b/dis/lib/audit.dis deleted file mode 100644 index 34c058914..000000000 Binary files a/dis/lib/audit.dis and /dev/null differ diff --git a/dis/lib/auditchain.dis b/dis/lib/auditchain.dis deleted file mode 100644 index e49071111..000000000 Binary files a/dis/lib/auditchain.dis and /dev/null differ diff --git a/dis/lib/auditprov.dis b/dis/lib/auditprov.dis deleted file mode 100644 index ca254837d..000000000 Binary files a/dis/lib/auditprov.dis and /dev/null differ diff --git a/dis/lib/auth.dis b/dis/lib/auth.dis deleted file mode 100644 index 4bff5e5ce..000000000 Binary files a/dis/lib/auth.dis and /dev/null differ diff --git a/dis/lib/auth9.dis b/dis/lib/auth9.dis deleted file mode 100644 index ab32d40de..000000000 Binary files a/dis/lib/auth9.dis and /dev/null differ diff --git a/dis/lib/bioauth.dis b/dis/lib/bioauth.dis deleted file mode 100644 index 291379700..000000000 Binary files a/dis/lib/bioauth.dis and /dev/null differ diff --git a/dis/lib/bloomfilter.dis b/dis/lib/bloomfilter.dis deleted file mode 100644 index 0776da03d..000000000 Binary files a/dis/lib/bloomfilter.dis and /dev/null differ diff --git a/dis/lib/bufio.dis b/dis/lib/bufio.dis deleted file mode 100644 index 6bdab970f..000000000 Binary files a/dis/lib/bufio.dis and /dev/null differ diff --git a/dis/lib/cfg.dis b/dis/lib/cfg.dis deleted file mode 100644 index e47f03588..000000000 Binary files a/dis/lib/cfg.dis and /dev/null differ diff --git a/dis/lib/cfgfile.dis b/dis/lib/cfgfile.dis deleted file mode 100644 index 442138cf4..000000000 Binary files a/dis/lib/cfgfile.dis and /dev/null differ diff --git a/dis/lib/chanfill.dis b/dis/lib/chanfill.dis deleted file mode 100644 index de6bb2e58..000000000 Binary files a/dis/lib/chanfill.dis and /dev/null differ diff --git a/dis/lib/complete.dis b/dis/lib/complete.dis deleted file mode 100644 index fc221e8d3..000000000 Binary files a/dis/lib/complete.dis and /dev/null differ diff --git a/dis/lib/convcs/8bit_stob.dis b/dis/lib/convcs/8bit_stob.dis deleted file mode 100644 index f8728ae10..000000000 Binary files a/dis/lib/convcs/8bit_stob.dis and /dev/null differ diff --git a/dis/lib/convcs/big5_btos.dis b/dis/lib/convcs/big5_btos.dis deleted file mode 100644 index ed871ba14..000000000 Binary files a/dis/lib/convcs/big5_btos.dis and /dev/null differ diff --git a/dis/lib/convcs/big5_stob.dis b/dis/lib/convcs/big5_stob.dis deleted file mode 100644 index 3cc5baf9c..000000000 Binary files a/dis/lib/convcs/big5_stob.dis and /dev/null differ diff --git a/dis/lib/convcs/convcs.dis b/dis/lib/convcs/convcs.dis deleted file mode 100644 index 98c0f7c7c..000000000 Binary files a/dis/lib/convcs/convcs.dis and /dev/null differ diff --git a/dis/lib/convcs/cp932_btos.dis b/dis/lib/convcs/cp932_btos.dis deleted file mode 100644 index 73688e55b..000000000 Binary files a/dis/lib/convcs/cp932_btos.dis and /dev/null differ diff --git a/dis/lib/convcs/cp_btos.dis b/dis/lib/convcs/cp_btos.dis deleted file mode 100644 index 2d8a3edd1..000000000 Binary files a/dis/lib/convcs/cp_btos.dis and /dev/null differ diff --git a/dis/lib/convcs/cp_stob.dis b/dis/lib/convcs/cp_stob.dis deleted file mode 100644 index fb531ee26..000000000 Binary files a/dis/lib/convcs/cp_stob.dis and /dev/null differ diff --git a/dis/lib/convcs/euc-jp_btos.dis b/dis/lib/convcs/euc-jp_btos.dis deleted file mode 100644 index 61ecb70b0..000000000 Binary files a/dis/lib/convcs/euc-jp_btos.dis and /dev/null differ diff --git a/dis/lib/convcs/gb2312_btos.dis b/dis/lib/convcs/gb2312_btos.dis deleted file mode 100644 index e14dfe172..000000000 Binary files a/dis/lib/convcs/gb2312_btos.dis and /dev/null differ diff --git a/dis/lib/convcs/tune_btos.dis b/dis/lib/convcs/tune_btos.dis deleted file mode 100644 index 28c07ba25..000000000 Binary files a/dis/lib/convcs/tune_btos.dis and /dev/null differ diff --git a/dis/lib/convcs/tune_stob.dis b/dis/lib/convcs/tune_stob.dis deleted file mode 100644 index 284d0684f..000000000 Binary files a/dis/lib/convcs/tune_stob.dis and /dev/null differ diff --git a/dis/lib/convcs/utf8_btos.dis b/dis/lib/convcs/utf8_btos.dis deleted file mode 100644 index 577815602..000000000 Binary files a/dis/lib/convcs/utf8_btos.dis and /dev/null differ diff --git a/dis/lib/convcs/utf8_stob.dis b/dis/lib/convcs/utf8_stob.dis deleted file mode 100644 index eba7557a0..000000000 Binary files a/dis/lib/convcs/utf8_stob.dis and /dev/null differ diff --git a/dis/lib/crc.dis b/dis/lib/crc.dis deleted file mode 100644 index b2ad5c83f..000000000 Binary files a/dis/lib/crc.dis and /dev/null differ diff --git a/dis/lib/crypt/pkcs.dis b/dis/lib/crypt/pkcs.dis deleted file mode 100644 index ac6d5c8c7..000000000 Binary files a/dis/lib/crypt/pkcs.dis and /dev/null differ diff --git a/dis/lib/crypt/ssl3.dis b/dis/lib/crypt/ssl3.dis deleted file mode 100644 index 74757b39e..000000000 Binary files a/dis/lib/crypt/ssl3.dis and /dev/null differ diff --git a/dis/lib/crypt/sslsession.dis b/dis/lib/crypt/sslsession.dis deleted file mode 100644 index a6fcfc666..000000000 Binary files a/dis/lib/crypt/sslsession.dis and /dev/null differ diff --git a/dis/lib/crypt/tls.dis b/dis/lib/crypt/tls.dis deleted file mode 100644 index e79249da0..000000000 Binary files a/dis/lib/crypt/tls.dis and /dev/null differ diff --git a/dis/lib/crypt/x509.dis b/dis/lib/crypt/x509.dis deleted file mode 100644 index 9ab6167e6..000000000 Binary files a/dis/lib/crypt/x509.dis and /dev/null differ diff --git a/dis/lib/csv.dis b/dis/lib/csv.dis deleted file mode 100644 index 8af1a0a20..000000000 Binary files a/dis/lib/csv.dis and /dev/null differ diff --git a/dis/lib/daytime.dis b/dis/lib/daytime.dis deleted file mode 100644 index 9eb73981f..000000000 Binary files a/dis/lib/daytime.dis and /dev/null differ diff --git a/dis/lib/dbm.dis b/dis/lib/dbm.dis deleted file mode 100644 index 520304a1d..000000000 Binary files a/dis/lib/dbm.dis and /dev/null differ diff --git a/dis/lib/debdata.dis b/dis/lib/debdata.dis deleted file mode 100644 index 2a420c1a1..000000000 Binary files a/dis/lib/debdata.dis and /dev/null differ diff --git a/dis/lib/debsrc.dis b/dis/lib/debsrc.dis deleted file mode 100644 index d3642c9a3..000000000 Binary files a/dis/lib/debsrc.dis and /dev/null differ diff --git a/dis/lib/debug.dis b/dis/lib/debug.dis deleted file mode 100644 index 15f902293..000000000 Binary files a/dis/lib/debug.dis and /dev/null differ diff --git a/dis/lib/deflate.dis b/dis/lib/deflate.dis deleted file mode 100644 index b5efd299c..000000000 Binary files a/dis/lib/deflate.dis and /dev/null differ diff --git a/dis/lib/devpointer.dis b/dis/lib/devpointer.dis deleted file mode 100644 index c960175e3..000000000 Binary files a/dis/lib/devpointer.dis and /dev/null differ diff --git a/dis/lib/dial.dis b/dis/lib/dial.dis deleted file mode 100644 index be7d21bc8..000000000 Binary files a/dis/lib/dial.dis and /dev/null differ diff --git a/dis/lib/dialnorm.dis b/dis/lib/dialnorm.dis deleted file mode 100644 index fcfc86756..000000000 Binary files a/dis/lib/dialnorm.dis and /dev/null differ diff --git a/dis/lib/dialog.dis b/dis/lib/dialog.dis deleted file mode 100644 index bd63b6278..000000000 Binary files a/dis/lib/dialog.dis and /dev/null differ diff --git a/dis/lib/dict.dis b/dis/lib/dict.dis deleted file mode 100644 index b441bdb86..000000000 Binary files a/dis/lib/dict.dis and /dev/null differ diff --git a/dis/lib/dis.dis b/dis/lib/dis.dis deleted file mode 100644 index d0c48ead4..000000000 Binary files a/dis/lib/dis.dis and /dev/null differ diff --git a/dis/lib/diskblocks.dis b/dis/lib/diskblocks.dis deleted file mode 100644 index 945923833..000000000 Binary files a/dis/lib/diskblocks.dis and /dev/null differ diff --git a/dis/lib/disks.dis b/dis/lib/disks.dis deleted file mode 100644 index 30067520a..000000000 Binary files a/dis/lib/disks.dis and /dev/null differ diff --git a/dis/lib/ecmascript.dis b/dis/lib/ecmascript.dis deleted file mode 100644 index 222788198..000000000 Binary files a/dis/lib/ecmascript.dis and /dev/null differ diff --git a/dis/lib/encoding/base16.dis b/dis/lib/encoding/base16.dis deleted file mode 100644 index d49198b55..000000000 Binary files a/dis/lib/encoding/base16.dis and /dev/null differ diff --git a/dis/lib/encoding/base32.dis b/dis/lib/encoding/base32.dis deleted file mode 100644 index b2540ecf7..000000000 Binary files a/dis/lib/encoding/base32.dis and /dev/null differ diff --git a/dis/lib/encoding/base32a.dis b/dis/lib/encoding/base32a.dis deleted file mode 100644 index 1892cba2f..000000000 Binary files a/dis/lib/encoding/base32a.dis and /dev/null differ diff --git a/dis/lib/encoding/base64.dis b/dis/lib/encoding/base64.dis deleted file mode 100644 index c7213d43b..000000000 Binary files a/dis/lib/encoding/base64.dis and /dev/null differ diff --git a/dis/lib/env.dis b/dis/lib/env.dis deleted file mode 100644 index 7e123e9da..000000000 Binary files a/dis/lib/env.dis and /dev/null differ diff --git a/dis/lib/ethcrypto.dis b/dis/lib/ethcrypto.dis deleted file mode 100644 index ebe6af786..000000000 Binary files a/dis/lib/ethcrypto.dis and /dev/null differ diff --git a/dis/lib/ether.dis b/dis/lib/ether.dis deleted file mode 100644 index c81305bb4..000000000 Binary files a/dis/lib/ether.dis and /dev/null differ diff --git a/dis/lib/ethrpc.dis b/dis/lib/ethrpc.dis deleted file mode 100644 index b5bd5c05e..000000000 Binary files a/dis/lib/ethrpc.dis and /dev/null differ diff --git a/dis/lib/exception.dis b/dis/lib/exception.dis deleted file mode 100644 index 129adca8d..000000000 Binary files a/dis/lib/exception.dis and /dev/null differ diff --git a/dis/lib/factotum.dis b/dis/lib/factotum.dis deleted file mode 100644 index 0b84c422d..000000000 Binary files a/dis/lib/factotum.dis and /dev/null differ diff --git a/dis/lib/fdrun.dis b/dis/lib/fdrun.dis deleted file mode 100644 index f3a90edca..000000000 Binary files a/dis/lib/fdrun.dis and /dev/null differ diff --git a/dis/lib/filepat.dis b/dis/lib/filepat.dis deleted file mode 100644 index f89583611..000000000 Binary files a/dis/lib/filepat.dis and /dev/null differ diff --git a/dis/lib/format.dis b/dis/lib/format.dis deleted file mode 100644 index fd039b390..000000000 Binary files a/dis/lib/format.dis and /dev/null differ diff --git a/dis/lib/fsfilter.dis b/dis/lib/fsfilter.dis deleted file mode 100644 index 097da4889..000000000 Binary files a/dis/lib/fsfilter.dis and /dev/null differ diff --git a/dis/lib/fslib.dis b/dis/lib/fslib.dis deleted file mode 100644 index e11a2285d..000000000 Binary files a/dis/lib/fslib.dis and /dev/null differ diff --git a/dis/lib/fsproto.dis b/dis/lib/fsproto.dis deleted file mode 100644 index 4c891ed2e..000000000 Binary files a/dis/lib/fsproto.dis and /dev/null differ diff --git a/dis/lib/ftree/cptree.dis b/dis/lib/ftree/cptree.dis deleted file mode 100644 index 6f3029f96..000000000 Binary files a/dis/lib/ftree/cptree.dis and /dev/null differ diff --git a/dis/lib/ftree/items.dis b/dis/lib/ftree/items.dis deleted file mode 100644 index 3085594c5..000000000 Binary files a/dis/lib/ftree/items.dis and /dev/null differ diff --git a/dis/lib/geoproj.dis b/dis/lib/geoproj.dis deleted file mode 100644 index 4e57e4d42..000000000 Binary files a/dis/lib/geoproj.dis and /dev/null differ diff --git a/dis/lib/git/git.dis b/dis/lib/git/git.dis deleted file mode 100644 index 86dca4899..000000000 Binary files a/dis/lib/git/git.dis and /dev/null differ diff --git a/dis/lib/hash.dis b/dis/lib/hash.dis deleted file mode 100644 index b14f369a7..000000000 Binary files a/dis/lib/hash.dis and /dev/null differ diff --git a/dis/lib/html.dis b/dis/lib/html.dis deleted file mode 100644 index 132f8bcfb..000000000 Binary files a/dis/lib/html.dis and /dev/null differ diff --git a/dis/lib/ida/ida.dis b/dis/lib/ida/ida.dis deleted file mode 100644 index 58967f9bd..000000000 Binary files a/dis/lib/ida/ida.dis and /dev/null differ diff --git a/dis/lib/ida/idatab.dis b/dis/lib/ida/idatab.dis deleted file mode 100644 index 0c0ac8edc..000000000 Binary files a/dis/lib/ida/idatab.dis and /dev/null differ diff --git a/dis/lib/imageremap.dis b/dis/lib/imageremap.dis deleted file mode 100644 index 3f646d848..000000000 Binary files a/dis/lib/imageremap.dis and /dev/null differ diff --git a/dis/lib/imap.dis b/dis/lib/imap.dis deleted file mode 100644 index f845e8463..000000000 Binary files a/dis/lib/imap.dis and /dev/null differ diff --git a/dis/lib/inflate.dis b/dis/lib/inflate.dis deleted file mode 100644 index d0988012b..000000000 Binary files a/dis/lib/inflate.dis and /dev/null differ diff --git a/dis/lib/ip.dis b/dis/lib/ip.dis deleted file mode 100644 index 3d4fc1267..000000000 Binary files a/dis/lib/ip.dis and /dev/null differ diff --git a/dis/lib/ipattr.dis b/dis/lib/ipattr.dis deleted file mode 100644 index 51eff130e..000000000 Binary files a/dis/lib/ipattr.dis and /dev/null differ diff --git a/dis/lib/json.dis b/dis/lib/json.dis deleted file mode 100644 index bbab7cc0d..000000000 Binary files a/dis/lib/json.dis and /dev/null differ diff --git a/dis/lib/keyringinst.dis b/dis/lib/keyringinst.dis deleted file mode 100644 index 12fb83413..000000000 Binary files a/dis/lib/keyringinst.dis and /dev/null differ diff --git a/dis/lib/keyset.dis b/dis/lib/keyset.dis deleted file mode 100644 index 649e01df7..000000000 Binary files a/dis/lib/keyset.dis and /dev/null differ diff --git a/dis/lib/libc.dis b/dis/lib/libc.dis deleted file mode 100644 index 9673b7cbb..000000000 Binary files a/dis/lib/libc.dis and /dev/null differ diff --git a/dis/lib/libc0.dis b/dis/lib/libc0.dis deleted file mode 100644 index 205ad5251..000000000 Binary files a/dis/lib/libc0.dis and /dev/null differ diff --git a/dis/lib/lists.dis b/dis/lib/lists.dis deleted file mode 100644 index 91317497d..000000000 Binary files a/dis/lib/lists.dis and /dev/null differ diff --git a/dis/lib/llmclient.dis b/dis/lib/llmclient.dis deleted file mode 100644 index 32e1f3ce0..000000000 Binary files a/dis/lib/llmclient.dis and /dev/null differ diff --git a/dis/lib/lock.dis b/dis/lib/lock.dis deleted file mode 100644 index ea94796af..000000000 Binary files a/dis/lib/lock.dis and /dev/null differ diff --git a/dis/lib/login.dis b/dis/lib/login.dis deleted file mode 100644 index 1b6f86349..000000000 Binary files a/dis/lib/login.dis and /dev/null differ diff --git a/dis/lib/lucitheme.dis b/dis/lib/lucitheme.dis deleted file mode 100644 index c8b5eabf0..000000000 Binary files a/dis/lib/lucitheme.dis and /dev/null differ diff --git a/dis/lib/mailparse.dis b/dis/lib/mailparse.dis deleted file mode 100644 index 193f36f87..000000000 Binary files a/dis/lib/mailparse.dis and /dev/null differ diff --git a/dis/lib/matrixlib.dis b/dis/lib/matrixlib.dis deleted file mode 100644 index aa2e6a8af..000000000 Binary files a/dis/lib/matrixlib.dis and /dev/null differ diff --git a/dis/lib/memfs.dis b/dis/lib/memfs.dis deleted file mode 100644 index 544b11032..000000000 Binary files a/dis/lib/memfs.dis and /dev/null differ diff --git a/dis/lib/menu.dis b/dis/lib/menu.dis deleted file mode 100644 index 67582bfd2..000000000 Binary files a/dis/lib/menu.dis and /dev/null differ diff --git a/dis/lib/menuhit.dis b/dis/lib/menuhit.dis deleted file mode 100644 index 0bdcbc93f..000000000 Binary files a/dis/lib/menuhit.dis and /dev/null differ diff --git a/dis/lib/mermaid.dis b/dis/lib/mermaid.dis deleted file mode 100644 index 29ff9c07d..000000000 Binary files a/dis/lib/mermaid.dis and /dev/null differ diff --git a/dis/lib/midi.dis b/dis/lib/midi.dis deleted file mode 100644 index 5e2365665..000000000 Binary files a/dis/lib/midi.dis and /dev/null differ diff --git a/dis/lib/msgio.dis b/dis/lib/msgio.dis deleted file mode 100644 index b6ca99e01..000000000 Binary files a/dis/lib/msgio.dis and /dev/null differ diff --git a/dis/lib/names.dis b/dis/lib/names.dis deleted file mode 100644 index 2eb6f16c0..000000000 Binary files a/dis/lib/names.dis and /dev/null differ diff --git a/dis/lib/nametree.dis b/dis/lib/nametree.dis deleted file mode 100644 index 5e2009f61..000000000 Binary files a/dis/lib/nametree.dis and /dev/null differ diff --git a/dis/lib/newns.dis b/dis/lib/newns.dis deleted file mode 100644 index d63d468b1..000000000 Binary files a/dis/lib/newns.dis and /dev/null differ diff --git a/dis/lib/ninep.dis b/dis/lib/ninep.dis deleted file mode 100644 index 56bab6183..000000000 Binary files a/dis/lib/ninep.dis and /dev/null differ diff --git a/dis/lib/oldauth.dis b/dis/lib/oldauth.dis deleted file mode 100644 index ff4b78d1c..000000000 Binary files a/dis/lib/oldauth.dis and /dev/null differ diff --git a/dis/lib/outlinefont.dis b/dis/lib/outlinefont.dis deleted file mode 100644 index 67149d40e..000000000 Binary files a/dis/lib/outlinefont.dis and /dev/null differ diff --git a/dis/lib/parseman.dis b/dis/lib/parseman.dis deleted file mode 100644 index 951f02699..000000000 Binary files a/dis/lib/parseman.dis and /dev/null differ diff --git a/dis/lib/pdf.dis b/dis/lib/pdf.dis deleted file mode 100644 index 61ee1b98a..000000000 Binary files a/dis/lib/pdf.dis and /dev/null differ diff --git a/dis/lib/plumbing.dis b/dis/lib/plumbing.dis deleted file mode 100644 index 2c9853bc9..000000000 Binary files a/dis/lib/plumbing.dis and /dev/null differ diff --git a/dis/lib/plumbmsg.dis b/dis/lib/plumbmsg.dis deleted file mode 100644 index 3cad1dc0c..000000000 Binary files a/dis/lib/plumbmsg.dis and /dev/null differ diff --git a/dis/lib/pop3.dis b/dis/lib/pop3.dis deleted file mode 100644 index e8aba762d..000000000 Binary files a/dis/lib/pop3.dis and /dev/null differ diff --git a/dis/lib/popup.dis b/dis/lib/popup.dis deleted file mode 100644 index 3b78601fa..000000000 Binary files a/dis/lib/popup.dis and /dev/null differ diff --git a/dis/lib/profile.dis b/dis/lib/profile.dis deleted file mode 100644 index a665e91ce..000000000 Binary files a/dis/lib/profile.dis and /dev/null differ diff --git a/dis/lib/pslib.dis b/dis/lib/pslib.dis deleted file mode 100644 index 3e679ba42..000000000 Binary files a/dis/lib/pslib.dis and /dev/null differ diff --git a/dis/lib/publicnet.dis b/dis/lib/publicnet.dis deleted file mode 100644 index 5b1918d88..000000000 Binary files a/dis/lib/publicnet.dis and /dev/null differ diff --git a/dis/lib/rabin.dis b/dis/lib/rabin.dis deleted file mode 100644 index a0f6ad112..000000000 Binary files a/dis/lib/rabin.dis and /dev/null differ diff --git a/dis/lib/rand.dis b/dis/lib/rand.dis deleted file mode 100644 index 995773f68..000000000 Binary files a/dis/lib/rand.dis and /dev/null differ diff --git a/dis/lib/random.dis b/dis/lib/random.dis deleted file mode 100644 index 6516e86bb..000000000 Binary files a/dis/lib/random.dis and /dev/null differ diff --git a/dis/lib/readavif.dis b/dis/lib/readavif.dis deleted file mode 100644 index 236150a1a..000000000 Binary files a/dis/lib/readavif.dis and /dev/null differ diff --git a/dis/lib/readdir.dis b/dis/lib/readdir.dis deleted file mode 100644 index 5bf40ed9c..000000000 Binary files a/dis/lib/readdir.dis and /dev/null differ diff --git a/dis/lib/readgif.dis b/dis/lib/readgif.dis deleted file mode 100644 index 778642061..000000000 Binary files a/dis/lib/readgif.dis and /dev/null differ diff --git a/dis/lib/readjpg.dis b/dis/lib/readjpg.dis deleted file mode 100644 index 4c4eb2898..000000000 Binary files a/dis/lib/readjpg.dis and /dev/null differ diff --git a/dis/lib/readpicfile.dis b/dis/lib/readpicfile.dis deleted file mode 100644 index 2db833721..000000000 Binary files a/dis/lib/readpicfile.dis and /dev/null differ diff --git a/dis/lib/readpng.dis b/dis/lib/readpng.dis deleted file mode 100644 index e86851d63..000000000 Binary files a/dis/lib/readpng.dis and /dev/null differ diff --git a/dis/lib/readsvg.dis b/dis/lib/readsvg.dis deleted file mode 100644 index bcc489e31..000000000 Binary files a/dis/lib/readsvg.dis and /dev/null differ diff --git a/dis/lib/readwebp.dis b/dis/lib/readwebp.dis deleted file mode 100644 index 064ad3451..000000000 Binary files a/dis/lib/readwebp.dis and /dev/null differ diff --git a/dis/lib/readxbitmap.dis b/dis/lib/readxbitmap.dis deleted file mode 100644 index b85506554..000000000 Binary files a/dis/lib/readxbitmap.dis and /dev/null differ diff --git a/dis/lib/regex.dis b/dis/lib/regex.dis deleted file mode 100644 index 9ac5ff0c1..000000000 Binary files a/dis/lib/regex.dis and /dev/null differ diff --git a/dis/lib/regexutils.dis b/dis/lib/regexutils.dis deleted file mode 100644 index 4c52566da..000000000 Binary files a/dis/lib/regexutils.dis and /dev/null differ diff --git a/dis/lib/registries.dis b/dis/lib/registries.dis deleted file mode 100644 index 327c28d64..000000000 Binary files a/dis/lib/registries.dis and /dev/null differ diff --git a/dis/lib/rfc3339.dis b/dis/lib/rfc3339.dis deleted file mode 100644 index df56d96da..000000000 Binary files a/dis/lib/rfc3339.dis and /dev/null differ diff --git a/dis/lib/rfc822.dis b/dis/lib/rfc822.dis deleted file mode 100644 index 382442fa2..000000000 Binary files a/dis/lib/rfc822.dis and /dev/null differ diff --git a/dis/lib/scoretable.dis b/dis/lib/scoretable.dis deleted file mode 100644 index 9f761e28d..000000000 Binary files a/dis/lib/scoretable.dis and /dev/null differ diff --git a/dis/lib/secstore.dis b/dis/lib/secstore.dis deleted file mode 100644 index 1fea98c0b..000000000 Binary files a/dis/lib/secstore.dis and /dev/null differ diff --git a/dis/lib/selectfile.dis b/dis/lib/selectfile.dis deleted file mode 100644 index c6764eea4..000000000 Binary files a/dis/lib/selectfile.dis and /dev/null differ diff --git a/dis/lib/sets.dis b/dis/lib/sets.dis deleted file mode 100644 index 825cb7696..000000000 Binary files a/dis/lib/sets.dis and /dev/null differ diff --git a/dis/lib/sets32.dis b/dis/lib/sets32.dis deleted file mode 100644 index 7092a0075..000000000 Binary files a/dis/lib/sets32.dis and /dev/null differ diff --git a/dis/lib/sexprs.dis b/dis/lib/sexprs.dis deleted file mode 100644 index d671496d1..000000000 Binary files a/dis/lib/sexprs.dis and /dev/null differ diff --git a/dis/lib/slip.dis b/dis/lib/slip.dis deleted file mode 100644 index 4d27f0102..000000000 Binary files a/dis/lib/slip.dis and /dev/null differ diff --git a/dis/lib/smtp.dis b/dis/lib/smtp.dis deleted file mode 100644 index 710af1266..000000000 Binary files a/dis/lib/smtp.dis and /dev/null differ diff --git a/dis/lib/softkbd.dis b/dis/lib/softkbd.dis deleted file mode 100644 index 0a34e0c9f..000000000 Binary files a/dis/lib/softkbd.dis and /dev/null differ diff --git a/dis/lib/sort.dis b/dis/lib/sort.dis deleted file mode 100644 index 8fc7d7cb4..000000000 Binary files a/dis/lib/sort.dis and /dev/null differ diff --git a/dis/lib/spki/spki.dis b/dis/lib/spki/spki.dis deleted file mode 100644 index 5876eea83..000000000 Binary files a/dis/lib/spki/spki.dis and /dev/null differ diff --git a/dis/lib/spki/verifier.dis b/dis/lib/spki/verifier.dis deleted file mode 100644 index 12ce41db4..000000000 Binary files a/dis/lib/spki/verifier.dis and /dev/null differ diff --git a/dis/lib/ssl.dis b/dis/lib/ssl.dis deleted file mode 100644 index 32e7edc80..000000000 Binary files a/dis/lib/ssl.dis and /dev/null differ diff --git a/dis/lib/string.dis b/dis/lib/string.dis deleted file mode 100644 index dbaee4c17..000000000 Binary files a/dis/lib/string.dis and /dev/null differ diff --git a/dis/lib/strinttab.dis b/dis/lib/strinttab.dis deleted file mode 100644 index b260e70a6..000000000 Binary files a/dis/lib/strinttab.dis and /dev/null differ diff --git a/dis/lib/stripe.dis b/dis/lib/stripe.dis deleted file mode 100644 index 847dc76fd..000000000 Binary files a/dis/lib/stripe.dis and /dev/null differ diff --git a/dis/lib/styx.dis b/dis/lib/styx.dis deleted file mode 100644 index bd361ff51..000000000 Binary files a/dis/lib/styx.dis and /dev/null differ diff --git a/dis/lib/styxflush.dis b/dis/lib/styxflush.dis deleted file mode 100644 index 24e2e6c24..000000000 Binary files a/dis/lib/styxflush.dis and /dev/null differ diff --git a/dis/lib/styxlib.dis b/dis/lib/styxlib.dis deleted file mode 100644 index 743a06f87..000000000 Binary files a/dis/lib/styxlib.dis and /dev/null differ diff --git a/dis/lib/styxpersist.dis b/dis/lib/styxpersist.dis deleted file mode 100644 index 210f9cbb2..000000000 Binary files a/dis/lib/styxpersist.dis and /dev/null differ diff --git a/dis/lib/styxservers.dis b/dis/lib/styxservers.dis deleted file mode 100644 index abef522bf..000000000 Binary files a/dis/lib/styxservers.dis and /dev/null differ diff --git a/dis/lib/tables.dis b/dis/lib/tables.dis deleted file mode 100644 index cde518e44..000000000 Binary files a/dis/lib/tables.dis and /dev/null differ diff --git a/dis/lib/tabs.dis b/dis/lib/tabs.dis deleted file mode 100644 index 67881e040..000000000 Binary files a/dis/lib/tabs.dis and /dev/null differ diff --git a/dis/lib/testing.dis b/dis/lib/testing.dis deleted file mode 100644 index 470123a74..000000000 Binary files a/dis/lib/testing.dis and /dev/null differ diff --git a/dis/lib/textwidget.dis b/dis/lib/textwidget.dis deleted file mode 100644 index 1fd0e23e8..000000000 Binary files a/dis/lib/textwidget.dis and /dev/null differ diff --git a/dis/lib/tftp.dis b/dis/lib/tftp.dis deleted file mode 100644 index b9222dbcf..000000000 Binary files a/dis/lib/tftp.dis and /dev/null differ diff --git a/dis/lib/timers.dis b/dis/lib/timers.dis deleted file mode 100644 index 7554f4819..000000000 Binary files a/dis/lib/timers.dis and /dev/null differ diff --git a/dis/lib/titlebar.dis b/dis/lib/titlebar.dis deleted file mode 100644 index 3740e9fea..000000000 Binary files a/dis/lib/titlebar.dis and /dev/null differ diff --git a/dis/lib/tkclient.dis b/dis/lib/tkclient.dis deleted file mode 100644 index 73d9afa45..000000000 Binary files a/dis/lib/tkclient.dis and /dev/null differ diff --git a/dis/lib/translate.dis b/dis/lib/translate.dis deleted file mode 100644 index 9c4747488..000000000 Binary files a/dis/lib/translate.dis and /dev/null differ diff --git a/dis/lib/twofa.dis b/dis/lib/twofa.dis deleted file mode 100644 index 005e66d3c..000000000 Binary files a/dis/lib/twofa.dis and /dev/null differ diff --git a/dis/lib/twofaslot.dis b/dis/lib/twofaslot.dis deleted file mode 100644 index aa6df282b..000000000 Binary files a/dis/lib/twofaslot.dis and /dev/null differ diff --git a/dis/lib/ubfa.dis b/dis/lib/ubfa.dis deleted file mode 100644 index ac982cfcb..000000000 Binary files a/dis/lib/ubfa.dis and /dev/null differ diff --git a/dis/lib/url.dis b/dis/lib/url.dis deleted file mode 100644 index 532e9ce86..000000000 Binary files a/dis/lib/url.dis and /dev/null differ diff --git a/dis/lib/vac.dis b/dis/lib/vac.dis deleted file mode 100644 index fe9432c12..000000000 Binary files a/dis/lib/vac.dis and /dev/null differ diff --git a/dis/lib/venti.dis b/dis/lib/venti.dis deleted file mode 100644 index 6f89d3beb..000000000 Binary files a/dis/lib/venti.dis and /dev/null differ diff --git a/dis/lib/viewport.dis b/dis/lib/viewport.dis deleted file mode 100644 index d89164084..000000000 Binary files a/dis/lib/viewport.dis and /dev/null differ diff --git a/dis/lib/virgil.dis b/dis/lib/virgil.dis deleted file mode 100644 index c05994996..000000000 Binary files a/dis/lib/virgil.dis and /dev/null differ diff --git a/dis/lib/w3c/css.dis b/dis/lib/w3c/css.dis deleted file mode 100644 index a47a2d04a..000000000 Binary files a/dis/lib/w3c/css.dis and /dev/null differ diff --git a/dis/lib/w3c/uris.dis b/dis/lib/w3c/uris.dis deleted file mode 100644 index 3b62c8c4b..000000000 Binary files a/dis/lib/w3c/uris.dis and /dev/null differ diff --git a/dis/lib/w3c/xpointers.dis b/dis/lib/w3c/xpointers.dis deleted file mode 100644 index 8f046a177..000000000 Binary files a/dis/lib/w3c/xpointers.dis and /dev/null differ diff --git a/dis/lib/wait.dis b/dis/lib/wait.dis deleted file mode 100644 index 9ca3b5279..000000000 Binary files a/dis/lib/wait.dis and /dev/null differ diff --git a/dis/lib/wallet.dis b/dis/lib/wallet.dis deleted file mode 100644 index c910b4fa5..000000000 Binary files a/dis/lib/wallet.dis and /dev/null differ diff --git a/dis/lib/watchvars.dis b/dis/lib/watchvars.dis deleted file mode 100644 index 3c2f9fffa..000000000 Binary files a/dis/lib/watchvars.dis and /dev/null differ diff --git a/dis/lib/web.dis b/dis/lib/web.dis deleted file mode 100644 index af8a98a07..000000000 Binary files a/dis/lib/web.dis and /dev/null differ diff --git a/dis/lib/webclient.dis b/dis/lib/webclient.dis deleted file mode 100644 index d8681b9a1..000000000 Binary files a/dis/lib/webclient.dis and /dev/null differ diff --git a/dis/lib/winplace.dis b/dis/lib/winplace.dis deleted file mode 100644 index 78071cb18..000000000 Binary files a/dis/lib/winplace.dis and /dev/null differ diff --git a/dis/lib/wirefmt.dis b/dis/lib/wirefmt.dis deleted file mode 100644 index 59ba9b2ed..000000000 Binary files a/dis/lib/wirefmt.dis and /dev/null differ diff --git a/dis/lib/wmclient.dis b/dis/lib/wmclient.dis deleted file mode 100644 index af2f6b614..000000000 Binary files a/dis/lib/wmclient.dis and /dev/null differ diff --git a/dis/lib/wmlib.dis b/dis/lib/wmlib.dis deleted file mode 100644 index f58804f22..000000000 Binary files a/dis/lib/wmlib.dis and /dev/null differ diff --git a/dis/lib/wmsrv.dis b/dis/lib/wmsrv.dis deleted file mode 100644 index b1a1cd629..000000000 Binary files a/dis/lib/wmsrv.dis and /dev/null differ diff --git a/dis/lib/workdir.dis b/dis/lib/workdir.dis deleted file mode 100644 index 40c01ac89..000000000 Binary files a/dis/lib/workdir.dis and /dev/null differ diff --git a/dis/lib/writegif.dis b/dis/lib/writegif.dis deleted file mode 100644 index fcc718395..000000000 Binary files a/dis/lib/writegif.dis and /dev/null differ diff --git a/dis/lib/x402.dis b/dis/lib/x402.dis deleted file mode 100644 index 70d6d4f4a..000000000 Binary files a/dis/lib/x402.dis and /dev/null differ diff --git a/dis/lib/xenithwin.dis b/dis/lib/xenithwin.dis deleted file mode 100644 index e1f8713b2..000000000 Binary files a/dis/lib/xenithwin.dis and /dev/null differ diff --git a/dis/lib/xml.dis b/dis/lib/xml.dis deleted file mode 100644 index b8e2c00d4..000000000 Binary files a/dis/lib/xml.dis and /dev/null differ diff --git a/dis/limbo.dis b/dis/limbo.dis deleted file mode 100644 index a8399a4b9..000000000 Binary files a/dis/limbo.dis and /dev/null differ diff --git a/dis/limbtest.dis b/dis/limbtest.dis deleted file mode 100644 index 33f61d3ee..000000000 Binary files a/dis/limbtest.dis and /dev/null differ diff --git a/dis/listen.dis b/dis/listen.dis deleted file mode 100644 index f537380fc..000000000 Binary files a/dis/listen.dis and /dev/null differ diff --git a/dis/llmctl9p.dis b/dis/llmctl9p.dis deleted file mode 100644 index 93bf8cff0..000000000 Binary files a/dis/llmctl9p.dis and /dev/null differ diff --git a/dis/llmsrv.dis b/dis/llmsrv.dis deleted file mode 100644 index a051aa81d..000000000 Binary files a/dis/llmsrv.dis and /dev/null differ diff --git a/dis/localcron.dis b/dis/localcron.dis deleted file mode 100644 index 87cefce3d..000000000 Binary files a/dis/localcron.dis and /dev/null differ diff --git a/dis/lockfs.dis b/dis/lockfs.dis deleted file mode 100644 index 245603991..000000000 Binary files a/dis/lockfs.dis and /dev/null differ diff --git a/dis/logfile.dis b/dis/logfile.dis deleted file mode 100644 index ee22500e9..000000000 Binary files a/dis/logfile.dis and /dev/null differ diff --git a/dis/look.dis b/dis/look.dis deleted file mode 100644 index 81194cd8b..000000000 Binary files a/dis/look.dis and /dev/null differ diff --git a/dis/ls.dis b/dis/ls.dis deleted file mode 100644 index efe9039a7..000000000 Binary files a/dis/ls.dis and /dev/null differ diff --git a/dis/lstar.dis b/dis/lstar.dis deleted file mode 100644 index 27fceb888..000000000 Binary files a/dis/lstar.dis and /dev/null differ diff --git a/dis/lucibridge.dis b/dis/lucibridge.dis deleted file mode 100644 index a4d3996dc..000000000 Binary files a/dis/lucibridge.dis and /dev/null differ diff --git a/dis/luciconv.dis b/dis/luciconv.dis deleted file mode 100644 index 97d4830c5..000000000 Binary files a/dis/luciconv.dis and /dev/null differ diff --git a/dis/lucictx.dis b/dis/lucictx.dis deleted file mode 100644 index 26abccffd..000000000 Binary files a/dis/lucictx.dis and /dev/null differ diff --git a/dis/lucifer.dis b/dis/lucifer.dis deleted file mode 100644 index 5a3c37fb0..000000000 Binary files a/dis/lucifer.dis and /dev/null differ diff --git a/dis/lucipres.dis b/dis/lucipres.dis deleted file mode 100644 index 5b29427c6..000000000 Binary files a/dis/lucipres.dis and /dev/null differ diff --git a/dis/luciuisrv.dis b/dis/luciuisrv.dis deleted file mode 100644 index b9d2072cf..000000000 Binary files a/dis/luciuisrv.dis and /dev/null differ diff --git a/dis/m4.dis b/dis/m4.dis deleted file mode 100644 index 32ecd950e..000000000 Binary files a/dis/m4.dis and /dev/null differ diff --git a/dis/mail9p.dis b/dis/mail9p.dis deleted file mode 100644 index 41b82f62a..000000000 Binary files a/dis/mail9p.dis and /dev/null differ diff --git a/dis/man2html.dis b/dis/man2html.dis deleted file mode 100644 index 5137a345b..000000000 Binary files a/dis/man2html.dis and /dev/null differ diff --git a/dis/man2txt.dis b/dis/man2txt.dis deleted file mode 100644 index bc530b42a..000000000 Binary files a/dis/man2txt.dis and /dev/null differ diff --git a/dis/math/ack.dis b/dis/math/ack.dis deleted file mode 100644 index 919e6cf1b..000000000 Binary files a/dis/math/ack.dis and /dev/null differ diff --git a/dis/math/crackerbarrel.dis b/dis/math/crackerbarrel.dis deleted file mode 100644 index 56a9f6da9..000000000 Binary files a/dis/math/crackerbarrel.dis and /dev/null differ diff --git a/dis/math/factor.dis b/dis/math/factor.dis deleted file mode 100644 index 8df549e3c..000000000 Binary files a/dis/math/factor.dis and /dev/null differ diff --git a/dis/math/ffts.dis b/dis/math/ffts.dis deleted file mode 100644 index a32a13714..000000000 Binary files a/dis/math/ffts.dis and /dev/null differ diff --git a/dis/math/fibonacci.dis b/dis/math/fibonacci.dis deleted file mode 100644 index 057520e7a..000000000 Binary files a/dis/math/fibonacci.dis and /dev/null differ diff --git a/dis/math/fit.dis b/dis/math/fit.dis deleted file mode 100644 index 77c3fcdae..000000000 Binary files a/dis/math/fit.dis and /dev/null differ diff --git a/dis/math/genprimes.dis b/dis/math/genprimes.dis deleted file mode 100644 index fa906156a..000000000 Binary files a/dis/math/genprimes.dis and /dev/null differ diff --git a/dis/math/geodesy.dis b/dis/math/geodesy.dis deleted file mode 100644 index 15636a048..000000000 Binary files a/dis/math/geodesy.dis and /dev/null differ diff --git a/dis/math/gr.dis b/dis/math/gr.dis deleted file mode 100644 index 50ed6fe52..000000000 Binary files a/dis/math/gr.dis and /dev/null differ diff --git a/dis/math/graph0.dis b/dis/math/graph0.dis deleted file mode 100644 index f5084b431..000000000 Binary files a/dis/math/graph0.dis and /dev/null differ diff --git a/dis/math/hist0.dis b/dis/math/hist0.dis deleted file mode 100644 index 3a6eb22a7..000000000 Binary files a/dis/math/hist0.dis and /dev/null differ diff --git a/dis/math/linalg.dis b/dis/math/linalg.dis deleted file mode 100644 index 527359b90..000000000 Binary files a/dis/math/linalg.dis and /dev/null differ diff --git a/dis/math/linbench.dis b/dis/math/linbench.dis deleted file mode 100644 index 120d1cc4c..000000000 Binary files a/dis/math/linbench.dis and /dev/null differ diff --git a/dis/math/mersenne.dis b/dis/math/mersenne.dis deleted file mode 100644 index b95838877..000000000 Binary files a/dis/math/mersenne.dis and /dev/null differ diff --git a/dis/math/parts.dis b/dis/math/parts.dis deleted file mode 100644 index 7a4218488..000000000 Binary files a/dis/math/parts.dis and /dev/null differ diff --git a/dis/math/perms.dis b/dis/math/perms.dis deleted file mode 100644 index ec935576e..000000000 Binary files a/dis/math/perms.dis and /dev/null differ diff --git a/dis/math/pi.dis b/dis/math/pi.dis deleted file mode 100644 index 8fecd9242..000000000 Binary files a/dis/math/pi.dis and /dev/null differ diff --git a/dis/math/polyfill.dis b/dis/math/polyfill.dis deleted file mode 100644 index 67667a60e..000000000 Binary files a/dis/math/polyfill.dis and /dev/null differ diff --git a/dis/math/polyhedra.dis b/dis/math/polyhedra.dis deleted file mode 100644 index e8f11c07e..000000000 Binary files a/dis/math/polyhedra.dis and /dev/null differ diff --git a/dis/math/powers.dis b/dis/math/powers.dis deleted file mode 100644 index b9369271e..000000000 Binary files a/dis/math/powers.dis and /dev/null differ diff --git a/dis/math/primes.dis b/dis/math/primes.dis deleted file mode 100644 index 705cbcd1a..000000000 Binary files a/dis/math/primes.dis and /dev/null differ diff --git a/dis/math/sieve.dis b/dis/math/sieve.dis deleted file mode 100644 index b767e7f95..000000000 Binary files a/dis/math/sieve.dis and /dev/null differ diff --git a/dis/matrix/alert-watcher.dis b/dis/matrix/alert-watcher.dis deleted file mode 100644 index bf0b03238..000000000 Binary files a/dis/matrix/alert-watcher.dis and /dev/null differ diff --git a/dis/matrix/comp-list.dis b/dis/matrix/comp-list.dis deleted file mode 100644 index 224da5e8f..000000000 Binary files a/dis/matrix/comp-list.dis and /dev/null differ diff --git a/dis/matrix/cpu-gauge.dis b/dis/matrix/cpu-gauge.dis deleted file mode 100644 index 2311b7e9d..000000000 Binary files a/dis/matrix/cpu-gauge.dis and /dev/null differ diff --git a/dis/matrix/geo-fixture.dis b/dis/matrix/geo-fixture.dis deleted file mode 100644 index 84640cce8..000000000 Binary files a/dis/matrix/geo-fixture.dis and /dev/null differ diff --git a/dis/matrix/geo-map.dis b/dis/matrix/geo-map.dis deleted file mode 100644 index a3066fef2..000000000 Binary files a/dis/matrix/geo-map.dis and /dev/null differ diff --git a/dis/matrix/line-plot.dis b/dis/matrix/line-plot.dis deleted file mode 100644 index 830c83e6c..000000000 Binary files a/dis/matrix/line-plot.dis and /dev/null differ diff --git a/dis/matrix/llm-context.dis b/dis/matrix/llm-context.dis deleted file mode 100644 index dad608c8c..000000000 Binary files a/dis/matrix/llm-context.dis and /dev/null differ diff --git a/dis/matrix/llm-recorder.dis b/dis/matrix/llm-recorder.dis deleted file mode 100644 index 08da885b1..000000000 Binary files a/dis/matrix/llm-recorder.dis and /dev/null differ diff --git a/dis/matrix/llm-sessions.dis b/dis/matrix/llm-sessions.dis deleted file mode 100644 index 1be1024fa..000000000 Binary files a/dis/matrix/llm-sessions.dis and /dev/null differ diff --git a/dis/matrix/mem-gauge.dis b/dis/matrix/mem-gauge.dis deleted file mode 100644 index a838ff157..000000000 Binary files a/dis/matrix/mem-gauge.dis and /dev/null differ diff --git a/dis/matrix/net-gauge.dis b/dis/matrix/net-gauge.dis deleted file mode 100644 index bd9d91f72..000000000 Binary files a/dis/matrix/net-gauge.dis and /dev/null differ diff --git a/dis/matrix/position-table.dis b/dis/matrix/position-table.dis deleted file mode 100644 index addf76ff7..000000000 Binary files a/dis/matrix/position-table.dis and /dev/null differ diff --git a/dis/matrix/proc-list.dis b/dis/matrix/proc-list.dis deleted file mode 100644 index 299a55f3e..000000000 Binary files a/dis/matrix/proc-list.dis and /dev/null differ diff --git a/dis/matrix/risk-gauge.dis b/dis/matrix/risk-gauge.dis deleted file mode 100644 index c06037b26..000000000 Binary files a/dis/matrix/risk-gauge.dis and /dev/null differ diff --git a/dis/matrix/signal-feed.dis b/dis/matrix/signal-feed.dis deleted file mode 100644 index 396e80e01..000000000 Binary files a/dis/matrix/signal-feed.dis and /dev/null differ diff --git a/dis/matrix/sparkline.dis b/dis/matrix/sparkline.dis deleted file mode 100644 index 2874eb5f5..000000000 Binary files a/dis/matrix/sparkline.dis and /dev/null differ diff --git a/dis/matrix/sysmon-svc.dis b/dis/matrix/sysmon-svc.dis deleted file mode 100644 index fdd69df56..000000000 Binary files a/dis/matrix/sysmon-svc.dis and /dev/null differ diff --git a/dis/matrix/tk-notes.dis b/dis/matrix/tk-notes.dis deleted file mode 100644 index cd917352d..000000000 Binary files a/dis/matrix/tk-notes.dis and /dev/null differ diff --git a/dis/matrix/video-ctl.dis b/dis/matrix/video-ctl.dis deleted file mode 100644 index ae06e7483..000000000 Binary files a/dis/matrix/video-ctl.dis and /dev/null differ diff --git a/dis/matrix/video-overlay.dis b/dis/matrix/video-overlay.dis deleted file mode 100644 index 5f3030631..000000000 Binary files a/dis/matrix/video-overlay.dis and /dev/null differ diff --git a/dis/matrix/video-pane.dis b/dis/matrix/video-pane.dis deleted file mode 100644 index 4e835f222..000000000 Binary files a/dis/matrix/video-pane.dis and /dev/null differ diff --git a/dis/mc.dis b/dis/mc.dis deleted file mode 100644 index 94fd71530..000000000 Binary files a/dis/mc.dis and /dev/null differ diff --git a/dis/md5sum.dis b/dis/md5sum.dis deleted file mode 100644 index 6cdbc5bf3..000000000 Binary files a/dis/md5sum.dis and /dev/null differ diff --git a/dis/mdb.dis b/dis/mdb.dis deleted file mode 100644 index 487bfe0d1..000000000 Binary files a/dis/mdb.dis and /dev/null differ diff --git a/dis/memfs.dis b/dis/memfs.dis deleted file mode 100644 index 9dd3a5b3e..000000000 Binary files a/dis/memfs.dis and /dev/null differ diff --git a/dis/mermaid_test.dis b/dis/mermaid_test.dis deleted file mode 100644 index 52ea669ae..000000000 Binary files a/dis/mermaid_test.dis and /dev/null differ diff --git a/dis/mk.dis b/dis/mk.dis deleted file mode 100644 index e4d42f6ec..000000000 Binary files a/dis/mk.dis and /dev/null differ diff --git a/dis/mkdir.dis b/dis/mkdir.dis deleted file mode 100644 index 6480c52e8..000000000 Binary files a/dis/mkdir.dis and /dev/null differ diff --git a/dis/mkroot.dis b/dis/mkroot.dis deleted file mode 100644 index c5a17e321..000000000 Binary files a/dis/mkroot.dis and /dev/null differ diff --git a/dis/mntgen.dis b/dis/mntgen.dis deleted file mode 100644 index 65e9269eb..000000000 Binary files a/dis/mntgen.dis and /dev/null differ diff --git a/dis/mount.dis b/dis/mount.dis deleted file mode 100644 index a8d40311c..000000000 Binary files a/dis/mount.dis and /dev/null differ diff --git a/dis/mpeg/decode.dis b/dis/mpeg/decode.dis deleted file mode 100644 index 05ca27696..000000000 Binary files a/dis/mpeg/decode.dis and /dev/null differ diff --git a/dis/mpeg/mpegio.dis b/dis/mpeg/mpegio.dis deleted file mode 100644 index e5f990cf8..000000000 Binary files a/dis/mpeg/mpegio.dis and /dev/null differ diff --git a/dis/mpeg/mpegperf.dis b/dis/mpeg/mpegperf.dis deleted file mode 100644 index d2aed2b03..000000000 Binary files a/dis/mpeg/mpegperf.dis and /dev/null differ diff --git a/dis/mpeg/mpegtest.dis b/dis/mpeg/mpegtest.dis deleted file mode 100644 index a5e03c76b..000000000 Binary files a/dis/mpeg/mpegtest.dis and /dev/null differ diff --git a/dis/mpeg/remap24.dis b/dis/mpeg/remap24.dis deleted file mode 100644 index 5ab80255c..000000000 Binary files a/dis/mpeg/remap24.dis and /dev/null differ diff --git a/dis/mpeg/scidct.dis b/dis/mpeg/scidct.dis deleted file mode 100644 index 6bd7b2913..000000000 Binary files a/dis/mpeg/scidct.dis and /dev/null differ diff --git a/dis/mpeg/vidplay.dis b/dis/mpeg/vidplay.dis deleted file mode 100644 index ac24c25f0..000000000 Binary files a/dis/mpeg/vidplay.dis and /dev/null differ diff --git a/dis/mpeg/vidplay9p.dis b/dis/mpeg/vidplay9p.dis deleted file mode 100644 index 8afc0c250..000000000 Binary files a/dis/mpeg/vidplay9p.dis and /dev/null differ diff --git a/dis/mprof.dis b/dis/mprof.dis deleted file mode 100644 index f7eeb1f27..000000000 Binary files a/dis/mprof.dis and /dev/null differ diff --git a/dis/mv.dis b/dis/mv.dis deleted file mode 100644 index aeafa3404..000000000 Binary files a/dis/mv.dis and /dev/null differ diff --git a/dis/ndb/cs.dis b/dis/ndb/cs.dis deleted file mode 100644 index f5f159de0..000000000 Binary files a/dis/ndb/cs.dis and /dev/null differ diff --git a/dis/ndb/csquery.dis b/dis/ndb/csquery.dis deleted file mode 100644 index 60fa1e514..000000000 Binary files a/dis/ndb/csquery.dis and /dev/null differ diff --git a/dis/ndb/dns.dis b/dis/ndb/dns.dis deleted file mode 100644 index 05448e5c7..000000000 Binary files a/dis/ndb/dns.dis and /dev/null differ diff --git a/dis/ndb/dnsquery.dis b/dis/ndb/dnsquery.dis deleted file mode 100644 index 26045d7cf..000000000 Binary files a/dis/ndb/dnsquery.dis and /dev/null differ diff --git a/dis/ndb/ipquery.dis b/dis/ndb/ipquery.dis deleted file mode 100644 index 9078f3419..000000000 Binary files a/dis/ndb/ipquery.dis and /dev/null differ diff --git a/dis/ndb/mkhash.dis b/dis/ndb/mkhash.dis deleted file mode 100644 index 009d4cd48..000000000 Binary files a/dis/ndb/mkhash.dis and /dev/null differ diff --git a/dis/ndb/query.dis b/dis/ndb/query.dis deleted file mode 100644 index 32cf0ea65..000000000 Binary files a/dis/ndb/query.dis and /dev/null differ diff --git a/dis/ndb/registry.dis b/dis/ndb/registry.dis deleted file mode 100644 index da84a14d4..000000000 Binary files a/dis/ndb/registry.dis and /dev/null differ diff --git a/dis/ndb/regquery.dis b/dis/ndb/regquery.dis deleted file mode 100644 index 571aab4fd..000000000 Binary files a/dis/ndb/regquery.dis and /dev/null differ diff --git a/dis/netkey.dis b/dis/netkey.dis deleted file mode 100644 index adaddfa59..000000000 Binary files a/dis/netkey.dis and /dev/null differ diff --git a/dis/netstat.dis b/dis/netstat.dis deleted file mode 100644 index ce3b920e8..000000000 Binary files a/dis/netstat.dis and /dev/null differ diff --git a/dis/newer.dis b/dis/newer.dis deleted file mode 100644 index ea3668a84..000000000 Binary files a/dis/newer.dis and /dev/null differ diff --git a/dis/newuser.dis b/dis/newuser.dis deleted file mode 100644 index 353fa7656..000000000 Binary files a/dis/newuser.dis and /dev/null differ diff --git a/dis/ns.dis b/dis/ns.dis deleted file mode 100644 index bafb27ceb..000000000 Binary files a/dis/ns.dis and /dev/null differ diff --git a/dis/nsaudit.dis b/dis/nsaudit.dis deleted file mode 100644 index 997129297..000000000 Binary files a/dis/nsaudit.dis and /dev/null differ diff --git a/dis/nsbuild.dis b/dis/nsbuild.dis deleted file mode 100644 index 3976dd4e3..000000000 Binary files a/dis/nsbuild.dis and /dev/null differ diff --git a/dis/os.dis b/dis/os.dis deleted file mode 100644 index 0008f3f05..000000000 Binary files a/dis/os.dis and /dev/null differ diff --git a/dis/p.dis b/dis/p.dis deleted file mode 100644 index 12bd25eb7..000000000 Binary files a/dis/p.dis and /dev/null differ diff --git a/dis/pause.dis b/dis/pause.dis deleted file mode 100644 index 9303fe42c..000000000 Binary files a/dis/pause.dis and /dev/null differ diff --git a/dis/pipefile.dis b/dis/pipefile.dis deleted file mode 100644 index d97dd41c3..000000000 Binary files a/dis/pipefile.dis and /dev/null differ diff --git a/dis/pipefs.dis b/dis/pipefs.dis deleted file mode 100644 index c6dbc6a0c..000000000 Binary files a/dis/pipefs.dis and /dev/null differ diff --git a/dis/plumb.dis b/dis/plumb.dis deleted file mode 100644 index 908aa1d2c..000000000 Binary files a/dis/plumb.dis and /dev/null differ diff --git a/dis/plumber.dis b/dis/plumber.dis deleted file mode 100644 index 5faf2b20b..000000000 Binary files a/dis/plumber.dis and /dev/null differ diff --git a/dis/prof.dis b/dis/prof.dis deleted file mode 100644 index 4ee9b28dc..000000000 Binary files a/dis/prof.dis and /dev/null differ diff --git a/dis/ps.dis b/dis/ps.dis deleted file mode 100644 index b95aa9501..000000000 Binary files a/dis/ps.dis and /dev/null differ diff --git a/dis/puttar.dis b/dis/puttar.dis deleted file mode 100644 index c0278e839..000000000 Binary files a/dis/puttar.dis and /dev/null differ diff --git a/dis/pwd.dis b/dis/pwd.dis deleted file mode 100644 index 39b42ec8e..000000000 Binary files a/dis/pwd.dis and /dev/null differ diff --git a/dis/ramfile.dis b/dis/ramfile.dis deleted file mode 100644 index 24064b958..000000000 Binary files a/dis/ramfile.dis and /dev/null differ diff --git a/dis/randpass.dis b/dis/randpass.dis deleted file mode 100644 index 33835dbb0..000000000 Binary files a/dis/randpass.dis and /dev/null differ diff --git a/dis/raw2iaf.dis b/dis/raw2iaf.dis deleted file mode 100644 index f74582ab2..000000000 Binary files a/dis/raw2iaf.dis and /dev/null differ diff --git a/dis/rawdbfs.dis b/dis/rawdbfs.dis deleted file mode 100644 index 5d425958f..000000000 Binary files a/dis/rawdbfs.dis and /dev/null differ diff --git a/dis/rcmd.dis b/dis/rcmd.dis deleted file mode 100644 index a75870ce3..000000000 Binary files a/dis/rcmd.dis and /dev/null differ diff --git a/dis/read.dis b/dis/read.dis deleted file mode 100644 index 7df3757cf..000000000 Binary files a/dis/read.dis and /dev/null differ diff --git a/dis/rm.dis b/dis/rm.dis deleted file mode 100644 index 81b692e34..000000000 Binary files a/dis/rm.dis and /dev/null differ diff --git a/dis/rng.dis b/dis/rng.dis deleted file mode 100644 index dbce39477..000000000 Binary files a/dis/rng.dis and /dev/null differ diff --git a/dis/runas.dis b/dis/runas.dis deleted file mode 100644 index e3c00a33f..000000000 Binary files a/dis/runas.dis and /dev/null differ diff --git a/dis/scap.dis b/dis/scap.dis deleted file mode 100644 index 08578b1b5..000000000 Binary files a/dis/scap.dis and /dev/null differ diff --git a/dis/sed.dis b/dis/sed.dis deleted file mode 100644 index fdca5279e..000000000 Binary files a/dis/sed.dis and /dev/null differ diff --git a/dis/sendmail.dis b/dis/sendmail.dis deleted file mode 100644 index b7708adf2..000000000 Binary files a/dis/sendmail.dis and /dev/null differ diff --git a/dis/seq.dis b/dis/seq.dis deleted file mode 100644 index 4dd372573..000000000 Binary files a/dis/seq.dis and /dev/null differ diff --git a/dis/sh.dis b/dis/sh.dis deleted file mode 100644 index e1c159892..000000000 Binary files a/dis/sh.dis and /dev/null differ diff --git a/dis/sh/arg.dis b/dis/sh/arg.dis deleted file mode 100644 index ce4abb226..000000000 Binary files a/dis/sh/arg.dis and /dev/null differ diff --git a/dis/sh/csv.dis b/dis/sh/csv.dis deleted file mode 100644 index a37100dcc..000000000 Binary files a/dis/sh/csv.dis and /dev/null differ diff --git a/dis/sh/echo.dis b/dis/sh/echo.dis deleted file mode 100644 index 6e765e01f..000000000 Binary files a/dis/sh/echo.dis and /dev/null differ diff --git a/dis/sh/expr.dis b/dis/sh/expr.dis deleted file mode 100644 index 171ba1e0c..000000000 Binary files a/dis/sh/expr.dis and /dev/null differ diff --git a/dis/sh/file2chan.dis b/dis/sh/file2chan.dis deleted file mode 100644 index 74b33a68e..000000000 Binary files a/dis/sh/file2chan.dis and /dev/null differ diff --git a/dis/sh/mload.dis b/dis/sh/mload.dis deleted file mode 100644 index df33d5647..000000000 Binary files a/dis/sh/mload.dis and /dev/null differ diff --git a/dis/sh/mpexpr.dis b/dis/sh/mpexpr.dis deleted file mode 100644 index dd1133718..000000000 Binary files a/dis/sh/mpexpr.dis and /dev/null differ diff --git a/dis/sh/regex.dis b/dis/sh/regex.dis deleted file mode 100644 index 73989903b..000000000 Binary files a/dis/sh/regex.dis and /dev/null differ diff --git a/dis/sh/sexprs.dis b/dis/sh/sexprs.dis deleted file mode 100644 index 945e2d674..000000000 Binary files a/dis/sh/sexprs.dis and /dev/null differ diff --git a/dis/sh/sh.dis b/dis/sh/sh.dis deleted file mode 100644 index e1c159892..000000000 Binary files a/dis/sh/sh.dis and /dev/null differ diff --git a/dis/sh/std.dis b/dis/sh/std.dis deleted file mode 100644 index 0ea6b67d8..000000000 Binary files a/dis/sh/std.dis and /dev/null differ diff --git a/dis/sh/string.dis b/dis/sh/string.dis deleted file mode 100644 index 93e3047e8..000000000 Binary files a/dis/sh/string.dis and /dev/null differ diff --git a/dis/sh/tk.dis b/dis/sh/tk.dis deleted file mode 100644 index b6cbcd38a..000000000 Binary files a/dis/sh/tk.dis and /dev/null differ diff --git a/dis/sha1sum.dis b/dis/sha1sum.dis deleted file mode 100644 index ee745a1e0..000000000 Binary files a/dis/sha1sum.dis and /dev/null differ diff --git a/dis/sleep.dis b/dis/sleep.dis deleted file mode 100644 index fb8ee068f..000000000 Binary files a/dis/sleep.dis and /dev/null differ diff --git a/dis/snapd.dis b/dis/snapd.dis deleted file mode 100644 index f905e131c..000000000 Binary files a/dis/snapd.dis and /dev/null differ diff --git a/dis/sort.dis b/dis/sort.dis deleted file mode 100644 index e3f508024..000000000 Binary files a/dis/sort.dis and /dev/null differ diff --git a/dis/stack.dis b/dis/stack.dis deleted file mode 100644 index 755bcc5f8..000000000 Binary files a/dis/stack.dis and /dev/null differ diff --git a/dis/stackv.dis b/dis/stackv.dis deleted file mode 100644 index 08aa956cf..000000000 Binary files a/dis/stackv.dis and /dev/null differ diff --git a/dis/stream.dis b/dis/stream.dis deleted file mode 100644 index c89f21040..000000000 Binary files a/dis/stream.dis and /dev/null differ diff --git a/dis/strings.dis b/dis/strings.dis deleted file mode 100644 index 1aad1e74a..000000000 Binary files a/dis/strings.dis and /dev/null differ diff --git a/dis/styxchat.dis b/dis/styxchat.dis deleted file mode 100644 index 1f78bfc2b..000000000 Binary files a/dis/styxchat.dis and /dev/null differ diff --git a/dis/styxlisten.dis b/dis/styxlisten.dis deleted file mode 100644 index a115b4961..000000000 Binary files a/dis/styxlisten.dis and /dev/null differ diff --git a/dis/styxmon.dis b/dis/styxmon.dis deleted file mode 100644 index 8fd3ebe3a..000000000 Binary files a/dis/styxmon.dis and /dev/null differ diff --git a/dis/sum.dis b/dis/sum.dis deleted file mode 100644 index 760ab65d4..000000000 Binary files a/dis/sum.dis and /dev/null differ diff --git a/dis/svc/httpd/alarms.dis b/dis/svc/httpd/alarms.dis deleted file mode 100644 index b17bbd258..000000000 Binary files a/dis/svc/httpd/alarms.dis and /dev/null differ diff --git a/dis/svc/httpd/cache.dis b/dis/svc/httpd/cache.dis deleted file mode 100644 index 031926f60..000000000 Binary files a/dis/svc/httpd/cache.dis and /dev/null differ diff --git a/dis/svc/httpd/cgiparse.dis b/dis/svc/httpd/cgiparse.dis deleted file mode 100644 index 850e285db..000000000 Binary files a/dis/svc/httpd/cgiparse.dis and /dev/null differ diff --git a/dis/svc/httpd/contents.dis b/dis/svc/httpd/contents.dis deleted file mode 100644 index 7d9843d37..000000000 Binary files a/dis/svc/httpd/contents.dis and /dev/null differ diff --git a/dis/svc/httpd/date.dis b/dis/svc/httpd/date.dis deleted file mode 100644 index 2c3169241..000000000 Binary files a/dis/svc/httpd/date.dis and /dev/null differ diff --git a/dis/svc/httpd/echo.dis b/dis/svc/httpd/echo.dis deleted file mode 100644 index 92ad88af0..000000000 Binary files a/dis/svc/httpd/echo.dis and /dev/null differ diff --git a/dis/svc/httpd/httpd.dis b/dis/svc/httpd/httpd.dis deleted file mode 100644 index d092fdd5d..000000000 Binary files a/dis/svc/httpd/httpd.dis and /dev/null differ diff --git a/dis/svc/httpd/imagemap.dis b/dis/svc/httpd/imagemap.dis deleted file mode 100644 index 9421696fd..000000000 Binary files a/dis/svc/httpd/imagemap.dis and /dev/null differ diff --git a/dis/svc/httpd/parser.dis b/dis/svc/httpd/parser.dis deleted file mode 100644 index d8f83f0fc..000000000 Binary files a/dis/svc/httpd/parser.dis and /dev/null differ diff --git a/dis/svc/httpd/redirect.dis b/dis/svc/httpd/redirect.dis deleted file mode 100644 index 1370f240f..000000000 Binary files a/dis/svc/httpd/redirect.dis and /dev/null differ diff --git a/dis/svc/httpd/stats.dis b/dis/svc/httpd/stats.dis deleted file mode 100644 index 37fd86efb..000000000 Binary files a/dis/svc/httpd/stats.dis and /dev/null differ diff --git a/dis/svc/httpd/wikipost.dis b/dis/svc/httpd/wikipost.dis deleted file mode 100644 index 3fce850dc..000000000 Binary files a/dis/svc/httpd/wikipost.dis and /dev/null differ diff --git a/dis/svc/webget/date.dis b/dis/svc/webget/date.dis deleted file mode 100644 index 1c92fc929..000000000 Binary files a/dis/svc/webget/date.dis and /dev/null differ diff --git a/dis/svc/webget/file.dis b/dis/svc/webget/file.dis deleted file mode 100644 index 737840658..000000000 Binary files a/dis/svc/webget/file.dis and /dev/null differ diff --git a/dis/svc/webget/ftp.dis b/dis/svc/webget/ftp.dis deleted file mode 100644 index 21350a68d..000000000 Binary files a/dis/svc/webget/ftp.dis and /dev/null differ diff --git a/dis/svc/webget/http.dis b/dis/svc/webget/http.dis deleted file mode 100644 index a11ef0dfb..000000000 Binary files a/dis/svc/webget/http.dis and /dev/null differ diff --git a/dis/svc/webget/image2enc.dis b/dis/svc/webget/image2enc.dis deleted file mode 100644 index 367f7258d..000000000 Binary files a/dis/svc/webget/image2enc.dis and /dev/null differ diff --git a/dis/svc/webget/message.dis b/dis/svc/webget/message.dis deleted file mode 100644 index 4bee1c204..000000000 Binary files a/dis/svc/webget/message.dis and /dev/null differ diff --git a/dis/svc/webget/webget.dis b/dis/svc/webget/webget.dis deleted file mode 100644 index 0f7372071..000000000 Binary files a/dis/svc/webget/webget.dis and /dev/null differ diff --git a/dis/svc/webget/wgutils.dis b/dis/svc/webget/wgutils.dis deleted file mode 100644 index 9a04d4fb6..000000000 Binary files a/dis/svc/webget/wgutils.dis and /dev/null differ diff --git a/dis/tail.dis b/dis/tail.dis deleted file mode 100644 index 206483f93..000000000 Binary files a/dis/tail.dis and /dev/null differ diff --git a/dis/tarfs.dis b/dis/tarfs.dis deleted file mode 100644 index f1a2f014a..000000000 Binary files a/dis/tarfs.dis and /dev/null differ diff --git a/dis/tcs.dis b/dis/tcs.dis deleted file mode 100644 index af5992a87..000000000 Binary files a/dis/tcs.dis and /dev/null differ diff --git a/dis/tee.dis b/dis/tee.dis deleted file mode 100644 index f2d9fa0f1..000000000 Binary files a/dis/tee.dis and /dev/null differ diff --git a/dis/telnet.dis b/dis/telnet.dis deleted file mode 100644 index 52bcc6d0f..000000000 Binary files a/dis/telnet.dis and /dev/null differ diff --git a/dis/test.dis b/dis/test.dis deleted file mode 100644 index 89c9d3379..000000000 Binary files a/dis/test.dis and /dev/null differ diff --git a/dis/test9p.dis b/dis/test9p.dis deleted file mode 100644 index 8fa7d7ff7..000000000 Binary files a/dis/test9p.dis and /dev/null differ diff --git a/dis/tests/9p_export_test.dis b/dis/tests/9p_export_test.dis deleted file mode 100644 index a4c5842f8..000000000 Binary files a/dis/tests/9p_export_test.dis and /dev/null differ diff --git a/dis/tests/agent_test.dis b/dis/tests/agent_test.dis deleted file mode 100644 index d2707e2a9..000000000 Binary files a/dis/tests/agent_test.dis and /dev/null differ diff --git a/dis/tests/agentlib_mcp_test.dis b/dis/tests/agentlib_mcp_test.dis deleted file mode 100644 index 54fb183e2..000000000 Binary files a/dis/tests/agentlib_mcp_test.dis and /dev/null differ diff --git a/dis/tests/agentlib_test.dis b/dis/tests/agentlib_test.dis deleted file mode 100644 index f38e156e6..000000000 Binary files a/dis/tests/agentlib_test.dis and /dev/null differ diff --git a/dis/tests/alpha_test.dis b/dis/tests/alpha_test.dis deleted file mode 100644 index aa2a7db61..000000000 Binary files a/dis/tests/alpha_test.dis and /dev/null differ diff --git a/dis/tests/arrayinit_test.dis b/dis/tests/arrayinit_test.dis deleted file mode 100644 index 7fb045e4c..000000000 Binary files a/dis/tests/arrayinit_test.dis and /dev/null differ diff --git a/dis/tests/asyncio_test.dis b/dis/tests/asyncio_test.dis deleted file mode 100644 index 936e2e249..000000000 Binary files a/dis/tests/asyncio_test.dis and /dev/null differ diff --git a/dis/tests/auditchain_test.dis b/dis/tests/auditchain_test.dis deleted file mode 100644 index 8712d2682..000000000 Binary files a/dis/tests/auditchain_test.dis and /dev/null differ diff --git a/dis/tests/auditprov_test.dis b/dis/tests/auditprov_test.dis deleted file mode 100644 index d0268b4f0..000000000 Binary files a/dis/tests/auditprov_test.dis and /dev/null differ diff --git a/dis/tests/auditsign_test.dis b/dis/tests/auditsign_test.dis deleted file mode 100644 index 0e31b5904..000000000 Binary files a/dis/tests/auditsign_test.dis and /dev/null differ diff --git a/dis/tests/auditverify_test.dis b/dis/tests/auditverify_test.dis deleted file mode 100644 index 9c50d888a..000000000 Binary files a/dis/tests/auditverify_test.dis and /dev/null differ diff --git a/dis/tests/authneg_test.dis b/dis/tests/authneg_test.dis deleted file mode 100644 index 14b17b04a..000000000 Binary files a/dis/tests/authneg_test.dis and /dev/null differ diff --git a/dis/tests/authnode.dis b/dis/tests/authnode.dis deleted file mode 100644 index 8e998ff48..000000000 Binary files a/dis/tests/authnode.dis and /dev/null differ diff --git a/dis/tests/awk_test.dis b/dis/tests/awk_test.dis deleted file mode 100644 index aa1985f88..000000000 Binary files a/dis/tests/awk_test.dis and /dev/null differ diff --git a/dis/tests/bioauth_test.dis b/dis/tests/bioauth_test.dis deleted file mode 100644 index ec5ae8224..000000000 Binary files a/dis/tests/bioauth_test.dis and /dev/null differ diff --git a/dis/tests/bufio_test.dis b/dis/tests/bufio_test.dis deleted file mode 100644 index 490b24f5e..000000000 Binary files a/dis/tests/bufio_test.dis and /dev/null differ diff --git a/dis/tests/casel_test.dis b/dis/tests/casel_test.dis deleted file mode 100644 index 0adb49da8..000000000 Binary files a/dis/tests/casel_test.dis and /dev/null differ diff --git a/dis/tests/cipher_matrix_test.dis b/dis/tests/cipher_matrix_test.dis deleted file mode 100644 index d065b9e69..000000000 Binary files a/dis/tests/cipher_matrix_test.dis and /dev/null differ diff --git a/dis/tests/concurrency_test.dis b/dis/tests/concurrency_test.dis deleted file mode 100644 index 65a32a80b..000000000 Binary files a/dis/tests/concurrency_test.dis and /dev/null differ diff --git a/dis/tests/concurrent_auth_test.dis b/dis/tests/concurrent_auth_test.dis deleted file mode 100644 index 46a38293d..000000000 Binary files a/dis/tests/concurrent_auth_test.dis and /dev/null differ diff --git a/dis/tests/contacts_tool_test.dis b/dis/tests/contacts_tool_test.dis deleted file mode 100644 index 789d5b388..000000000 Binary files a/dis/tests/contacts_tool_test.dis and /dev/null differ diff --git a/dis/tests/cookiesrv_httponly_test.dis b/dis/tests/cookiesrv_httponly_test.dis deleted file mode 100644 index 4a84bd99f..000000000 Binary files a/dis/tests/cookiesrv_httponly_test.dis and /dev/null differ diff --git a/dis/tests/cowfs_test.dis b/dis/tests/cowfs_test.dis deleted file mode 100644 index d0ca6f475..000000000 Binary files a/dis/tests/cowfs_test.dis and /dev/null differ diff --git a/dis/tests/crypto_props_test.dis b/dis/tests/crypto_props_test.dis deleted file mode 100644 index 92956d7b4..000000000 Binary files a/dis/tests/crypto_props_test.dis and /dev/null differ diff --git a/dis/tests/crypto_test.dis b/dis/tests/crypto_test.dis deleted file mode 100644 index e9b64d9a6..000000000 Binary files a/dis/tests/crypto_test.dis and /dev/null differ diff --git a/dis/tests/cut_test.dis b/dis/tests/cut_test.dis deleted file mode 100644 index 1f870fba6..000000000 Binary files a/dis/tests/cut_test.dis and /dev/null differ diff --git a/dis/tests/delegation_budget_test.dis b/dis/tests/delegation_budget_test.dis deleted file mode 100644 index b8083f1b2..000000000 Binary files a/dis/tests/delegation_budget_test.dis and /dev/null differ diff --git a/dis/tests/dial_test.dis b/dis/tests/dial_test.dis deleted file mode 100644 index 8e41be349..000000000 Binary files a/dis/tests/dial_test.dis and /dev/null differ diff --git a/dis/tests/dialnorm_test.dis b/dis/tests/dialnorm_test.dis deleted file mode 100644 index 9b09a70eb..000000000 Binary files a/dis/tests/dialnorm_test.dis and /dev/null differ diff --git a/dis/tests/edit_test.dis b/dis/tests/edit_test.dis deleted file mode 100644 index 1a35f3414..000000000 Binary files a/dis/tests/edit_test.dis and /dev/null differ diff --git a/dis/tests/editor_test.dis b/dis/tests/editor_test.dis deleted file mode 100644 index 263e357ec..000000000 Binary files a/dis/tests/editor_test.dis and /dev/null differ diff --git a/dis/tests/ethcrypto_test.dis b/dis/tests/ethcrypto_test.dis deleted file mode 100644 index 6fd573c29..000000000 Binary files a/dis/tests/ethcrypto_test.dis and /dev/null differ diff --git a/dis/tests/ethrpc_conv_test.dis b/dis/tests/ethrpc_conv_test.dis deleted file mode 100644 index 087abd780..000000000 Binary files a/dis/tests/ethrpc_conv_test.dis and /dev/null differ diff --git a/dis/tests/example_test.dis b/dis/tests/example_test.dis deleted file mode 100644 index f90349063..000000000 Binary files a/dis/tests/example_test.dis and /dev/null differ diff --git a/dis/tests/factotum_test.dis b/dis/tests/factotum_test.dis deleted file mode 100644 index a575f35da..000000000 Binary files a/dis/tests/factotum_test.dis and /dev/null differ diff --git a/dis/tests/font_format_test.dis b/dis/tests/font_format_test.dis deleted file mode 100644 index 3b6a0ad26..000000000 Binary files a/dis/tests/font_format_test.dis and /dev/null differ diff --git a/dis/tests/fractal_tool_test.dis b/dis/tests/fractal_tool_test.dis deleted file mode 100644 index 000fabeec..000000000 Binary files a/dis/tests/fractal_tool_test.dis and /dev/null differ diff --git a/dis/tests/geomap_test.dis b/dis/tests/geomap_test.dis deleted file mode 100644 index d5ad8c0e7..000000000 Binary files a/dis/tests/geomap_test.dis and /dev/null differ diff --git a/dis/tests/git_test.dis b/dis/tests/git_test.dis deleted file mode 100644 index 6bf792567..000000000 Binary files a/dis/tests/git_test.dis and /dev/null differ diff --git a/dis/tests/goroutine_leak_test.dis b/dis/tests/goroutine_leak_test.dis deleted file mode 100644 index f6260939a..000000000 Binary files a/dis/tests/goroutine_leak_test.dis and /dev/null differ diff --git a/dis/tests/gpu_bench.dis b/dis/tests/gpu_bench.dis deleted file mode 100644 index f67f5484a..000000000 Binary files a/dis/tests/gpu_bench.dis and /dev/null differ diff --git a/dis/tests/gpu_smoke.dis b/dis/tests/gpu_smoke.dis deleted file mode 100644 index 2f92e13de..000000000 Binary files a/dis/tests/gpu_smoke.dis and /dev/null differ diff --git a/dis/tests/gpu_test.dis b/dis/tests/gpu_test.dis deleted file mode 100644 index 8fc333dce..000000000 Binary files a/dis/tests/gpu_test.dis and /dev/null differ diff --git a/dis/tests/handshake_fuzz_test.dis b/dis/tests/handshake_fuzz_test.dis deleted file mode 100644 index 3d4a5f1a4..000000000 Binary files a/dis/tests/handshake_fuzz_test.dis and /dev/null differ diff --git a/dis/tests/hello_test.dis b/dis/tests/hello_test.dis deleted file mode 100644 index ddfe635a6..000000000 Binary files a/dis/tests/hello_test.dis and /dev/null differ diff --git a/dis/tests/html_test.dis b/dis/tests/html_test.dis deleted file mode 100644 index 4a7a1e042..000000000 Binary files a/dis/tests/html_test.dis and /dev/null differ diff --git a/dis/tests/imap_test.dis b/dis/tests/imap_test.dis deleted file mode 100644 index 035ccad1b..000000000 Binary files a/dis/tests/imap_test.dis and /dev/null differ diff --git a/dis/tests/imgload_test.dis b/dis/tests/imgload_test.dis deleted file mode 100644 index 259cb06a9..000000000 Binary files a/dis/tests/imgload_test.dis and /dev/null differ diff --git a/dis/tests/interop_test.dis b/dis/tests/interop_test.dis deleted file mode 100644 index 5bcb06199..000000000 Binary files a/dis/tests/interop_test.dis and /dev/null differ diff --git a/dis/tests/interrupt_test.dis b/dis/tests/interrupt_test.dis deleted file mode 100644 index c44aa2a22..000000000 Binary files a/dis/tests/interrupt_test.dis and /dev/null differ diff --git a/dis/tests/jit_test.dis b/dis/tests/jit_test.dis deleted file mode 100644 index a206e35e8..000000000 Binary files a/dis/tests/jit_test.dis and /dev/null differ diff --git a/dis/tests/json_test.dis b/dis/tests/json_test.dis deleted file mode 100644 index 75b003a42..000000000 Binary files a/dis/tests/json_test.dis and /dev/null differ diff --git a/dis/tests/kbddrainer_test.dis b/dis/tests/kbddrainer_test.dis deleted file mode 100644 index 4b9f850ea..000000000 Binary files a/dis/tests/kbddrainer_test.dis and /dev/null differ diff --git a/dis/tests/keyring_test.dis b/dis/tests/keyring_test.dis deleted file mode 100644 index d3aac5cdd..000000000 Binary files a/dis/tests/keyring_test.dis and /dev/null differ diff --git a/dis/tests/keyringinst_test.dis b/dis/tests/keyringinst_test.dis deleted file mode 100644 index 73efc24e9..000000000 Binary files a/dis/tests/keyringinst_test.dis and /dev/null differ diff --git a/dis/tests/lists_test.dis b/dis/tests/lists_test.dis deleted file mode 100644 index c846e9c17..000000000 Binary files a/dis/tests/lists_test.dis and /dev/null differ diff --git a/dis/tests/llmclient_reqshape_test.dis b/dis/tests/llmclient_reqshape_test.dis deleted file mode 100644 index 91e208227..000000000 Binary files a/dis/tests/llmclient_reqshape_test.dis and /dev/null differ diff --git a/dis/tests/llmclient_sse_fallback_test.dis b/dis/tests/llmclient_sse_fallback_test.dis deleted file mode 100644 index 2e26a4793..000000000 Binary files a/dis/tests/llmclient_sse_fallback_test.dis and /dev/null differ diff --git a/dis/tests/llmclient_think_gating_test.dis b/dis/tests/llmclient_think_gating_test.dis deleted file mode 100644 index e1aa8b6db..000000000 Binary files a/dis/tests/llmclient_think_gating_test.dis and /dev/null differ diff --git a/dis/tests/llmsrv_test.dis b/dis/tests/llmsrv_test.dis deleted file mode 100644 index ca3dd1bbb..000000000 Binary files a/dis/tests/llmsrv_test.dis and /dev/null differ diff --git a/dis/tests/lucibridge_approval_test.dis b/dis/tests/lucibridge_approval_test.dis deleted file mode 100644 index 0cdc61419..000000000 Binary files a/dis/tests/lucibridge_approval_test.dis and /dev/null differ diff --git a/dis/tests/lucibridge_test.dis b/dis/tests/lucibridge_test.dis deleted file mode 100644 index 3542beb23..000000000 Binary files a/dis/tests/lucibridge_test.dis and /dev/null differ diff --git a/dis/tests/lucifer_flicker_test.dis b/dis/tests/lucifer_flicker_test.dis deleted file mode 100644 index f034b6f49..000000000 Binary files a/dis/tests/lucifer_flicker_test.dis and /dev/null differ diff --git a/dis/tests/lucifer_helpers_test.dis b/dis/tests/lucifer_helpers_test.dis deleted file mode 100644 index c75e408c2..000000000 Binary files a/dis/tests/lucifer_helpers_test.dis and /dev/null differ diff --git a/dis/tests/lucifer_winstart_test.dis b/dis/tests/lucifer_winstart_test.dis deleted file mode 100644 index 4c0cbfb56..000000000 Binary files a/dis/tests/lucifer_winstart_test.dis and /dev/null differ diff --git a/dis/tests/lucifer_zorder_test.dis b/dis/tests/lucifer_zorder_test.dis deleted file mode 100644 index ec410ce35..000000000 Binary files a/dis/tests/lucifer_zorder_test.dis and /dev/null differ diff --git a/dis/tests/lucitheme_test.dis b/dis/tests/lucitheme_test.dis deleted file mode 100644 index 74d4b5b49..000000000 Binary files a/dis/tests/lucitheme_test.dis and /dev/null differ diff --git a/dis/tests/luciuisrv_test.dis b/dis/tests/luciuisrv_test.dis deleted file mode 100644 index f86cbd695..000000000 Binary files a/dis/tests/luciuisrv_test.dis and /dev/null differ diff --git a/dis/tests/mail9p_test.dis b/dis/tests/mail9p_test.dis deleted file mode 100644 index 3887c0af4..000000000 Binary files a/dis/tests/mail9p_test.dis and /dev/null differ diff --git a/dis/tests/mail_provision_test.dis b/dis/tests/mail_provision_test.dis deleted file mode 100644 index 3d199b9ef..000000000 Binary files a/dis/tests/mail_provision_test.dis and /dev/null differ diff --git a/dis/tests/matrix_perfdashboard_test.dis b/dis/tests/matrix_perfdashboard_test.dis deleted file mode 100644 index 3c0da5dde..000000000 Binary files a/dis/tests/matrix_perfdashboard_test.dis and /dev/null differ diff --git a/dis/tests/matrix_sysmon_test.dis b/dis/tests/matrix_sysmon_test.dis deleted file mode 100644 index 28bbab019..000000000 Binary files a/dis/tests/matrix_sysmon_test.dis and /dev/null differ diff --git a/dis/tests/matrix_test.dis b/dis/tests/matrix_test.dis deleted file mode 100644 index a0861cdf7..000000000 Binary files a/dis/tests/matrix_test.dis and /dev/null differ diff --git a/dis/tests/menu_test.dis b/dis/tests/menu_test.dis deleted file mode 100644 index f9bd53297..000000000 Binary files a/dis/tests/menu_test.dis and /dev/null differ diff --git a/dis/tests/mldsa_stress_test.dis b/dis/tests/mldsa_stress_test.dis deleted file mode 100644 index 9d23b7401..000000000 Binary files a/dis/tests/mldsa_stress_test.dis and /dev/null differ diff --git a/dis/tests/mldsa_test.dis b/dis/tests/mldsa_test.dis deleted file mode 100644 index 58673ba2b..000000000 Binary files a/dis/tests/mldsa_test.dis and /dev/null differ diff --git a/dis/tests/mlkem_stress_test.dis b/dis/tests/mlkem_stress_test.dis deleted file mode 100644 index a27a44463..000000000 Binary files a/dis/tests/mlkem_stress_test.dis and /dev/null differ diff --git a/dis/tests/mlkem_test.dis b/dis/tests/mlkem_test.dis deleted file mode 100644 index a4bbe7305..000000000 Binary files a/dis/tests/mlkem_test.dis and /dev/null differ diff --git a/dis/tests/msg_approval_test.dis b/dis/tests/msg_approval_test.dis deleted file mode 100644 index eb70ab080..000000000 Binary files a/dis/tests/msg_approval_test.dis and /dev/null differ diff --git a/dis/tests/msg_badsrc.dis b/dis/tests/msg_badsrc.dis deleted file mode 100644 index 8f13d30e4..000000000 Binary files a/dis/tests/msg_badsrc.dis and /dev/null differ diff --git a/dis/tests/msg_capability_test.dis b/dis/tests/msg_capability_test.dis deleted file mode 100644 index b55ba4454..000000000 Binary files a/dis/tests/msg_capability_test.dis and /dev/null differ diff --git a/dis/tests/msg_notification_escape_test.dis b/dis/tests/msg_notification_escape_test.dis deleted file mode 100644 index ef01942b7..000000000 Binary files a/dis/tests/msg_notification_escape_test.dis and /dev/null differ diff --git a/dis/tests/msg_register_test.dis b/dis/tests/msg_register_test.dis deleted file mode 100644 index 6ed09bb5b..000000000 Binary files a/dis/tests/msg_register_test.dis and /dev/null differ diff --git a/dis/tests/ninepsrc_config_test.dis b/dis/tests/ninepsrc_config_test.dis deleted file mode 100644 index 48439930c..000000000 Binary files a/dis/tests/ninepsrc_config_test.dis and /dev/null differ diff --git a/dis/tests/opus_test.dis b/dis/tests/opus_test.dis deleted file mode 100644 index 7a2e126bc..000000000 Binary files a/dis/tests/opus_test.dis and /dev/null differ diff --git a/dis/tests/outlinefont_test.dis b/dis/tests/outlinefont_test.dis deleted file mode 100644 index 9e483c389..000000000 Binary files a/dis/tests/outlinefont_test.dis and /dev/null differ diff --git a/dis/tests/pathmanage_test.dis b/dis/tests/pathmanage_test.dis deleted file mode 100644 index 58bacbdce..000000000 Binary files a/dis/tests/pathmanage_test.dis and /dev/null differ diff --git a/dis/tests/pdf_conformance_test.dis b/dis/tests/pdf_conformance_test.dis deleted file mode 100644 index a38fe234a..000000000 Binary files a/dis/tests/pdf_conformance_test.dis and /dev/null differ diff --git a/dis/tests/pdf_test.dis b/dis/tests/pdf_test.dis deleted file mode 100644 index 59bdaf7af..000000000 Binary files a/dis/tests/pdf_test.dis and /dev/null differ diff --git a/dis/tests/pqauth_test.dis b/dis/tests/pqauth_test.dis deleted file mode 100644 index f2cb8f39e..000000000 Binary files a/dis/tests/pqauth_test.dis and /dev/null differ diff --git a/dis/tests/pqc_fuzz_test.dis b/dis/tests/pqc_fuzz_test.dis deleted file mode 100644 index 6ad844914..000000000 Binary files a/dis/tests/pqc_fuzz_test.dis and /dev/null differ diff --git a/dis/tests/pres_launch_test.dis b/dis/tests/pres_launch_test.dis deleted file mode 100644 index daf5026f2..000000000 Binary files a/dis/tests/pres_launch_test.dis and /dev/null differ diff --git a/dis/tests/publicnet_host_test.dis b/dis/tests/publicnet_host_test.dis deleted file mode 100644 index 89eda091d..000000000 Binary files a/dis/tests/publicnet_host_test.dis and /dev/null differ diff --git a/dis/tests/publicnet_test.dis b/dis/tests/publicnet_test.dis deleted file mode 100644 index e16281b67..000000000 Binary files a/dis/tests/publicnet_test.dis and /dev/null differ diff --git a/dis/tests/regex_test.dis b/dis/tests/regex_test.dis deleted file mode 100644 index 8525b956c..000000000 Binary files a/dis/tests/regex_test.dis and /dev/null differ diff --git a/dis/tests/render_registry_test.dis b/dis/tests/render_registry_test.dis deleted file mode 100644 index b14251748..000000000 Binary files a/dis/tests/render_registry_test.dis and /dev/null differ diff --git a/dis/tests/runner.dis b/dis/tests/runner.dis deleted file mode 100644 index a2d3b4e9e..000000000 Binary files a/dis/tests/runner.dis and /dev/null differ diff --git a/dis/tests/sdl3_test.dis b/dis/tests/sdl3_test.dis deleted file mode 100644 index b6cf14697..000000000 Binary files a/dis/tests/sdl3_test.dis and /dev/null differ diff --git a/dis/tests/secp256k1_test.dis b/dis/tests/secp256k1_test.dis deleted file mode 100644 index 4e3c9cc50..000000000 Binary files a/dis/tests/secp256k1_test.dis and /dev/null differ diff --git a/dis/tests/secstore_abort_probe.dis b/dis/tests/secstore_abort_probe.dis deleted file mode 100644 index 463c4d3c7..000000000 Binary files a/dis/tests/secstore_abort_probe.dis and /dev/null differ diff --git a/dis/tests/secstore_crypto_test.dis b/dis/tests/secstore_crypto_test.dis deleted file mode 100644 index b04721eb1..000000000 Binary files a/dis/tests/secstore_crypto_test.dis and /dev/null differ diff --git a/dis/tests/sha3_test.dis b/dis/tests/sha3_test.dis deleted file mode 100644 index d21b07891..000000000 Binary files a/dis/tests/sha3_test.dis and /dev/null differ diff --git a/dis/tests/shell_tool_test.dis b/dis/tests/shell_tool_test.dis deleted file mode 100644 index 452ff5255..000000000 Binary files a/dis/tests/shell_tool_test.dis and /dev/null differ diff --git a/dis/tests/slhdsa_test.dis b/dis/tests/slhdsa_test.dis deleted file mode 100644 index cc815c47f..000000000 Binary files a/dis/tests/slhdsa_test.dis and /dev/null differ diff --git a/dis/tests/sms_msgsrc_test.dis b/dis/tests/sms_msgsrc_test.dis deleted file mode 100644 index 5202fa6b4..000000000 Binary files a/dis/tests/sms_msgsrc_test.dis and /dev/null differ diff --git a/dis/tests/sms_tool_test.dis b/dis/tests/sms_tool_test.dis deleted file mode 100644 index 5a47dfe47..000000000 Binary files a/dis/tests/sms_tool_test.dis and /dev/null differ diff --git a/dis/tests/softkbd_test.dis b/dis/tests/softkbd_test.dis deleted file mode 100644 index 68c830b57..000000000 Binary files a/dis/tests/softkbd_test.dis and /dev/null differ diff --git a/dis/tests/sort_test.dis b/dis/tests/sort_test.dis deleted file mode 100644 index bba07dfcc..000000000 Binary files a/dis/tests/sort_test.dis and /dev/null differ diff --git a/dis/tests/spawn_helpers_test.dis b/dis/tests/spawn_helpers_test.dis deleted file mode 100644 index a175efe19..000000000 Binary files a/dis/tests/spawn_helpers_test.dis and /dev/null differ diff --git a/dis/tests/spawn_test.dis b/dis/tests/spawn_test.dis deleted file mode 100644 index 6d3182d03..000000000 Binary files a/dis/tests/spawn_test.dis and /dev/null differ diff --git a/dis/tests/ssl_transport_test.dis b/dis/tests/ssl_transport_test.dis deleted file mode 100644 index 2567d82c9..000000000 Binary files a/dis/tests/ssl_transport_test.dis and /dev/null differ diff --git a/dis/tests/stderr_test.dis b/dis/tests/stderr_test.dis deleted file mode 100644 index 125f75b34..000000000 Binary files a/dis/tests/stderr_test.dis and /dev/null differ diff --git a/dis/tests/string_test.dis b/dis/tests/string_test.dis deleted file mode 100644 index 24eaf1696..000000000 Binary files a/dis/tests/string_test.dis and /dev/null differ diff --git a/dis/tests/task_concurrent_probe.dis b/dis/tests/task_concurrent_probe.dis deleted file mode 100644 index 5c9157389..000000000 Binary files a/dis/tests/task_concurrent_probe.dis and /dev/null differ diff --git a/dis/tests/task_consistency_test.dis b/dis/tests/task_consistency_test.dis deleted file mode 100644 index ef33c90b1..000000000 Binary files a/dis/tests/task_consistency_test.dis and /dev/null differ diff --git a/dis/tests/taskparse_test.dis b/dis/tests/taskparse_test.dis deleted file mode 100644 index f637e58a7..000000000 Binary files a/dis/tests/taskparse_test.dis and /dev/null differ diff --git a/dis/tests/tcp_test.dis b/dis/tests/tcp_test.dis deleted file mode 100644 index acf32a454..000000000 Binary files a/dis/tests/tcp_test.dis and /dev/null differ diff --git a/dis/tests/tempfile_test.dis b/dis/tests/tempfile_test.dis deleted file mode 100644 index 828f14b40..000000000 Binary files a/dis/tests/tempfile_test.dis and /dev/null differ diff --git a/dis/tests/testing/testing_test.dis b/dis/tests/testing/testing_test.dis deleted file mode 100644 index 649530496..000000000 Binary files a/dis/tests/testing/testing_test.dis and /dev/null differ diff --git a/dis/tests/textwidget_test.dis b/dis/tests/textwidget_test.dis deleted file mode 100644 index 547abaa50..000000000 Binary files a/dis/tests/textwidget_test.dis and /dev/null differ diff --git a/dis/tests/tk_test.dis b/dis/tests/tk_test.dis deleted file mode 100644 index dcddd147d..000000000 Binary files a/dis/tests/tk_test.dis and /dev/null differ diff --git a/dis/tests/tkimgrender.dis b/dis/tests/tkimgrender.dis deleted file mode 100644 index 919cec676..000000000 Binary files a/dis/tests/tkimgrender.dis and /dev/null differ diff --git a/dis/tests/tkrender.dis b/dis/tests/tkrender.dis deleted file mode 100644 index 045d8a3ac..000000000 Binary files a/dis/tests/tkrender.dis and /dev/null differ diff --git a/dis/tests/tls_crypto_test.dis b/dis/tests/tls_crypto_test.dis deleted file mode 100644 index 3603164cf..000000000 Binary files a/dis/tests/tls_crypto_test.dis and /dev/null differ diff --git a/dis/tests/tls_live_test.dis b/dis/tests/tls_live_test.dis deleted file mode 100644 index b09d1f393..000000000 Binary files a/dis/tests/tls_live_test.dis and /dev/null differ diff --git a/dis/tests/tls_pq_test.dis b/dis/tests/tls_pq_test.dis deleted file mode 100644 index 7a49936f0..000000000 Binary files a/dis/tests/tls_pq_test.dis and /dev/null differ diff --git a/dis/tests/tls_protocol_test.dis b/dis/tests/tls_protocol_test.dis deleted file mode 100644 index b3ba66103..000000000 Binary files a/dis/tests/tls_protocol_test.dis and /dev/null differ diff --git a/dis/tests/tlsclient.dis b/dis/tests/tlsclient.dis deleted file mode 100644 index 1518eda9b..000000000 Binary files a/dis/tests/tlsclient.dis and /dev/null differ diff --git a/dis/tests/tool_schema_test.dis b/dis/tests/tool_schema_test.dis deleted file mode 100644 index 88961b3e4..000000000 Binary files a/dis/tests/tool_schema_test.dis and /dev/null differ diff --git a/dis/tests/tooldoc_test.dis b/dis/tests/tooldoc_test.dis deleted file mode 100644 index 38138a536..000000000 Binary files a/dis/tests/tooldoc_test.dis and /dev/null differ diff --git a/dis/tests/tools9p_test.dis b/dis/tests/tools9p_test.dis deleted file mode 100644 index c5f2f0a49..000000000 Binary files a/dis/tests/tools9p_test.dis and /dev/null differ diff --git a/dis/tests/tooluse_test.dis b/dis/tests/tooluse_test.dis deleted file mode 100644 index 32d26698d..000000000 Binary files a/dis/tests/tooluse_test.dis and /dev/null differ diff --git a/dis/tests/twofaslot_test.dis b/dis/tests/twofaslot_test.dis deleted file mode 100644 index 1645075be..000000000 Binary files a/dis/tests/twofaslot_test.dis and /dev/null differ diff --git a/dis/tests/veltro_cc_alignment_test.dis b/dis/tests/veltro_cc_alignment_test.dis deleted file mode 100644 index c86688a73..000000000 Binary files a/dis/tests/veltro_cc_alignment_test.dis and /dev/null differ diff --git a/dis/tests/veltro_charon_security_test.dis b/dis/tests/veltro_charon_security_test.dis deleted file mode 100644 index 2d92210c1..000000000 Binary files a/dis/tests/veltro_charon_security_test.dis and /dev/null differ diff --git a/dis/tests/veltro_concurrent_test.dis b/dis/tests/veltro_concurrent_test.dis deleted file mode 100644 index a1d8868ba..000000000 Binary files a/dis/tests/veltro_concurrent_test.dis and /dev/null differ diff --git a/dis/tests/veltro_launch_test.dis b/dis/tests/veltro_launch_test.dis deleted file mode 100644 index 2ccbbfc08..000000000 Binary files a/dis/tests/veltro_launch_test.dis and /dev/null differ diff --git a/dis/tests/veltro_more_tools_test.dis b/dis/tests/veltro_more_tools_test.dis deleted file mode 100644 index ca5c03afa..000000000 Binary files a/dis/tests/veltro_more_tools_test.dis and /dev/null differ diff --git a/dis/tests/veltro_present_security_test.dis b/dis/tests/veltro_present_security_test.dis deleted file mode 100644 index af5e0d5ed..000000000 Binary files a/dis/tests/veltro_present_security_test.dis and /dev/null differ diff --git a/dis/tests/veltro_security_test.dis b/dis/tests/veltro_security_test.dis deleted file mode 100644 index 04526c6b8..000000000 Binary files a/dis/tests/veltro_security_test.dis and /dev/null differ diff --git a/dis/tests/veltro_test.dis b/dis/tests/veltro_test.dis deleted file mode 100644 index 7e4ee4640..000000000 Binary files a/dis/tests/veltro_test.dis and /dev/null differ diff --git a/dis/tests/veltro_tools_test.dis b/dis/tests/veltro_tools_test.dis deleted file mode 100644 index 906e7f963..000000000 Binary files a/dis/tests/veltro_tools_test.dis and /dev/null differ diff --git a/dis/tests/voice_scripts_test.dis b/dis/tests/voice_scripts_test.dis deleted file mode 100644 index 1eb8d04f3..000000000 Binary files a/dis/tests/voice_scripts_test.dis and /dev/null differ diff --git a/dis/tests/wallet_capability_test.dis b/dis/tests/wallet_capability_test.dis deleted file mode 100644 index e7c304444..000000000 Binary files a/dis/tests/wallet_capability_test.dis and /dev/null differ diff --git a/dis/tests/wallet_policy_test.dis b/dis/tests/wallet_policy_test.dis deleted file mode 100644 index 38e159cb5..000000000 Binary files a/dis/tests/wallet_policy_test.dis and /dev/null differ diff --git a/dis/tests/webclient_test.dis b/dis/tests/webclient_test.dis deleted file mode 100644 index 2b85c4832..000000000 Binary files a/dis/tests/webclient_test.dis and /dev/null differ diff --git a/dis/tests/webfs_test.dis b/dis/tests/webfs_test.dis deleted file mode 100644 index 2ad23251e..000000000 Binary files a/dis/tests/webfs_test.dis and /dev/null differ diff --git a/dis/tests/wiki9p_security_probe.dis b/dis/tests/wiki9p_security_probe.dis deleted file mode 100644 index d431f31bf..000000000 Binary files a/dis/tests/wiki9p_security_probe.dis and /dev/null differ diff --git a/dis/tests/wireformat_test.dis b/dis/tests/wireformat_test.dis deleted file mode 100644 index 283142afe..000000000 Binary files a/dis/tests/wireformat_test.dis and /dev/null differ diff --git a/dis/tests/wm_apps_test.dis b/dis/tests/wm_apps_test.dis deleted file mode 100644 index c97f57b33..000000000 Binary files a/dis/tests/wm_apps_test.dis and /dev/null differ diff --git a/dis/tests/wmsrv_zorder_test.dis b/dis/tests/wmsrv_zorder_test.dis deleted file mode 100644 index bb624a8dc..000000000 Binary files a/dis/tests/wmsrv_zorder_test.dis and /dev/null differ diff --git a/dis/tests/x402_test.dis b/dis/tests/x402_test.dis deleted file mode 100644 index 1fb2d5b1d..000000000 Binary files a/dis/tests/x402_test.dis and /dev/null differ diff --git a/dis/tests/x509_test.dis b/dis/tests/x509_test.dis deleted file mode 100644 index 03c0cc847..000000000 Binary files a/dis/tests/x509_test.dis and /dev/null differ diff --git a/dis/tests/xenith_concurrency_test.dis b/dis/tests/xenith_concurrency_test.dis deleted file mode 100644 index f25591fa3..000000000 Binary files a/dis/tests/xenith_concurrency_test.dis and /dev/null differ diff --git a/dis/tests/xenith_exit_test.dis b/dis/tests/xenith_exit_test.dis deleted file mode 100644 index a1b68bd51..000000000 Binary files a/dis/tests/xenith_exit_test.dis and /dev/null differ diff --git a/dis/tests/xml_test.dis b/dis/tests/xml_test.dis deleted file mode 100644 index 943564a7e..000000000 Binary files a/dis/tests/xml_test.dis and /dev/null differ diff --git a/dis/time.dis b/dis/time.dis deleted file mode 100644 index 2fc04fcc9..000000000 Binary files a/dis/time.dis and /dev/null differ diff --git a/dis/timestamp.dis b/dis/timestamp.dis deleted file mode 100644 index f71b059f9..000000000 Binary files a/dis/timestamp.dis and /dev/null differ diff --git a/dis/tlsperf.dis b/dis/tlsperf.dis deleted file mode 100644 index 882cee19e..000000000 Binary files a/dis/tlsperf.dis and /dev/null differ diff --git a/dis/tokenize.dis b/dis/tokenize.dis deleted file mode 100644 index 5159aecf8..000000000 Binary files a/dis/tokenize.dis and /dev/null differ diff --git a/dis/touch.dis b/dis/touch.dis deleted file mode 100644 index efc4a84ad..000000000 Binary files a/dis/touch.dis and /dev/null differ diff --git a/dis/tr.dis b/dis/tr.dis deleted file mode 100644 index b663736fd..000000000 Binary files a/dis/tr.dis and /dev/null differ diff --git a/dis/trfs.dis b/dis/trfs.dis deleted file mode 100644 index 357d02e56..000000000 Binary files a/dis/trfs.dis and /dev/null differ diff --git a/dis/tsort.dis b/dis/tsort.dis deleted file mode 100644 index 9a707a814..000000000 Binary files a/dis/tsort.dis and /dev/null differ diff --git a/dis/unicode.dis b/dis/unicode.dis deleted file mode 100644 index 43bc4754d..000000000 Binary files a/dis/unicode.dis and /dev/null differ diff --git a/dis/uniq.dis b/dis/uniq.dis deleted file mode 100644 index 3d0a5b1c2..000000000 Binary files a/dis/uniq.dis and /dev/null differ diff --git a/dis/units.dis b/dis/units.dis deleted file mode 100644 index 4446abcca..000000000 Binary files a/dis/units.dis and /dev/null differ diff --git a/dis/unmount.dis b/dis/unmount.dis deleted file mode 100644 index 0c6b0f1f2..000000000 Binary files a/dis/unmount.dis and /dev/null differ diff --git a/dis/uudecode.dis b/dis/uudecode.dis deleted file mode 100644 index ec8eddc6a..000000000 Binary files a/dis/uudecode.dis and /dev/null differ diff --git a/dis/uuencode.dis b/dis/uuencode.dis deleted file mode 100644 index 1a8eba252..000000000 Binary files a/dis/uuencode.dis and /dev/null differ diff --git a/dis/vacfs.dis b/dis/vacfs.dis deleted file mode 100644 index e0510bba7..000000000 Binary files a/dis/vacfs.dis and /dev/null differ diff --git a/dis/vacget.dis b/dis/vacget.dis deleted file mode 100644 index b8cea90c2..000000000 Binary files a/dis/vacget.dis and /dev/null differ diff --git a/dis/vacput.dis b/dis/vacput.dis deleted file mode 100644 index 0ac541bf5..000000000 Binary files a/dis/vacput.dis and /dev/null differ diff --git a/dis/veltro/agentlib.dis b/dis/veltro/agentlib.dis deleted file mode 100644 index 217a1d326..000000000 Binary files a/dis/veltro/agentlib.dis and /dev/null differ diff --git a/dis/veltro/cowfs.dis b/dis/veltro/cowfs.dis deleted file mode 100644 index 116fd5f2f..000000000 Binary files a/dis/veltro/cowfs.dis and /dev/null differ diff --git a/dis/veltro/mc9p.dis b/dis/veltro/mc9p.dis deleted file mode 100644 index d595727b3..000000000 Binary files a/dis/veltro/mc9p.dis and /dev/null differ diff --git a/dis/veltro/msg9p.dis b/dis/veltro/msg9p.dis deleted file mode 100644 index 03e69d578..000000000 Binary files a/dis/veltro/msg9p.dis and /dev/null differ diff --git a/dis/veltro/msgwatch.dis b/dis/veltro/msgwatch.dis deleted file mode 100644 index e1afc4b07..000000000 Binary files a/dis/veltro/msgwatch.dis and /dev/null differ diff --git a/dis/veltro/ninepsrc.dis b/dis/veltro/ninepsrc.dis deleted file mode 100644 index 1440fa212..000000000 Binary files a/dis/veltro/ninepsrc.dis and /dev/null differ diff --git a/dis/veltro/nsconstruct.dis b/dis/veltro/nsconstruct.dis deleted file mode 100644 index 15d0d0178..000000000 Binary files a/dis/veltro/nsconstruct.dis and /dev/null differ diff --git a/dis/veltro/repl.dis b/dis/veltro/repl.dis deleted file mode 100644 index 51b675024..000000000 Binary files a/dis/veltro/repl.dis and /dev/null differ diff --git a/dis/veltro/sources/email.dis b/dis/veltro/sources/email.dis deleted file mode 100644 index eb1655dc3..000000000 Binary files a/dis/veltro/sources/email.dis and /dev/null differ diff --git a/dis/veltro/sources/mockmail.dis b/dis/veltro/sources/mockmail.dis deleted file mode 100644 index be5da6002..000000000 Binary files a/dis/veltro/sources/mockmail.dis and /dev/null differ diff --git a/dis/veltro/sources/sms.dis b/dis/veltro/sources/sms.dis deleted file mode 100644 index bebdba31c..000000000 Binary files a/dis/veltro/sources/sms.dis and /dev/null differ diff --git a/dis/veltro/speech9p.dis b/dis/veltro/speech9p.dis deleted file mode 100644 index c2488426f..000000000 Binary files a/dis/veltro/speech9p.dis and /dev/null differ diff --git a/dis/veltro/subagent.dis b/dis/veltro/subagent.dis deleted file mode 100644 index 928e9330b..000000000 Binary files a/dis/veltro/subagent.dis and /dev/null differ diff --git a/dis/veltro/taskboard9p.dis b/dis/veltro/taskboard9p.dis deleted file mode 100644 index 79cd695dc..000000000 Binary files a/dis/veltro/taskboard9p.dis and /dev/null differ diff --git a/dis/veltro/tools/browse.dis b/dis/veltro/tools/browse.dis deleted file mode 100644 index 2e91f69bb..000000000 Binary files a/dis/veltro/tools/browse.dis and /dev/null differ diff --git a/dis/veltro/tools/charon.dis b/dis/veltro/tools/charon.dis deleted file mode 100644 index a55fe211b..000000000 Binary files a/dis/veltro/tools/charon.dis and /dev/null differ diff --git a/dis/veltro/tools/contacts.dis b/dis/veltro/tools/contacts.dis deleted file mode 100644 index 1b5d7ae4e..000000000 Binary files a/dis/veltro/tools/contacts.dis and /dev/null differ diff --git a/dis/veltro/tools/dial.dis b/dis/veltro/tools/dial.dis deleted file mode 100644 index 313979a28..000000000 Binary files a/dis/veltro/tools/dial.dis and /dev/null differ diff --git a/dis/veltro/tools/diff.dis b/dis/veltro/tools/diff.dis deleted file mode 100644 index 73533b5de..000000000 Binary files a/dis/veltro/tools/diff.dis and /dev/null differ diff --git a/dis/veltro/tools/edit.dis b/dis/veltro/tools/edit.dis deleted file mode 100644 index 5426f9f10..000000000 Binary files a/dis/veltro/tools/edit.dis and /dev/null differ diff --git a/dis/veltro/tools/editor.dis b/dis/veltro/tools/editor.dis deleted file mode 100644 index a207a1ba4..000000000 Binary files a/dis/veltro/tools/editor.dis and /dev/null differ diff --git a/dis/veltro/tools/exec.dis b/dis/veltro/tools/exec.dis deleted file mode 100644 index cde0783bf..000000000 Binary files a/dis/veltro/tools/exec.dis and /dev/null differ diff --git a/dis/veltro/tools/find.dis b/dis/veltro/tools/find.dis deleted file mode 100644 index 1de6fb7fb..000000000 Binary files a/dis/veltro/tools/find.dis and /dev/null differ diff --git a/dis/veltro/tools/fractal.dis b/dis/veltro/tools/fractal.dis deleted file mode 100644 index ef94fff2b..000000000 Binary files a/dis/veltro/tools/fractal.dis and /dev/null differ diff --git a/dis/veltro/tools/gap.dis b/dis/veltro/tools/gap.dis deleted file mode 100644 index 74aa56b58..000000000 Binary files a/dis/veltro/tools/gap.dis and /dev/null differ diff --git a/dis/veltro/tools/git.dis b/dis/veltro/tools/git.dis deleted file mode 100644 index 4d58f6be2..000000000 Binary files a/dis/veltro/tools/git.dis and /dev/null differ diff --git a/dis/veltro/tools/gpu.dis b/dis/veltro/tools/gpu.dis deleted file mode 100644 index 2009a3964..000000000 Binary files a/dis/veltro/tools/gpu.dis and /dev/null differ diff --git a/dis/veltro/tools/grep.dis b/dis/veltro/tools/grep.dis deleted file mode 100644 index 798372bc9..000000000 Binary files a/dis/veltro/tools/grep.dis and /dev/null differ diff --git a/dis/veltro/tools/hear.dis b/dis/veltro/tools/hear.dis deleted file mode 100644 index 26d6af83c..000000000 Binary files a/dis/veltro/tools/hear.dis and /dev/null differ diff --git a/dis/veltro/tools/http.dis b/dis/veltro/tools/http.dis deleted file mode 100644 index 6233cabee..000000000 Binary files a/dis/veltro/tools/http.dis and /dev/null differ diff --git a/dis/veltro/tools/json.dis b/dis/veltro/tools/json.dis deleted file mode 100644 index e17fb65c6..000000000 Binary files a/dis/veltro/tools/json.dis and /dev/null differ diff --git a/dis/veltro/tools/keyring.dis b/dis/veltro/tools/keyring.dis deleted file mode 100644 index 5cbb922d6..000000000 Binary files a/dis/veltro/tools/keyring.dis and /dev/null differ diff --git a/dis/veltro/tools/launch.dis b/dis/veltro/tools/launch.dis deleted file mode 100644 index 07307bf9c..000000000 Binary files a/dis/veltro/tools/launch.dis and /dev/null differ diff --git a/dis/veltro/tools/limbo.dis b/dis/veltro/tools/limbo.dis deleted file mode 100644 index 9ae1f9976..000000000 Binary files a/dis/veltro/tools/limbo.dis and /dev/null differ diff --git a/dis/veltro/tools/list.dis b/dis/veltro/tools/list.dis deleted file mode 100644 index 9d40700b2..000000000 Binary files a/dis/veltro/tools/list.dis and /dev/null differ diff --git a/dis/veltro/tools/man.dis b/dis/veltro/tools/man.dis deleted file mode 100644 index 1d3bbaed7..000000000 Binary files a/dis/veltro/tools/man.dis and /dev/null differ diff --git a/dis/veltro/tools/matrix.dis b/dis/veltro/tools/matrix.dis deleted file mode 100644 index 19a6fd21a..000000000 Binary files a/dis/veltro/tools/matrix.dis and /dev/null differ diff --git a/dis/veltro/tools/memory.dis b/dis/veltro/tools/memory.dis deleted file mode 100644 index 9f791509a..000000000 Binary files a/dis/veltro/tools/memory.dis and /dev/null differ diff --git a/dis/veltro/tools/mount.dis b/dis/veltro/tools/mount.dis deleted file mode 100644 index 0f3f7a939..000000000 Binary files a/dis/veltro/tools/mount.dis and /dev/null differ diff --git a/dis/veltro/tools/payfetch.dis b/dis/veltro/tools/payfetch.dis deleted file mode 100644 index 3ed1f6957..000000000 Binary files a/dis/veltro/tools/payfetch.dis and /dev/null differ diff --git a/dis/veltro/tools/plan.dis b/dis/veltro/tools/plan.dis deleted file mode 100644 index a5afc8d1f..000000000 Binary files a/dis/veltro/tools/plan.dis and /dev/null differ diff --git a/dis/veltro/tools/present.dis b/dis/veltro/tools/present.dis deleted file mode 100644 index c6332e691..000000000 Binary files a/dis/veltro/tools/present.dis and /dev/null differ diff --git a/dis/veltro/tools/read.dis b/dis/veltro/tools/read.dis deleted file mode 100644 index 191cd573a..000000000 Binary files a/dis/veltro/tools/read.dis and /dev/null differ diff --git a/dis/veltro/tools/say.dis b/dis/veltro/tools/say.dis deleted file mode 100644 index 11b7245e9..000000000 Binary files a/dis/veltro/tools/say.dis and /dev/null differ diff --git a/dis/veltro/tools/search.dis b/dis/veltro/tools/search.dis deleted file mode 100644 index 55cd06111..000000000 Binary files a/dis/veltro/tools/search.dis and /dev/null differ diff --git a/dis/veltro/tools/shell.dis b/dis/veltro/tools/shell.dis deleted file mode 100644 index b3e772fff..000000000 Binary files a/dis/veltro/tools/shell.dis and /dev/null differ diff --git a/dis/veltro/tools/sms.dis b/dis/veltro/tools/sms.dis deleted file mode 100644 index d100a0b96..000000000 Binary files a/dis/veltro/tools/sms.dis and /dev/null differ diff --git a/dis/veltro/tools/spawn.dis b/dis/veltro/tools/spawn.dis deleted file mode 100644 index 5f978baac..000000000 Binary files a/dis/veltro/tools/spawn.dis and /dev/null differ diff --git a/dis/veltro/tools/task.dis b/dis/veltro/tools/task.dis deleted file mode 100644 index a433e0f1c..000000000 Binary files a/dis/veltro/tools/task.dis and /dev/null differ diff --git a/dis/veltro/tools/todo.dis b/dis/veltro/tools/todo.dis deleted file mode 100644 index fc2af1ab2..000000000 Binary files a/dis/veltro/tools/todo.dis and /dev/null differ diff --git a/dis/veltro/tools/vision.dis b/dis/veltro/tools/vision.dis deleted file mode 100644 index 79b84083a..000000000 Binary files a/dis/veltro/tools/vision.dis and /dev/null differ diff --git a/dis/veltro/tools/wallet.dis b/dis/veltro/tools/wallet.dis deleted file mode 100644 index 46ad9fc70..000000000 Binary files a/dis/veltro/tools/wallet.dis and /dev/null differ diff --git a/dis/veltro/tools/webfetch.dis b/dis/veltro/tools/webfetch.dis deleted file mode 100644 index cbdcc2ceb..000000000 Binary files a/dis/veltro/tools/webfetch.dis and /dev/null differ diff --git a/dis/veltro/tools/websearch.dis b/dis/veltro/tools/websearch.dis deleted file mode 100644 index eeeaac3b6..000000000 Binary files a/dis/veltro/tools/websearch.dis and /dev/null differ diff --git a/dis/veltro/tools/wiki.dis b/dis/veltro/tools/wiki.dis deleted file mode 100644 index d4a77a89f..000000000 Binary files a/dis/veltro/tools/wiki.dis and /dev/null differ diff --git a/dis/veltro/tools/write.dis b/dis/veltro/tools/write.dis deleted file mode 100644 index ec62a9719..000000000 Binary files a/dis/veltro/tools/write.dis and /dev/null differ diff --git a/dis/veltro/tools/xenith.dis b/dis/veltro/tools/xenith.dis deleted file mode 100644 index ef5f51b07..000000000 Binary files a/dis/veltro/tools/xenith.dis and /dev/null differ diff --git a/dis/veltro/tools9p.dis b/dis/veltro/tools9p.dis deleted file mode 100644 index c3f3515e5..000000000 Binary files a/dis/veltro/tools9p.dis and /dev/null differ diff --git a/dis/veltro/veltro.dis b/dis/veltro/veltro.dis deleted file mode 100644 index f4d7d23c1..000000000 Binary files a/dis/veltro/veltro.dis and /dev/null differ diff --git a/dis/veltro/wallet9p.dis b/dis/veltro/wallet9p.dis deleted file mode 100644 index 648ba89ad..000000000 Binary files a/dis/veltro/wallet9p.dis and /dev/null differ diff --git a/dis/veltro/wiki9p.dis b/dis/veltro/wiki9p.dis deleted file mode 100644 index dcf4bbaa6..000000000 Binary files a/dis/veltro/wiki9p.dis and /dev/null differ diff --git a/dis/ventisrv.dis b/dis/ventisrv.dis deleted file mode 100644 index ad6f9b9da..000000000 Binary files a/dis/ventisrv.dis and /dev/null differ diff --git a/dis/vid9p.dis b/dis/vid9p.dis deleted file mode 100644 index 1213a0e96..000000000 Binary files a/dis/vid9p.dis and /dev/null differ diff --git a/dis/wav2iaf.dis b/dis/wav2iaf.dis deleted file mode 100644 index 03431bbe9..000000000 Binary files a/dis/wav2iaf.dis and /dev/null differ diff --git a/dis/wc.dis b/dis/wc.dis deleted file mode 100644 index c2c70c891..000000000 Binary files a/dis/wc.dis and /dev/null differ diff --git a/dis/webfs.dis b/dis/webfs.dis deleted file mode 100644 index 4ae6496b8..000000000 Binary files a/dis/webfs.dis and /dev/null differ diff --git a/dis/webgrab.dis b/dis/webgrab.dis deleted file mode 100644 index fd9d5d7dc..000000000 Binary files a/dis/webgrab.dis and /dev/null differ diff --git a/dis/wiki.dis b/dis/wiki.dis deleted file mode 100644 index dad36617d..000000000 Binary files a/dis/wiki.dis and /dev/null differ diff --git a/dis/wikifs.dis b/dis/wikifs.dis deleted file mode 100644 index 6984bcdb8..000000000 Binary files a/dis/wikifs.dis and /dev/null differ diff --git a/dis/wm/about.dis b/dis/wm/about.dis deleted file mode 100644 index 07d20a764..000000000 Binary files a/dis/wm/about.dis and /dev/null differ diff --git a/dis/wm/bounce.dis b/dis/wm/bounce.dis deleted file mode 100644 index e1c074724..000000000 Binary files a/dis/wm/bounce.dis and /dev/null differ diff --git a/dis/wm/charon.dis b/dis/wm/charon.dis deleted file mode 100644 index 21d1a95d9..000000000 Binary files a/dis/wm/charon.dis and /dev/null differ diff --git a/dis/wm/clock.dis b/dis/wm/clock.dis deleted file mode 100644 index ec5874123..000000000 Binary files a/dis/wm/clock.dis and /dev/null differ diff --git a/dis/wm/coffee.dis b/dis/wm/coffee.dis deleted file mode 100644 index 4d5eb0768..000000000 Binary files a/dis/wm/coffee.dis and /dev/null differ diff --git a/dis/wm/colors.dis b/dis/wm/colors.dis deleted file mode 100644 index 6b27a67a9..000000000 Binary files a/dis/wm/colors.dis and /dev/null differ diff --git a/dis/wm/date.dis b/dis/wm/date.dis deleted file mode 100644 index 3309a0c00..000000000 Binary files a/dis/wm/date.dis and /dev/null differ diff --git a/dis/wm/deb.dis b/dis/wm/deb.dis deleted file mode 100644 index eb1fba16e..000000000 Binary files a/dis/wm/deb.dis and /dev/null differ diff --git a/dis/wm/editor.dis b/dis/wm/editor.dis deleted file mode 100644 index 8b1748cd2..000000000 Binary files a/dis/wm/editor.dis and /dev/null differ diff --git a/dis/wm/fractals.dis b/dis/wm/fractals.dis deleted file mode 100644 index f83f66308..000000000 Binary files a/dis/wm/fractals.dis and /dev/null differ diff --git a/dis/wm/ftree.dis b/dis/wm/ftree.dis deleted file mode 100644 index 2cc493c81..000000000 Binary files a/dis/wm/ftree.dis and /dev/null differ diff --git a/dis/wm/keyring.dis b/dis/wm/keyring.dis deleted file mode 100644 index ecc84319d..000000000 Binary files a/dis/wm/keyring.dis and /dev/null differ diff --git a/dis/wm/lens.dis b/dis/wm/lens.dis deleted file mode 100644 index f30e50db2..000000000 Binary files a/dis/wm/lens.dis and /dev/null differ diff --git a/dis/wm/logon.dis b/dis/wm/logon.dis deleted file mode 100644 index a4bc592cc..000000000 Binary files a/dis/wm/logon.dis and /dev/null differ diff --git a/dis/wm/man.dis b/dis/wm/man.dis deleted file mode 100644 index 59deef296..000000000 Binary files a/dis/wm/man.dis and /dev/null differ diff --git a/dis/wm/matrix.dis b/dis/wm/matrix.dis deleted file mode 100644 index 159ad3b89..000000000 Binary files a/dis/wm/matrix.dis and /dev/null differ diff --git a/dis/wm/memory.dis b/dis/wm/memory.dis deleted file mode 100644 index ac12bb702..000000000 Binary files a/dis/wm/memory.dis and /dev/null differ diff --git a/dis/wm/presrender.dis b/dis/wm/presrender.dis deleted file mode 100644 index a847d82e2..000000000 Binary files a/dis/wm/presrender.dis and /dev/null differ diff --git a/dis/wm/rt.dis b/dis/wm/rt.dis deleted file mode 100644 index 0a1d30b28..000000000 Binary files a/dis/wm/rt.dis and /dev/null differ diff --git a/dis/wm/sam.dis b/dis/wm/sam.dis deleted file mode 100644 index fae61dd7f..000000000 Binary files a/dis/wm/sam.dis and /dev/null differ diff --git a/dis/wm/samengine.dis b/dis/wm/samengine.dis deleted file mode 100644 index f0ac4adcc..000000000 Binary files a/dis/wm/samengine.dis and /dev/null differ diff --git a/dis/wm/samstub.dis b/dis/wm/samstub.dis deleted file mode 100644 index 4e3368e5a..000000000 Binary files a/dis/wm/samstub.dis and /dev/null differ diff --git a/dis/wm/samtk.dis b/dis/wm/samtk.dis deleted file mode 100644 index 3e66e14d0..000000000 Binary files a/dis/wm/samtk.dis and /dev/null differ diff --git a/dis/wm/settings.dis b/dis/wm/settings.dis deleted file mode 100644 index dfba47381..000000000 Binary files a/dis/wm/settings.dis and /dev/null differ diff --git a/dis/wm/sh.dis b/dis/wm/sh.dis deleted file mode 100644 index f886c0da2..000000000 Binary files a/dis/wm/sh.dis and /dev/null differ diff --git a/dis/wm/shell.dis b/dis/wm/shell.dis deleted file mode 100644 index cdad5540d..000000000 Binary files a/dis/wm/shell.dis and /dev/null differ diff --git a/dis/wm/task.dis b/dis/wm/task.dis deleted file mode 100644 index 7dcfea0a3..000000000 Binary files a/dis/wm/task.dis and /dev/null differ diff --git a/dis/wm/tetris.dis b/dis/wm/tetris.dis deleted file mode 100644 index 4bac3e883..000000000 Binary files a/dis/wm/tetris.dis and /dev/null differ diff --git a/dis/wm/view.dis b/dis/wm/view.dis deleted file mode 100644 index dbf3d7ad2..000000000 Binary files a/dis/wm/view.dis and /dev/null differ diff --git a/dis/wm/wallet.dis b/dis/wm/wallet.dis deleted file mode 100644 index 7515e13c5..000000000 Binary files a/dis/wm/wallet.dis and /dev/null differ diff --git a/dis/wm/wm.dis b/dis/wm/wm.dis deleted file mode 100644 index b3ddc9b83..000000000 Binary files a/dis/wm/wm.dis and /dev/null differ diff --git a/dis/wmexport.dis b/dis/wmexport.dis deleted file mode 100644 index 817375858..000000000 Binary files a/dis/wmexport.dis and /dev/null differ diff --git a/dis/wmimport.dis b/dis/wmimport.dis deleted file mode 100644 index fc71518e2..000000000 Binary files a/dis/wmimport.dis and /dev/null differ diff --git a/dis/xargs.dis b/dis/xargs.dis deleted file mode 100644 index 006031dd1..000000000 Binary files a/dis/xargs.dis and /dev/null differ diff --git a/dis/xd.dis b/dis/xd.dis deleted file mode 100644 index 20d9d98ca..000000000 Binary files a/dis/xd.dis and /dev/null differ diff --git a/dis/xenith.dis b/dis/xenith.dis deleted file mode 100644 index 081998107..000000000 Binary files a/dis/xenith.dis and /dev/null differ diff --git a/dis/xenith/asyncio.dis b/dis/xenith/asyncio.dis deleted file mode 100644 index 3d8642350..000000000 Binary files a/dis/xenith/asyncio.dis and /dev/null differ diff --git a/dis/xenith/buff.dis b/dis/xenith/buff.dis deleted file mode 100644 index e36ceed76..000000000 Binary files a/dis/xenith/buff.dis and /dev/null differ diff --git a/dis/xenith/col.dis b/dis/xenith/col.dis deleted file mode 100644 index 4c99f1451..000000000 Binary files a/dis/xenith/col.dis and /dev/null differ diff --git a/dis/xenith/dat.dis b/dis/xenith/dat.dis deleted file mode 100644 index 037c1ec68..000000000 Binary files a/dis/xenith/dat.dis and /dev/null differ diff --git a/dis/xenith/disk.dis b/dis/xenith/disk.dis deleted file mode 100644 index 53db97a2d..000000000 Binary files a/dis/xenith/disk.dis and /dev/null differ diff --git a/dis/xenith/ecmd.dis b/dis/xenith/ecmd.dis deleted file mode 100644 index 63e772681..000000000 Binary files a/dis/xenith/ecmd.dis and /dev/null differ diff --git a/dis/xenith/edit.dis b/dis/xenith/edit.dis deleted file mode 100644 index 4bd83ba89..000000000 Binary files a/dis/xenith/edit.dis and /dev/null differ diff --git a/dis/xenith/elog.dis b/dis/xenith/elog.dis deleted file mode 100644 index 0cb8f4dc1..000000000 Binary files a/dis/xenith/elog.dis and /dev/null differ diff --git a/dis/xenith/exec.dis b/dis/xenith/exec.dis deleted file mode 100644 index 495872672..000000000 Binary files a/dis/xenith/exec.dis and /dev/null differ diff --git a/dis/xenith/file.dis b/dis/xenith/file.dis deleted file mode 100644 index a27f635a0..000000000 Binary files a/dis/xenith/file.dis and /dev/null differ diff --git a/dis/xenith/format.dis b/dis/xenith/format.dis deleted file mode 100644 index 0e6ef0bfb..000000000 Binary files a/dis/xenith/format.dis and /dev/null differ diff --git a/dis/xenith/frame.dis b/dis/xenith/frame.dis deleted file mode 100644 index cf834e0db..000000000 Binary files a/dis/xenith/frame.dis and /dev/null differ diff --git a/dis/xenith/fsys.dis b/dis/xenith/fsys.dis deleted file mode 100644 index a86b2878e..000000000 Binary files a/dis/xenith/fsys.dis and /dev/null differ diff --git a/dis/xenith/graph.dis b/dis/xenith/graph.dis deleted file mode 100644 index a1abf1049..000000000 Binary files a/dis/xenith/graph.dis and /dev/null differ diff --git a/dis/xenith/gui.dis b/dis/xenith/gui.dis deleted file mode 100644 index de80cbb48..000000000 Binary files a/dis/xenith/gui.dis and /dev/null differ diff --git a/dis/xenith/imgload.dis b/dis/xenith/imgload.dis deleted file mode 100644 index 60378365e..000000000 Binary files a/dis/xenith/imgload.dis and /dev/null differ diff --git a/dis/xenith/look.dis b/dis/xenith/look.dis deleted file mode 100644 index 231624170..000000000 Binary files a/dis/xenith/look.dis and /dev/null differ diff --git a/dis/xenith/pngload.dis b/dis/xenith/pngload.dis deleted file mode 100644 index 857db1df7..000000000 Binary files a/dis/xenith/pngload.dis and /dev/null differ diff --git a/dis/xenith/regx.dis b/dis/xenith/regx.dis deleted file mode 100644 index c81215d8a..000000000 Binary files a/dis/xenith/regx.dis and /dev/null differ diff --git a/dis/xenith/render.dis b/dis/xenith/render.dis deleted file mode 100644 index a9d24e78a..000000000 Binary files a/dis/xenith/render.dis and /dev/null differ diff --git a/dis/xenith/render/charonrender.dis b/dis/xenith/render/charonrender.dis deleted file mode 100644 index 05d673fc1..000000000 Binary files a/dis/xenith/render/charonrender.dis and /dev/null differ diff --git a/dis/xenith/render/htmlfmt.dis b/dis/xenith/render/htmlfmt.dis deleted file mode 100644 index 935894fed..000000000 Binary files a/dis/xenith/render/htmlfmt.dis and /dev/null differ diff --git a/dis/xenith/render/htmlrender.dis b/dis/xenith/render/htmlrender.dis deleted file mode 100644 index ec9237278..000000000 Binary files a/dis/xenith/render/htmlrender.dis and /dev/null differ diff --git a/dis/xenith/render/imgrender.dis b/dis/xenith/render/imgrender.dis deleted file mode 100644 index fef98f8af..000000000 Binary files a/dis/xenith/render/imgrender.dis and /dev/null differ diff --git a/dis/xenith/render/mdfmt.dis b/dis/xenith/render/mdfmt.dis deleted file mode 100644 index 15ba39faf..000000000 Binary files a/dis/xenith/render/mdfmt.dis and /dev/null differ diff --git a/dis/xenith/render/mdrender.dis b/dis/xenith/render/mdrender.dis deleted file mode 100644 index f7876ff2d..000000000 Binary files a/dis/xenith/render/mdrender.dis and /dev/null differ diff --git a/dis/xenith/render/mermaidrender.dis b/dis/xenith/render/mermaidrender.dis deleted file mode 100644 index 7cf6a8a5b..000000000 Binary files a/dis/xenith/render/mermaidrender.dis and /dev/null differ diff --git a/dis/xenith/render/pdfrender.dis b/dis/xenith/render/pdfrender.dis deleted file mode 100644 index c4d9282c2..000000000 Binary files a/dis/xenith/render/pdfrender.dis and /dev/null differ diff --git a/dis/xenith/render/rlayout.dis b/dis/xenith/render/rlayout.dis deleted file mode 100644 index a0d6ec51b..000000000 Binary files a/dis/xenith/render/rlayout.dis and /dev/null differ diff --git a/dis/xenith/render/tlayout.dis b/dis/xenith/render/tlayout.dis deleted file mode 100644 index 4015d5e31..000000000 Binary files a/dis/xenith/render/tlayout.dis and /dev/null differ diff --git a/dis/xenith/row.dis b/dis/xenith/row.dis deleted file mode 100644 index 6d5a675e8..000000000 Binary files a/dis/xenith/row.dis and /dev/null differ diff --git a/dis/xenith/scrl.dis b/dis/xenith/scrl.dis deleted file mode 100644 index 7bb3de563..000000000 Binary files a/dis/xenith/scrl.dis and /dev/null differ diff --git a/dis/xenith/styxaux.dis b/dis/xenith/styxaux.dis deleted file mode 100644 index d81ffb0f5..000000000 Binary files a/dis/xenith/styxaux.dis and /dev/null differ diff --git a/dis/xenith/text.dis b/dis/xenith/text.dis deleted file mode 100644 index c3b463fbb..000000000 Binary files a/dis/xenith/text.dis and /dev/null differ diff --git a/dis/xenith/time.dis b/dis/xenith/time.dis deleted file mode 100644 index b2593bff0..000000000 Binary files a/dis/xenith/time.dis and /dev/null differ diff --git a/dis/xenith/util.dis b/dis/xenith/util.dis deleted file mode 100644 index 120423149..000000000 Binary files a/dis/xenith/util.dis and /dev/null differ diff --git a/dis/xenith/wind.dis b/dis/xenith/wind.dis deleted file mode 100644 index e3838dfd9..000000000 Binary files a/dis/xenith/wind.dis and /dev/null differ diff --git a/dis/xenith/xenith.dis b/dis/xenith/xenith.dis deleted file mode 100644 index 081998107..000000000 Binary files a/dis/xenith/xenith.dis and /dev/null differ diff --git a/dis/xenith/xfid.dis b/dis/xenith/xfid.dis deleted file mode 100644 index be2a229ca..000000000 Binary files a/dis/xenith/xfid.dis and /dev/null differ diff --git a/dis/yacc.dis b/dis/yacc.dis deleted file mode 100644 index a9e819b40..000000000 Binary files a/dis/yacc.dis and /dev/null differ diff --git a/dis/zeros.dis b/dis/zeros.dis deleted file mode 100644 index 336c58ba0..000000000 Binary files a/dis/zeros.dis and /dev/null differ diff --git a/docs/compliance/Common-Criteria-readiness.md b/docs/compliance/Common-Criteria-readiness.md index b8154478c..d177f911e 100644 --- a/docs/compliance/Common-Criteria-readiness.md +++ b/docs/compliance/Common-Criteria-readiness.md @@ -56,7 +56,7 @@ they are the *evaluation evidence* CC mandates. | **ASE** Security Target | A complete ST (TOE description, SFRs, rationale) | Not authored | | **ADV** Development | Functional spec, TOE design, and (EAL5+) a **formal/semiformal** security-policy model + correspondence | Isolation proof exists; full ADV_SPM / ADV_FSP / ADV_TDS to write | | **AGD** Guidance | Operational user + prep guidance | Partial (QUICKSTART, ops docs); not CC-structured | -| **ALC** Life-cycle | CM, flaw remediation, delivery, dev security | Strong technical base (reproducible builds, SLSA L3, signed artifacts, `verify-dis-paths`, security.md) — needs CC-form documentation | +| **ALC** Life-cycle | CM, flaw remediation, delivery, dev security | Strong technical base (reproducible builds, SLSA L3, signed artifacts, `verify-dis-build`, security.md) — needs CC-form documentation | | **ATE** Tests | Functional test coverage + depth | Strong test base (in-emu suite, `veltro_security_test`, crypto KATs) — needs coverage-to-SFR mapping | | **AVA** Vulnerability | Independent vuln assessment / pen-test | CodeQL + fuzzing + formal verification feed it; independent AVA is lab work | @@ -65,7 +65,7 @@ they are the *evaluation evidence* CC mandates. - **ADV (formal core):** the namespace isolation theorem and CBMC harnesses are exactly the kind of high-EAL evidence labs rarely see pre-engagement — `formal-verification/`. - **ALC:** reproducible Inferno `mk` builds, SLSA L3 provenance + Sigstore signing, SBOM, - `verify-dis-paths`, ring-fence guard — see [`SLSA.md`](SLSA.md), [`SP800-53-171-mapping.md`](SP800-53-171-mapping.md) §5.CM/SR. + `verify-dis-build`, ring-fence guard — see [`SLSA.md`](SLSA.md), [`SP800-53-171-mapping.md`](SP800-53-171-mapping.md) §5.CM/SR. - **ATE:** the in-emu regression suite and `tests/veltro_security_test.b` exercise the access mechanism directly. - **Small TCB** keeps every above class tractable — the whole point. diff --git a/docs/compliance/FIPS-140-3-readiness.md b/docs/compliance/FIPS-140-3-readiness.md index 5bbb5b2a0..71a3a12b0 100644 --- a/docs/compliance/FIPS-140-3-readiness.md +++ b/docs/compliance/FIPS-140-3-readiness.md @@ -45,7 +45,7 @@ standard. | **F4** | **SP 800-90A/B DRBG + entropy** — approved DRBG with documented entropy source and health tests | RNG is `genrandom`/`prng` (`include/libsec.h:486-489`); not documented as an SP 800-90A DRBG with 90B entropy assessment | Document/align the DRBG; entropy-source analysis. See `docs/TLS-ENTROPY.md` for prior entropy work. | | **F5** | **Module spec & security policy documents** — finite-state model, ports/interfaces, roles/services, SSP | Not authored | Documentation deliverables for the CMVP package. | | **F6** | **CAVP algorithm certificates** — each approved algorithm independently CAVP-tested | Not obtained | Run the CAVP test harness against `libsec` and submit. The existing KAT suites are the starting material. | -| **F7** | **Operational environment / integrity test** — module integrity self-check (e.g. signature/HMAC over the module image) at load | Build-time integrity exists (cosign, SLSA, `verify-dis-paths`) but no *runtime* module-integrity self-test | Add an integrity check at module init. | +| **F7** | **Operational environment / integrity test** — module integrity self-check (e.g. signature/HMAC over the module image) at load | Build-time integrity exists (cosign, SLSA, `verify-dis-build`) but no *runtime* module-integrity self-test | Add an integrity check at module init. | ## 3. What is already met (do not re-do) diff --git a/docs/compliance/SLSA.md b/docs/compliance/SLSA.md index 9735f6e14..76806f356 100644 --- a/docs/compliance/SLSA.md +++ b/docs/compliance/SLSA.md @@ -28,8 +28,10 @@ isolated CI build that emits **non-forgeable provenance** and are **signed**. Bu - **Continuous posture scoring:** OpenSSF Scorecard (`.github/workflows/scorecard.yml`). - **Artifact-content guard:** ring-fence CI fails the build if testing-only harness files leak into a release (`CLAUDE.md` "Ring-fence rule"; `release.yml`, `ci.yml`). -- **Bytecode integrity:** `verify-dis-paths` ensures shipped `.dis` matches source - (`.github/workflows/verify-dis-paths.yml`; `tools/verify-dis-paths.sh`). +- **Bytecode integrity:** shipped `.dis` is built from the tagged source by the release + job rather than committed, and checked against a tracked module manifest + (`.github/workflows/verify-dis-build.yml`; `tools/verify-dis-build.sh`; + `tools/dis-manifest.txt`). ## 3. Open items (tracked, not blocking the L3 close) @@ -62,4 +64,4 @@ hermetic/reproducible builds — tracked under INFR-340. ## 5. References - SLSA v1.0 (slsa.dev); OpenSSF Scorecard; Sigstore/cosign; SPDX / CycloneDX; in-toto. -- `.github/workflows/release.yml`, `sbom.yml`, `scorecard.yml`, `verify-dis-paths.yml`. +- `.github/workflows/release.yml`, `sbom.yml`, `scorecard.yml`, `verify-dis-build.yml`. diff --git a/docs/compliance/SP800-53-171-mapping.md b/docs/compliance/SP800-53-171-mapping.md index cda8659ab..bd12e794c 100644 --- a/docs/compliance/SP800-53-171-mapping.md +++ b/docs/compliance/SP800-53-171-mapping.md @@ -57,7 +57,7 @@ first; they are the controls a generic Linux/Windows host cannot evidence as cle | **IA** Identification & Auth | MFA, PKI, AAL3 | Technical | Factotum credential agent; FIDO2 UV (AAL3) login; PQ-capable X.509 / mTLS | [`SP800-63B-AAL3.md`](SP800-63B-AAL3.md); `docs/AUTHENTICATION.md`, `docs/DISTRIBUTED-AUTH.md` | **Strong** (AAL3 verifier shipped) | | **SC** System & Comms Protection | Crypto, boundary, transport | Technical | `libsec` (AES-256-GCM, SHA-384/512, full PQC); hybrid TLS + hybrid native STS; namespace boundaries | [`CNSA-2.0.md`](CNSA-2.0.md); `docs/CRYPTO-MODERNIZATION.md` | **Strong** (CNSA-strict params tracked) | | **SI** System & Information Integrity | Memory safety, malware, flaws | Technical | Dis VM: type-safe, memory-safe, sandboxed bytecode → eliminates whole CWE classes (no raw pointers, bounds-checked); CodeQL + fuzzing in CI | `doc/dis.ms`; `.github/workflows/security.yml` (CodeQL), `fuzz.yml`; `tests/handshake_fuzz_test.b` | **Strong** (see §5.SI) | -| **CM** Configuration Management | Baselines, integrity of components | Technical | Reproducible Plan 9 `mk` builds; `.dis` path-integrity verifier; SHA-pinned CI actions; tracked `dis/` runtime tree | `.github/workflows/verify-dis-paths.yml`; `tools/verify-dis-paths.sh`; `CLAUDE.md` (dis integrity) | **Strong** (see §5.CM) | +| **CM** Configuration Management | Baselines, integrity of components | Technical | Reproducible Plan 9 `mk` builds; bytecode built from source in CI and at release, checked against a tracked module manifest; SHA-pinned CI actions | `.github/workflows/verify-dis-build.yml`; `tools/verify-dis-build.sh`; `tools/dis-manifest.txt`; `CLAUDE.md` (dis is a build product) | **Strong** (see §5.CM) | | **SR** Supply Chain Risk | Provenance, integrity of artifacts | Technical | SLSA build provenance attestations; cosign keyless (Sigstore) signing; SHA256SUMS; OpenSSF Scorecard | `.github/workflows/release.yml:1257-1288`; `scorecard.yml` | **Strong** (see §5.SR) | | **CA** Assessment, Auth & Monitoring | Continuous assessment | Technical+Org | Formal verification in CI (TLA+/SPIN/CBMC); CodeQL/Scorecard/fuzz continuous scanning; ring-fence guard | `formal-verification/`; `.github/workflows/` (formal-verification, security, scorecard, fuzz); `CLAUDE.md` (ring-fence) | **Strong (technical)**; assessment process = operator | | **RA** Risk Assessment | Vuln scanning, risk | Technical+Org | CodeQL, fuzzing, OpenSSF Scorecard, formal verification feed risk posture; threat models in security docs | `.github/workflows/{security,fuzz,scorecard}.yml`; `docs/NAMESPACE_SECURITY_REVIEW.md` §3 (threat model) | **Partial** (tooling ✅; org RA process = operator) | @@ -102,9 +102,11 @@ dispositions, noreturn FPs); tracked, not silent. ### 5.CM — Configuration Management - **Reproducible builds** via Inferno-native `mk` (same toolchain builds the system and the apps; `CLAUDE.md` "Why Native Tools"). -- **Bytecode integrity:** `tools/verify-dis-paths.sh` + the `verify-dis-paths` CI workflow - refuse any commit where a compiled `.dis` is missing or older than its source — preventing - the "stale/ wrong-target bytecode" class. Pre-commit hook enforces locally; CI is the +- **Bytecode integrity:** compiled `.dis` is not committed at all — it is built from the + tagged source by CI and by every release job, which removes the "stale / wrong-target + bytecode" class by construction rather than policing it. `tools/dis-manifest.txt` tracks + the set of modules the build must produce and `tools/verify-dis-build.sh` fails if any is + missing, so a component cannot silently leave the baseline. CI is the universal backstop. - **Pinned dependencies:** CI actions are pinned to commit SHAs (see `release.yml`), not floating tags — a CM-2/CM-7 supply-integrity property. diff --git a/docs/compliance/common-criteria-security-target.md b/docs/compliance/common-criteria-security-target.md index 920243c9a..ec1ccaa6e 100644 --- a/docs/compliance/common-criteria-security-target.md +++ b/docs/compliance/common-criteria-security-target.md @@ -282,7 +282,7 @@ evaluation would still require. It restates, in ST form, the gap table of |-----------------|------------------|--------------------------|---------------------------| | **ADV** Development | Functional spec, TOE design, and (EAL5+) a formal/semiformal security-policy model + correspondence | The load-bearing property (namespace isolation) has a **formal model and machine-checked proof** across three tools; CBMC verifies actual C. `formal-verification/METHODOLOGY.md` | Full ADV_FSP / ADV_TDS / ADV_SPM / ADV_ARC documents to author; correspondence to the *whole* TSF | | **AGD** Guidance | Operational + preparative guidance | `QUICKSTART.md`, `docs/`, ops runbooks | Restructure to CC AGD_OPE/AGD_PRE form | -| **ALC** Life-cycle | CM, flaw remediation, delivery, dev security | Reproducible Inferno-`mk` builds, SLSA-3 provenance + Sigstore signing, SBOM, `verify-dis-paths`, pinned CI actions, ring-fence guard | CC-form ALC_CMC/CMS/DEL/DVS/FLR documentation | +| **ALC** Life-cycle | CM, flaw remediation, delivery, dev security | Reproducible Inferno-`mk` builds, SLSA-3 provenance + Sigstore signing, SBOM, `verify-dis-build`, pinned CI actions, ring-fence guard | CC-form ALC_CMC/CMS/DEL/DVS/FLR documentation | | **ATE** Tests | Functional coverage + depth | In-emu regression suite incl. `tests/veltro_security_test.b`, crypto tests, formal-verification CI | Coverage-to-SFR mapping (ATE_COV/DPT); independent ATE_IND | | **AVA** Vulnerability | Independent vuln assessment | CodeQL (`security.yml`), fuzzing (`fuzz.yml`), formal verification feed it | Accredited-lab AVA_VAN penetration test | | **ASE** Security Target | A complete ST | **This document** (self-produced baseline) | Evaluator review; PP instantiation | diff --git a/docs/compliance/nist-control-mappings.md b/docs/compliance/nist-control-mappings.md index 68db0e7e2..c0f9b5c9b 100644 --- a/docs/compliance/nist-control-mappings.md +++ b/docs/compliance/nist-control-mappings.md @@ -96,7 +96,7 @@ and the four-family itemization in |---------|--------------------------|-----------------------------|--------------------|---------------|------------------|-------| | **SI-2** / 3.14.1 | Flaw remediation | CodeQL + fuzzing in CI; formal verification; security-advisory process | Configurable / Integrator | `.github/workflows/security.yml`, `fuzz.yml`; `SECURITY.md` | FPT_TST | Remediation SLA is operator process | | **SI-3** / 3.14.2 | Malicious-code protection | Application layer is type-/memory-safe Dis bytecode; modules type-checked at load | By construction | `libinterp/`; `CLAUDE.md` (link typecheck) | FPT_TDC.1 | Eliminates whole CWE classes for ~700 Limbo apps | -| **SI-7** / 3.14.x | Software/firmware/information integrity | `.dis` path-integrity verifier; tracked `dis/` tree; hash-chained audit | By construction | `.github/workflows/verify-dis-paths.yml`; `tools/verify-dis-paths.sh` | FPT_TST | | +| **SI-7** / 3.14.x | Software/firmware/information integrity | bytecode built from source at release and checked against a tracked module manifest; hash-chained audit | By construction | `.github/workflows/verify-dis-build.yml`; `tools/verify-dis-build.sh`; `tools/dis-manifest.txt` | FPT_TST | | | **SI-16** | Memory protection | No raw pointers; bounds-checked arrays in Dis VM | By construction | `libinterp/` | FPT_TDC.1 | C TCB (emu/libsec) is *not* memory-safe — covered by CodeQL/fuzz/formal only | | **SI (TCB race residual)** | Integrity of the TSF itself | Namespace primitives formally verified; **3 emu-host UAF races open** | Partial | `formal-verification/TODO-RACE-CONDITIONS.md` | FPT_SEP.1 | **gap (F-1)** — formally confirmed defects | @@ -105,7 +105,7 @@ and the four-family itemization in | Control | Requirement (paraphrase) | How InferNode satisfies it | Satisfaction basis | Evidence path | CC SFR crosswalk | Notes | |---------|--------------------------|-----------------------------|--------------------|---------------|------------------|-------| | **CM-2** / 3.4.1 | Baseline configuration | Reproducible Inferno-`mk` builds; tracked `dis/` runtime tree | By construction | `CLAUDE.md` ("Why Native Tools") | ALC (Part 3) | | -| **CM-5** | Access restrictions for change | Pre-commit + CI verifiers gate commits/PRs | Configurable | `hooks/`, `.github/workflows/verify-dis-paths.yml` | ALC | | +| **CM-5** | Access restrictions for change | CI verifiers gate PRs; `hooks/post-merge` keeps working trees current | Configurable | `hooks/`, `.github/workflows/verify-dis-build.yml` | ALC | | | **CM-6** / 3.4.2 | Configuration settings | CNSA mode (`/env/cnsamode`), `NODEVS`, export scope are explicit settings | Configurable | `appl/lib/crypt/tls.b` (`cnsamode`); `CNSA-2.0.md` | FMT_SMF.1 | Secure settings are opt-in — integrator must set | | **CM-7** / 3.4.6–3.4.7 | Least functionality | Small TCB; `NODEVS`; compose only needed file services; ring-fence guard keeps test-only harness out of releases | By construction | `CLAUDE.md` (Ring-fence rule); `.github/workflows/ci.yml`, `release.yml` | FMT_MSA.3 | | | **CM-14 / SR** | Signed components / provenance | SHA-pinned CI actions; Sigstore cosign; SLSA provenance; SBOM | By construction | `.github/workflows/release.yml`, `scorecard.yml`, `sbom.yml` | ALC / (SR family) | See §7 | diff --git a/hooks/pre-commit b/hooks/pre-commit deleted file mode 100755 index 5b0b63cda..000000000 --- a/hooks/pre-commit +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -# -# pre-commit — refuse to commit if any tracked Limbo source has a -# stale or missing .dis at its module's declared PATH. -# -# This is the local catch for the recurring "stale build artefacts" -# bug class: someone (often Claude) edits appl/cmd/lucictx.b, manually -# compiles to dis/cmd/lucictx.dis, but lucifer loads /dis/lucictx.dis -# and runs the old code. Every fix appears to "do nothing" until -# someone notices the path mismatch. We've burned multiple debug -# sessions on this — see INFR-28 history. -# -# What this hook does: -# 1. Run tools/verify-dis-paths.sh, which compares each -# appl/cmd/*.b's mtime against dis/.dis. -# 2. If any source is newer than its installed .dis, ABORT the -# commit and print the failing source/target pairs. -# -# To recover: rebuild with tools/compile-limbo.sh (or `mk install`), -# then re-run `git commit`. -# -# Bypass for emergencies: `git commit --no-verify`. Don't do it. - -set -e - -ROOT="$(git rev-parse --show-toplevel)" - -if [ ! -x "$ROOT/tools/verify-dis-paths.sh" ]; then - # Hook is newer than the verifier on disk — let the commit through - # rather than block on missing infrastructure. - exit 0 -fi - -if ! "$ROOT/tools/verify-dis-paths.sh"; then - echo "" >&2 - echo "pre-commit: refusing to commit with stale .dis artefacts." >&2 - echo " Fix: tools/compile-limbo.sh .b" >&2 - echo " Or: mk install (in the affected source dir)" >&2 - echo " Bypass (don't): git commit --no-verify" >&2 - exit 1 -fi diff --git a/mkfiles/mkdis b/mkfiles/mkdis index fb3025e89..f342e229f 100644 --- a/mkfiles/mkdis +++ b/mkfiles/mkdis @@ -14,7 +14,11 @@ clean:V: clean-std nuke:V: nuke-std $DISBIN/%.dis: %.dis - rm -f $DISBIN/$stem.dis && cp $stem.dis $DISBIN/$stem.dis + # dis/ is a build product and git does not track empty directories, + # so the target directory may not exist in a fresh clone. + mkdir -p $DISBIN + rm -f $DISBIN/$stem.dis + cp $stem.dis $DISBIN/$stem.dis %.dis: $MODULES $SYS_MODULE diff --git a/tools/compile-limbo.sh b/tools/compile-limbo.sh index 541927a0a..f972eace2 100755 --- a/tools/compile-limbo.sh +++ b/tools/compile-limbo.sh @@ -52,7 +52,8 @@ fi scan_module_path() { # Print the PATH constant of the module the file IMPLEMENTS. - # See tools/verify-dis-paths.sh for matching rules — kept in sync. + # The module's own PATH constant decides where the .dis goes; never + # pick an -o path by hand. awk ' /^implement[[:space:]]+[A-Za-z][A-Za-z0-9_]*[[:space:]]*;/ { match($0, /[A-Za-z][A-Za-z0-9_]*[[:space:]]*;/) diff --git a/tools/dis-manifest.txt b/tools/dis-manifest.txt new file mode 100644 index 000000000..bd2e6e899 --- /dev/null +++ b/tools/dis-manifest.txt @@ -0,0 +1,964 @@ +acme/dis/Calendar.dis +acme/dis/Chat.dis +acme/dis/Ctag.dis +acme/dis/Feedkey.dis +acme/dis/Jwin.dis +acme/dis/Mail.dis +acme/dis/Mailpop3.dis +acme/dis/Navigator.dis +acme/dis/Prompt.dis +acme/dis/Sql.dis +acme/dis/Wiki.dis +acme/dis/adeb.dis +acme/dis/adict.dis +acme/dis/adiff.dis +acme/dis/agrep.dis +acme/dis/airc.dis +acme/dis/awd.dis +acme/dis/cd.dis +acme/dis/irc.dis +acme/dis/mkbox.dis +acme/dis/rect.dis +acme/dis/spout.dis +acme/dis/win.dis +acme/dis/winm.dis +dis/2fa.dis +dis/9660srv.dis +dis/9cpu.dis +dis/9export.dis +dis/9win.dis +dis/acme.dis +dis/acme/acme.dis +dis/acme/buff.dis +dis/acme/col.dis +dis/acme/dat.dis +dis/acme/disk.dis +dis/acme/ecmd.dis +dis/acme/edit.dis +dis/acme/elog.dis +dis/acme/exec.dis +dis/acme/file.dis +dis/acme/frame.dis +dis/acme/fsys.dis +dis/acme/graph.dis +dis/acme/gui.dis +dis/acme/look.dis +dis/acme/regx.dis +dis/acme/row.dis +dis/acme/scrl.dis +dis/acme/styxaux.dis +dis/acme/text.dis +dis/acme/time.dis +dis/acme/util.dis +dis/acme/wind.dis +dis/acme/xfid.dis +dis/acmeevent.dis +dis/ar.dis +dis/archfs.dis +dis/audiotone.dis +dis/auditfs.dis +dis/auditget.dis +dis/auditverify.dis +dis/auplay.dis +dis/auth/aescbc.dis +dis/auth/ai2key.dis +dis/auth/changelogin.dis +dis/auth/convpasswd.dis +dis/auth/countersigner.dis +dis/auth/createsignerkey.dis +dis/auth/createuser.dis +dis/auth/dsagen.dis +dis/auth/factotum.dis +dis/auth/getpk.dis +dis/auth/keyfs.dis +dis/auth/keysrv.dis +dis/auth/logind.dis +dis/auth/mkauthinfo.dis +dis/auth/passwd.dis +dis/auth/proto/infauth.dis +dis/auth/proto/p9any.dis +dis/auth/proto/pass.dis +dis/auth/proto/sign.dis +dis/auth/rpc.dis +dis/auth/rsagen.dis +dis/auth/secstore-setup.dis +dis/auth/secstore.dis +dis/auth/secstored.dis +dis/auth/signer.dis +dis/auth/verify.dis +dis/auxi/cpuslave.dis +dis/auxi/rdbgsrv.dis +dis/auxi/rstyxd.dis +dis/awk.dis +dis/basename.dis +dis/bdf2subfont.dis +dis/bind.dis +dis/bioget.dis +dis/bit2gif.dis +dis/broke.dis +dis/bytes.dis +dis/cal.dis +dis/calc.dis +dis/calendar9p.dis +dis/cat.dis +dis/cd.dis +dis/cddb.dis +dis/charon.dis +dis/charon/build.dis +dis/charon/chutils.dis +dis/charon/cookiesrv.dis +dis/charon/ctype.dis +dis/charon/date.dis +dis/charon/event.dis +dis/charon/file.dis +dis/charon/ftp.dis +dis/charon/gui.dis +dis/charon/http.dis +dis/charon/img.dis +dis/charon/jscript.dis +dis/charon/layout.dis +dis/charon/lex.dis +dis/charon/url.dis +dis/chatsrv.dis +dis/chgrp.dis +dis/chmod.dis +dis/cleanname.dis +dis/cmd/git/add.dis +dis/cmd/git/branch.dis +dis/cmd/git/checkout.dis +dis/cmd/git/clone.dis +dis/cmd/git/commit.dis +dis/cmd/git/fetch.dis +dis/cmd/git/fs.dis +dis/cmd/git/init.dis +dis/cmd/git/merge.dis +dis/cmd/git/pull.dis +dis/cmd/git/push.dis +dis/cmd/git/rm.dis +dis/cmp.dis +dis/comm.dis +dis/countfs.dis +dis/cp.dis +dis/cprof.dis +dis/cpu.dis +dis/crypt.dis +dis/cut.dis +dis/date.dis +dis/dbfs.dis +dis/dbm/delete.dis +dis/dbm/fetch.dis +dis/dbm/keys.dis +dis/dbm/list.dis +dis/dbm/store.dis +dis/dcr.dis +dis/dd.dis +dis/dial.dis +dis/dict.dis +dis/dict/adict.dis +dis/dict/mkindex.dis +dis/dict/oeis.dis +dis/dict/pg.dis +dis/dict/pgw.dis +dis/dict/roget.dis +dis/dict/simple.dis +dis/dict/utils.dis +dis/dict/wikipedia.dis +dis/diff.dis +dis/disdep.dis +dis/disdump.dis +dis/disk/calc.tab.dis +dis/disk/fdisk.dis +dis/disk/format.dis +dis/disk/ftl.dis +dis/disk/kfs.dis +dis/disk/kfscmd.dis +dis/disk/mbr.dis +dis/disk/mkext.dis +dis/disk/mkfs.dis +dis/disk/pedit.dis +dis/disk/prep.dis +dis/du.dis +dis/echo.dis +dis/ed.dis +dis/edit.dis +dis/emuinit.dis +dis/env.dis +dis/esort.dis +dis/export.dis +dis/fc.dis +dis/fcp.dis +dis/fmt.dis +dis/fortune.dis +dis/freq.dis +dis/fs.dis +dis/fs/and.dis +dis/fs/bundle.dis +dis/fs/chstat.dis +dis/fs/compose.dis +dis/fs/depth.dis +dis/fs/entries.dis +dis/fs/eval.dis +dis/fs/exec.dis +dis/fs/filter.dis +dis/fs/ls.dis +dis/fs/match.dis +dis/fs/merge.dis +dis/fs/mergewrite.dis +dis/fs/mode.dis +dis/fs/not.dis +dis/fs/or.dis +dis/fs/path.dis +dis/fs/pipe.dis +dis/fs/print.dis +dis/fs/proto.dis +dis/fs/query.dis +dis/fs/run.dis +dis/fs/select.dis +dis/fs/setroot.dis +dis/fs/size.dis +dis/fs/unbundle.dis +dis/fs/void.dis +dis/fs/walk.dis +dis/fs/write.dis +dis/ftest.dis +dis/ftpfs.dis +dis/ftrans.dis +dis/gateprobe.dis +dis/getauthinfo.dis +dis/getkey.dis +dis/getline.dis +dis/gettar.dis +dis/gif2bit.dis +dis/gpusrv.dis +dis/grep.dis +dis/grid/lib/announce.dis +dis/grid/register.dis +dis/grid/reglisten.dis +dis/grid/regstyxlisten.dis +dis/gunzip.dis +dis/gzip.dis +dis/history.dis +dis/idea.dis +dis/import.dis +dis/install/applylog.dis +dis/install/arch.dis +dis/install/archfs.dis +dis/install/ckproto.dis +dis/install/create.dis +dis/install/eproto.dis +dis/install/info.dis +dis/install/inst.dis +dis/install/install.dis +dis/install/log.dis +dis/install/logs.dis +dis/install/mergelog.dis +dis/install/mkproto.dis +dis/install/proto.dis +dis/install/proto2list.dis +dis/install/updatelog.dis +dis/install/wdiff.dis +dis/install/wfind.dis +dis/install/wrap.dis +dis/install/wrap2list.dis +dis/iostats.dis +dis/ip/bootpd.dis +dis/ip/dhcp.dis +dis/ip/ping.dis +dis/ip/rip.dis +dis/ip/sntp.dis +dis/ip/tftpd.dis +dis/ip/virgild.dis +dis/jitbench.dis +dis/jitbench2.dis +dis/jitbug.dis +dis/jitbug2.dis +dis/jitcrash.dis +dis/jitshift.dis +dis/jittest.dis +dis/js.dis +dis/kill.dis +dis/ktrans.dis +dis/lib/aadraw.dis +dis/lib/acmewin.dis +dis/lib/arg.dis +dis/lib/asn1.dis +dis/lib/attrdb.dis +dis/lib/attrhash.dis +dis/lib/audit.dis +dis/lib/auditchain.dis +dis/lib/auditprov.dis +dis/lib/auth.dis +dis/lib/auth9.dis +dis/lib/bioauth.dis +dis/lib/bloomfilter.dis +dis/lib/bufio.dis +dis/lib/cfg.dis +dis/lib/cfgfile.dis +dis/lib/chanfill.dis +dis/lib/complete.dis +dis/lib/convcs/8bit_stob.dis +dis/lib/convcs/big5_btos.dis +dis/lib/convcs/big5_stob.dis +dis/lib/convcs/convcs.dis +dis/lib/convcs/cp932_btos.dis +dis/lib/convcs/cp_btos.dis +dis/lib/convcs/cp_stob.dis +dis/lib/convcs/euc-jp_btos.dis +dis/lib/convcs/gb2312_btos.dis +dis/lib/convcs/tune_btos.dis +dis/lib/convcs/tune_stob.dis +dis/lib/convcs/utf8_btos.dis +dis/lib/convcs/utf8_stob.dis +dis/lib/crc.dis +dis/lib/crypt/pkcs.dis +dis/lib/crypt/ssl3.dis +dis/lib/crypt/sslsession.dis +dis/lib/crypt/tls.dis +dis/lib/crypt/x509.dis +dis/lib/csv.dis +dis/lib/daytime.dis +dis/lib/dbm.dis +dis/lib/debdata.dis +dis/lib/debsrc.dis +dis/lib/debug.dis +dis/lib/deflate.dis +dis/lib/devpointer.dis +dis/lib/dial.dis +dis/lib/dialnorm.dis +dis/lib/dialog.dis +dis/lib/dict.dis +dis/lib/dis.dis +dis/lib/diskblocks.dis +dis/lib/disks.dis +dis/lib/ecmascript.dis +dis/lib/encoding/base16.dis +dis/lib/encoding/base32.dis +dis/lib/encoding/base32a.dis +dis/lib/encoding/base64.dis +dis/lib/env.dis +dis/lib/ethcrypto.dis +dis/lib/ether.dis +dis/lib/ethrpc.dis +dis/lib/exception.dis +dis/lib/factotum.dis +dis/lib/fdrun.dis +dis/lib/filepat.dis +dis/lib/format.dis +dis/lib/fsfilter.dis +dis/lib/fslib.dis +dis/lib/fsproto.dis +dis/lib/ftree/cptree.dis +dis/lib/ftree/items.dis +dis/lib/geoproj.dis +dis/lib/git/git.dis +dis/lib/hash.dis +dis/lib/html.dis +dis/lib/ida/ida.dis +dis/lib/ida/idatab.dis +dis/lib/imageremap.dis +dis/lib/imap.dis +dis/lib/inflate.dis +dis/lib/ip.dis +dis/lib/ipattr.dis +dis/lib/json.dis +dis/lib/keyringinst.dis +dis/lib/keyset.dis +dis/lib/libc.dis +dis/lib/libc0.dis +dis/lib/lists.dis +dis/lib/llmclient.dis +dis/lib/lock.dis +dis/lib/login.dis +dis/lib/lucitheme.dis +dis/lib/mailparse.dis +dis/lib/matrixlib.dis +dis/lib/memfs.dis +dis/lib/menu.dis +dis/lib/menuhit.dis +dis/lib/mermaid.dis +dis/lib/midi.dis +dis/lib/msgio.dis +dis/lib/names.dis +dis/lib/nametree.dis +dis/lib/newns.dis +dis/lib/ninep.dis +dis/lib/oldauth.dis +dis/lib/outlinefont.dis +dis/lib/parseman.dis +dis/lib/pdf.dis +dis/lib/plumbing.dis +dis/lib/plumbmsg.dis +dis/lib/pop3.dis +dis/lib/popup.dis +dis/lib/profile.dis +dis/lib/pslib.dis +dis/lib/publicnet.dis +dis/lib/rabin.dis +dis/lib/rand.dis +dis/lib/random.dis +dis/lib/readavif.dis +dis/lib/readdir.dis +dis/lib/readgif.dis +dis/lib/readjpg.dis +dis/lib/readpicfile.dis +dis/lib/readpng.dis +dis/lib/readsvg.dis +dis/lib/readwebp.dis +dis/lib/readxbitmap.dis +dis/lib/regex.dis +dis/lib/regexutils.dis +dis/lib/registries.dis +dis/lib/rfc3339.dis +dis/lib/rfc822.dis +dis/lib/scoretable.dis +dis/lib/secstore.dis +dis/lib/selectfile.dis +dis/lib/sets.dis +dis/lib/sets32.dis +dis/lib/sexprs.dis +dis/lib/slip.dis +dis/lib/smtp.dis +dis/lib/softkbd.dis +dis/lib/sort.dis +dis/lib/spki/spki.dis +dis/lib/spki/verifier.dis +dis/lib/ssl.dis +dis/lib/string.dis +dis/lib/strinttab.dis +dis/lib/stripe.dis +dis/lib/styx.dis +dis/lib/styxflush.dis +dis/lib/styxlib.dis +dis/lib/styxpersist.dis +dis/lib/styxservers.dis +dis/lib/tables.dis +dis/lib/tabs.dis +dis/lib/testing.dis +dis/lib/textwidget.dis +dis/lib/tftp.dis +dis/lib/timers.dis +dis/lib/titlebar.dis +dis/lib/tkclient.dis +dis/lib/translate.dis +dis/lib/twofa.dis +dis/lib/twofaslot.dis +dis/lib/ubfa.dis +dis/lib/url.dis +dis/lib/vac.dis +dis/lib/venti.dis +dis/lib/viewport.dis +dis/lib/virgil.dis +dis/lib/w3c/css.dis +dis/lib/w3c/uris.dis +dis/lib/w3c/xpointers.dis +dis/lib/wait.dis +dis/lib/wallet.dis +dis/lib/watchvars.dis +dis/lib/web.dis +dis/lib/webclient.dis +dis/lib/winplace.dis +dis/lib/wirefmt.dis +dis/lib/wmclient.dis +dis/lib/wmlib.dis +dis/lib/wmsrv.dis +dis/lib/workdir.dis +dis/lib/writegif.dis +dis/lib/x402.dis +dis/lib/xenithwin.dis +dis/lib/xml.dis +dis/limbo.dis +dis/limbtest.dis +dis/listen.dis +dis/llmctl9p.dis +dis/llmsrv.dis +dis/localcron.dis +dis/lockfs.dis +dis/logfile.dis +dis/look.dis +dis/ls.dis +dis/lstar.dis +dis/lucibridge.dis +dis/luciconv.dis +dis/lucictx.dis +dis/lucifer.dis +dis/lucipres.dis +dis/luciuisrv.dis +dis/m4.dis +dis/mail9p.dis +dis/man2html.dis +dis/man2txt.dis +dis/math/ack.dis +dis/math/crackerbarrel.dis +dis/math/factor.dis +dis/math/ffts.dis +dis/math/fibonacci.dis +dis/math/fit.dis +dis/math/genprimes.dis +dis/math/geodesy.dis +dis/math/gr.dis +dis/math/graph0.dis +dis/math/hist0.dis +dis/math/linalg.dis +dis/math/linbench.dis +dis/math/mersenne.dis +dis/math/parts.dis +dis/math/perms.dis +dis/math/pi.dis +dis/math/polyfill.dis +dis/math/polyhedra.dis +dis/math/powers.dis +dis/math/primes.dis +dis/math/sieve.dis +dis/matrix/alert-watcher.dis +dis/matrix/comp-list.dis +dis/matrix/cpu-gauge.dis +dis/matrix/geo-fixture.dis +dis/matrix/geo-map.dis +dis/matrix/line-plot.dis +dis/matrix/llm-context.dis +dis/matrix/llm-recorder.dis +dis/matrix/llm-sessions.dis +dis/matrix/mem-gauge.dis +dis/matrix/net-gauge.dis +dis/matrix/position-table.dis +dis/matrix/proc-list.dis +dis/matrix/risk-gauge.dis +dis/matrix/signal-feed.dis +dis/matrix/sparkline.dis +dis/matrix/sysmon-svc.dis +dis/matrix/tk-notes.dis +dis/matrix/video-ctl.dis +dis/matrix/video-overlay.dis +dis/matrix/video-pane.dis +dis/mc.dis +dis/md5sum.dis +dis/mdb.dis +dis/memfs.dis +dis/mermaid_test.dis +dis/mk.dis +dis/mkdir.dis +dis/mkroot.dis +dis/mntgen.dis +dis/mount.dis +dis/mpeg/decode.dis +dis/mpeg/mpegio.dis +dis/mpeg/mpegperf.dis +dis/mpeg/mpegtest.dis +dis/mpeg/remap24.dis +dis/mpeg/scidct.dis +dis/mpeg/vidplay.dis +dis/mpeg/vidplay9p.dis +dis/mprof.dis +dis/mv.dis +dis/ndb/cs.dis +dis/ndb/csquery.dis +dis/ndb/dns.dis +dis/ndb/dnsquery.dis +dis/ndb/ipquery.dis +dis/ndb/mkhash.dis +dis/ndb/query.dis +dis/ndb/registry.dis +dis/ndb/regquery.dis +dis/netkey.dis +dis/netstat.dis +dis/newer.dis +dis/newuser.dis +dis/ns.dis +dis/nsaudit.dis +dis/nsbuild.dis +dis/os.dis +dis/p.dis +dis/pause.dis +dis/pipefile.dis +dis/pipefs.dis +dis/plumb.dis +dis/plumber.dis +dis/prof.dis +dis/ps.dis +dis/puttar.dis +dis/pwd.dis +dis/ramfile.dis +dis/randpass.dis +dis/raw2iaf.dis +dis/rawdbfs.dis +dis/rcmd.dis +dis/read.dis +dis/rm.dis +dis/rng.dis +dis/runas.dis +dis/scap.dis +dis/sed.dis +dis/sendmail.dis +dis/seq.dis +dis/sh.dis +dis/sh/arg.dis +dis/sh/csv.dis +dis/sh/echo.dis +dis/sh/expr.dis +dis/sh/file2chan.dis +dis/sh/mload.dis +dis/sh/mpexpr.dis +dis/sh/regex.dis +dis/sh/sexprs.dis +dis/sh/sh.dis +dis/sh/std.dis +dis/sh/string.dis +dis/sh/tk.dis +dis/sha1sum.dis +dis/sleep.dis +dis/snapd.dis +dis/sort.dis +dis/stack.dis +dis/stackv.dis +dis/stream.dis +dis/strings.dis +dis/styxchat.dis +dis/styxlisten.dis +dis/styxmon.dis +dis/sum.dis +dis/svc/httpd/alarms.dis +dis/svc/httpd/cache.dis +dis/svc/httpd/cgiparse.dis +dis/svc/httpd/contents.dis +dis/svc/httpd/date.dis +dis/svc/httpd/echo.dis +dis/svc/httpd/httpd.dis +dis/svc/httpd/imagemap.dis +dis/svc/httpd/parser.dis +dis/svc/httpd/redirect.dis +dis/svc/httpd/stats.dis +dis/svc/httpd/wikipost.dis +dis/svc/webget/date.dis +dis/svc/webget/file.dis +dis/svc/webget/ftp.dis +dis/svc/webget/http.dis +dis/svc/webget/image2enc.dis +dis/svc/webget/message.dis +dis/svc/webget/webget.dis +dis/svc/webget/wgutils.dis +dis/tail.dis +dis/tarfs.dis +dis/tcs.dis +dis/tee.dis +dis/telnet.dis +dis/test.dis +dis/test9p.dis +dis/tests/9p_export_test.dis +dis/tests/agent_test.dis +dis/tests/agentlib_mcp_test.dis +dis/tests/agentlib_test.dis +dis/tests/alpha_test.dis +dis/tests/arrayinit_test.dis +dis/tests/asyncio_test.dis +dis/tests/auditchain_test.dis +dis/tests/auditprov_test.dis +dis/tests/auditsign_test.dis +dis/tests/auditverify_test.dis +dis/tests/authneg_test.dis +dis/tests/authnode.dis +dis/tests/awk_test.dis +dis/tests/bioauth_test.dis +dis/tests/bufio_test.dis +dis/tests/casel_test.dis +dis/tests/cipher_matrix_test.dis +dis/tests/concurrency_test.dis +dis/tests/concurrent_auth_test.dis +dis/tests/contacts_tool_test.dis +dis/tests/cookiesrv_httponly_test.dis +dis/tests/cowfs_test.dis +dis/tests/crypto_props_test.dis +dis/tests/crypto_test.dis +dis/tests/cut_test.dis +dis/tests/delegation_budget_test.dis +dis/tests/dial_test.dis +dis/tests/dialnorm_test.dis +dis/tests/edit_test.dis +dis/tests/editor_test.dis +dis/tests/ethcrypto_test.dis +dis/tests/ethrpc_conv_test.dis +dis/tests/example_test.dis +dis/tests/factotum_test.dis +dis/tests/font_format_test.dis +dis/tests/fractal_tool_test.dis +dis/tests/geomap_test.dis +dis/tests/git_test.dis +dis/tests/goroutine_leak_test.dis +dis/tests/gpu_bench.dis +dis/tests/gpu_smoke.dis +dis/tests/gpu_test.dis +dis/tests/handshake_fuzz_test.dis +dis/tests/hello_test.dis +dis/tests/html_test.dis +dis/tests/imap_test.dis +dis/tests/imgload_test.dis +dis/tests/interop_test.dis +dis/tests/interrupt_test.dis +dis/tests/jit_test.dis +dis/tests/json_test.dis +dis/tests/kbddrainer_test.dis +dis/tests/keyring_test.dis +dis/tests/keyringinst_test.dis +dis/tests/lists_test.dis +dis/tests/llmclient_reqshape_test.dis +dis/tests/llmclient_sse_fallback_test.dis +dis/tests/llmclient_think_gating_test.dis +dis/tests/llmsrv_test.dis +dis/tests/lucibridge_approval_test.dis +dis/tests/lucibridge_test.dis +dis/tests/lucifer_flicker_test.dis +dis/tests/lucifer_helpers_test.dis +dis/tests/lucifer_winstart_test.dis +dis/tests/lucifer_zorder_test.dis +dis/tests/lucitheme_test.dis +dis/tests/luciuisrv_test.dis +dis/tests/mail9p_test.dis +dis/tests/mail_provision_test.dis +dis/tests/matrix_perfdashboard_test.dis +dis/tests/matrix_sysmon_test.dis +dis/tests/matrix_test.dis +dis/tests/menu_test.dis +dis/tests/mldsa_stress_test.dis +dis/tests/mldsa_test.dis +dis/tests/mlkem_stress_test.dis +dis/tests/mlkem_test.dis +dis/tests/msg_approval_test.dis +dis/tests/msg_badsrc.dis +dis/tests/msg_capability_test.dis +dis/tests/msg_notification_escape_test.dis +dis/tests/msg_register_test.dis +dis/tests/ninepsrc_config_test.dis +dis/tests/opus_test.dis +dis/tests/outlinefont_test.dis +dis/tests/pathmanage_test.dis +dis/tests/pdf_conformance_test.dis +dis/tests/pdf_test.dis +dis/tests/pqauth_test.dis +dis/tests/pqc_fuzz_test.dis +dis/tests/pres_launch_test.dis +dis/tests/publicnet_host_test.dis +dis/tests/publicnet_test.dis +dis/tests/regex_test.dis +dis/tests/render_registry_test.dis +dis/tests/runner.dis +dis/tests/sdl3_test.dis +dis/tests/secp256k1_test.dis +dis/tests/secstore_abort_probe.dis +dis/tests/secstore_crypto_test.dis +dis/tests/sha3_test.dis +dis/tests/shell_tool_test.dis +dis/tests/slhdsa_test.dis +dis/tests/sms_msgsrc_test.dis +dis/tests/sms_tool_test.dis +dis/tests/softkbd_test.dis +dis/tests/sort_test.dis +dis/tests/spawn_helpers_test.dis +dis/tests/spawn_test.dis +dis/tests/ssl_transport_test.dis +dis/tests/stderr_test.dis +dis/tests/string_test.dis +dis/tests/task_concurrent_probe.dis +dis/tests/task_consistency_test.dis +dis/tests/taskparse_test.dis +dis/tests/tcp_test.dis +dis/tests/tempfile_test.dis +dis/tests/testing/testing_test.dis +dis/tests/textwidget_test.dis +dis/tests/tk_test.dis +dis/tests/tkimgrender.dis +dis/tests/tkrender.dis +dis/tests/tls_crypto_test.dis +dis/tests/tls_live_test.dis +dis/tests/tls_pq_test.dis +dis/tests/tls_protocol_test.dis +dis/tests/tlsclient.dis +dis/tests/tool_schema_test.dis +dis/tests/tooldoc_test.dis +dis/tests/tools9p_test.dis +dis/tests/tooluse_test.dis +dis/tests/twofaslot_test.dis +dis/tests/veltro_cc_alignment_test.dis +dis/tests/veltro_charon_security_test.dis +dis/tests/veltro_concurrent_test.dis +dis/tests/veltro_launch_test.dis +dis/tests/veltro_more_tools_test.dis +dis/tests/veltro_present_security_test.dis +dis/tests/veltro_security_test.dis +dis/tests/veltro_test.dis +dis/tests/veltro_tools_test.dis +dis/tests/voice_scripts_test.dis +dis/tests/wallet_capability_test.dis +dis/tests/wallet_policy_test.dis +dis/tests/webclient_test.dis +dis/tests/webfs_test.dis +dis/tests/wiki9p_security_probe.dis +dis/tests/wireformat_test.dis +dis/tests/wm_apps_test.dis +dis/tests/wmsrv_zorder_test.dis +dis/tests/x402_test.dis +dis/tests/x509_test.dis +dis/tests/xenith_concurrency_test.dis +dis/tests/xenith_exit_test.dis +dis/tests/xml_test.dis +dis/time.dis +dis/timestamp.dis +dis/tlsperf.dis +dis/tokenize.dis +dis/touch.dis +dis/tr.dis +dis/trfs.dis +dis/tsort.dis +dis/unicode.dis +dis/uniq.dis +dis/units.dis +dis/unmount.dis +dis/uudecode.dis +dis/uuencode.dis +dis/vacfs.dis +dis/vacget.dis +dis/vacput.dis +dis/veltro/agentlib.dis +dis/veltro/cowfs.dis +dis/veltro/mc9p.dis +dis/veltro/msg9p.dis +dis/veltro/msgwatch.dis +dis/veltro/ninepsrc.dis +dis/veltro/nsconstruct.dis +dis/veltro/repl.dis +dis/veltro/sources/email.dis +dis/veltro/sources/mockmail.dis +dis/veltro/sources/sms.dis +dis/veltro/speech9p.dis +dis/veltro/subagent.dis +dis/veltro/taskboard9p.dis +dis/veltro/tools/browse.dis +dis/veltro/tools/charon.dis +dis/veltro/tools/contacts.dis +dis/veltro/tools/dial.dis +dis/veltro/tools/diff.dis +dis/veltro/tools/edit.dis +dis/veltro/tools/editor.dis +dis/veltro/tools/exec.dis +dis/veltro/tools/find.dis +dis/veltro/tools/fractal.dis +dis/veltro/tools/gap.dis +dis/veltro/tools/git.dis +dis/veltro/tools/gpu.dis +dis/veltro/tools/grep.dis +dis/veltro/tools/hear.dis +dis/veltro/tools/http.dis +dis/veltro/tools/json.dis +dis/veltro/tools/keyring.dis +dis/veltro/tools/launch.dis +dis/veltro/tools/limbo.dis +dis/veltro/tools/list.dis +dis/veltro/tools/man.dis +dis/veltro/tools/matrix.dis +dis/veltro/tools/memory.dis +dis/veltro/tools/mount.dis +dis/veltro/tools/payfetch.dis +dis/veltro/tools/plan.dis +dis/veltro/tools/present.dis +dis/veltro/tools/read.dis +dis/veltro/tools/say.dis +dis/veltro/tools/search.dis +dis/veltro/tools/shell.dis +dis/veltro/tools/sms.dis +dis/veltro/tools/spawn.dis +dis/veltro/tools/task.dis +dis/veltro/tools/todo.dis +dis/veltro/tools/vision.dis +dis/veltro/tools/wallet.dis +dis/veltro/tools/webfetch.dis +dis/veltro/tools/websearch.dis +dis/veltro/tools/wiki.dis +dis/veltro/tools/write.dis +dis/veltro/tools/xenith.dis +dis/veltro/tools9p.dis +dis/veltro/veltro.dis +dis/veltro/wallet9p.dis +dis/veltro/wiki9p.dis +dis/ventisrv.dis +dis/vid9p.dis +dis/wav2iaf.dis +dis/wc.dis +dis/webfs.dis +dis/webgrab.dis +dis/wiki.dis +dis/wikifs.dis +dis/wm/about.dis +dis/wm/bounce.dis +dis/wm/charon.dis +dis/wm/clock.dis +dis/wm/coffee.dis +dis/wm/colors.dis +dis/wm/date.dis +dis/wm/deb.dis +dis/wm/editor.dis +dis/wm/fractals.dis +dis/wm/ftree.dis +dis/wm/keyring.dis +dis/wm/lens.dis +dis/wm/logon.dis +dis/wm/man.dis +dis/wm/matrix.dis +dis/wm/memory.dis +dis/wm/presrender.dis +dis/wm/rt.dis +dis/wm/sam.dis +dis/wm/samengine.dis +dis/wm/samstub.dis +dis/wm/samtk.dis +dis/wm/settings.dis +dis/wm/sh.dis +dis/wm/shell.dis +dis/wm/task.dis +dis/wm/tetris.dis +dis/wm/view.dis +dis/wm/wallet.dis +dis/wm/wm.dis +dis/wmexport.dis +dis/wmimport.dis +dis/xargs.dis +dis/xd.dis +dis/xenith.dis +dis/xenith/asyncio.dis +dis/xenith/buff.dis +dis/xenith/col.dis +dis/xenith/dat.dis +dis/xenith/disk.dis +dis/xenith/ecmd.dis +dis/xenith/edit.dis +dis/xenith/elog.dis +dis/xenith/exec.dis +dis/xenith/file.dis +dis/xenith/format.dis +dis/xenith/frame.dis +dis/xenith/fsys.dis +dis/xenith/graph.dis +dis/xenith/gui.dis +dis/xenith/imgload.dis +dis/xenith/look.dis +dis/xenith/pngload.dis +dis/xenith/regx.dis +dis/xenith/render.dis +dis/xenith/render/charonrender.dis +dis/xenith/render/htmlfmt.dis +dis/xenith/render/htmlrender.dis +dis/xenith/render/imgrender.dis +dis/xenith/render/mdfmt.dis +dis/xenith/render/mdrender.dis +dis/xenith/render/mermaidrender.dis +dis/xenith/render/pdfrender.dis +dis/xenith/render/rlayout.dis +dis/xenith/render/tlayout.dis +dis/xenith/row.dis +dis/xenith/scrl.dis +dis/xenith/styxaux.dis +dis/xenith/text.dis +dis/xenith/time.dis +dis/xenith/util.dis +dis/xenith/wind.dis +dis/xenith/xenith.dis +dis/xenith/xfid.dis +dis/yacc.dis +dis/zeros.dis diff --git a/tools/verify-dis-build.sh b/tools/verify-dis-build.sh new file mode 100755 index 000000000..33fc2305f --- /dev/null +++ b/tools/verify-dis-build.sh @@ -0,0 +1,111 @@ +#!/bin/sh +# +# verify-dis-build.sh — build the runtime tree and check nothing is missing. +# +# dis/ is not tracked: it is a build product, like emu/*/o.emu. A release +# ships it because the CI job that packages the release builds it first. +# +# Untracking removes the drift problem (bytecode can no longer be stale +# relative to its source, because it is always freshly compiled) and +# replaces it with a quieter one: a module dropped from an mkfile's TARG +# simply stops existing, and nothing says so until something fails to load +# at runtime. That is not hypothetical — 45 modules were in this state and +# only kept working because their bytecode happened to be committed. +# +# So the set of files the build must produce is itself tracked, as +# tools/dis-manifest.txt. ~960 lines of text instead of ~960 binaries: +# a module appearing or disappearing is a reviewable diff. +# +# Adding a module: build it, then add its path to the manifest in the same +# commit. Removing one: delete both. The diff should say what you meant. +# +# A MISSING module fails the check: something the product needs stopped +# being built. An EXTRA one is only reported. That asymmetry is +# deliberate -- extras are usually a local scratch build or a step that +# compiles something on the side (release.yml compiles the test-framework +# self-test into dis/lib/), and with bytecode no longer committable, a +# stray file cannot be published by accident the way a stale one could. +# +# Exit codes: +# 0 — the build produced everything the manifest lists +# 1 — modules missing +# 2 — setup error (wrong directory, missing toolchain, build failure) +# +set -e + +# comm(1) requires both inputs in the same collation order, and sort(1) +# collates differently by locale -- a manifest generated under en_GB and +# compared under the C locale on a CI runner fails with +# "comm: file 1 is not in sorted order". Pin both ends to C. +LC_ALL=C +export LC_ALL + +ROOT=$(cd "$(dirname "$0")/.." && pwd) +export ROOT +cd "$ROOT" + +MANIFEST="$ROOT/tools/dis-manifest.txt" + +if [ ! -f mkconfig ] || [ ! -f "$MANIFEST" ]; then + echo "verify-dis-build: run from an InferNode checkout" >&2 + exit 2 +fi + +if ! command -v mk >/dev/null 2>&1 || ! command -v limbo >/dev/null 2>&1; then + echo "verify-dis-build: mk and limbo must be on PATH" >&2 + echo " build them first: SYSTARG=\$(uname -s) OBJTYPE= ./makemk.sh" >&2 + echo " then add: \$ROOT/\$SYSHOST/\$OBJTYPE/bin" >&2 + exit 2 +fi + +# Every tree with a DISBIN under dis/, acme/dis/ or xenith/dis/. +# appl/mpeg and appl/veltro are NOT in appl/mkfile's DIRS, so +# `cd appl && mk install` does not reach them. Listed explicitly rather +# than left to be rediscovered by whoever hits it next. +DIRS="appl appl/mpeg appl/veltro tests" + +echo "verify-dis-build: building the runtime tree" +for d in $DIRS; do + if ! (cd "$d" && mk install) > "$ROOT/.dis-build-$$.log" 2>&1; then + echo "verify-dis-build: build failed in $d" >&2 + grep -E '\.b:[0-9]+:' "$ROOT/.dis-build-$$.log" | grep -v 'warning:' >&2 || true + rm -f "$ROOT/.dis-build-$$.log" + exit 2 + fi + rm -f "$ROOT/.dis-build-$$.log" +done + +# Scope: dis/ (the runtime, which releases ship) and acme/dis/ (acme's own +# command directory). xenith/dis/ is built by appl/xenith/xenith/bin but was +# never tracked and is not staged into releases, so it is not the manifest's +# business -- including it would only add two dozen permanent "extra" lines. +built="$ROOT/.dis-built-$$.txt" +want="$ROOT/.dis-want-$$.txt" +find dis acme/dis -name '*.dis' -type f 2>/dev/null | sed 's|^\./||' | sort > "$built" +# Sort the manifest here too rather than trusting its committed order: a line +# added in the wrong place should be a harmless diff, not a CI failure. +sort "$MANIFEST" > "$want" + +missing=$(comm -23 "$want" "$built") +extra=$(comm -13 "$want" "$built") +rm -f "$built" "$want" + +rc=0 +if [ -n "$missing" ]; then + echo "" >&2 + echo "the build did not produce these, but the manifest lists them:" >&2 + echo "$missing" | sed 's/^/ /' >&2 + echo "" >&2 + echo " A module is usually missing because it is not in its mkfile TARG." >&2 + echo " If it was removed on purpose, drop its line from" >&2 + echo " tools/dis-manifest.txt in the same commit." >&2 + rc=1 +fi +if [ -n "$extra" ]; then + echo "note: built but not listed in tools/dis-manifest.txt:" + echo "$extra" | sed 's/^/ /' + echo " If these are meant to ship, add them to the manifest." +fi +[ "$rc" = 0 ] || exit "$rc" + +echo "OK: the build produced all $(wc -l < "$MANIFEST" | tr -d ' ') modules the manifest lists" diff --git a/tools/verify-dis-paths.sh b/tools/verify-dis-paths.sh deleted file mode 100755 index 969814d7c..000000000 --- a/tools/verify-dis-paths.sh +++ /dev/null @@ -1,108 +0,0 @@ -#!/bin/bash -# -# verify-dis-paths.sh — fail-fast guard against the "wrong .dis target" bug -# that cost us a full session of theme-propagation debugging. -# -# What happened: I was compiling lucifer-side modules with -# limbo -o dis/cmd/lucictx.dis appl/cmd/lucictx.b -# but lucifer loads them via -# LuciCtx: module { PATH: con "/dis/lucictx.dis"; ...} -# i.e. /dis/lucictx.dis (without cmd/). Old stale .dis files at the -# correct path silently kept running while every "rebuilt" file landed -# in a parallel directory emu never read from. -# -# This script verifies that for every Limbo source file in -# appl/cmd/ that contains a `PATH: con "/dis/...` declaration, the -# corresponding compiled .dis exists at that path AND is at least as -# new as the source. Runs in under a second. Pre-commit hook -# candidate; also wired into `make` (see mkfile). -# -# Exit codes: -# 0 — all sources have a fresh, correctly-placed .dis -# 1 — at least one mismatch; details printed to stderr -# 2 — usage / setup error -# -set -euo pipefail - -ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" -cd "$ROOT" - -fail=0 -checked=0 - -# stat(1) is the classic cross-platform divergence: -# macOS / BSD: stat -f %m FILE → mtime as epoch seconds -# GNU / Linux: stat -c %Y FILE → mtime as epoch seconds -# Picking the wrong one prints filesystem-info text starting with -# "File:", which the (( … )) arithmetic later treated as an unset -# variable name and crashed CI. Detect once and stash a function. -if stat -c %Y "$0" >/dev/null 2>&1; then - mtime() { stat -c %Y "$1"; } -else - mtime() { stat -f %m "$1"; } -fi - -scan_module_path() { - # Return the PATH constant of the module that this .b file - # IMPLEMENTS (top-level `implement Foo;`), not the first PATH it - # happens to mention. Files commonly cite the PATHs of modules - # they LOAD (cowfs, etc.) before declaring their own interface; - # matching the first PATH alone gives wrong answers. - # - # Strategy: find `implement Foo;`, then scan forward for - # `Foo: module {` ... `PATH: con "/dis/..."` ... `}`. - awk ' - /^implement[[:space:]]+[A-Za-z][A-Za-z0-9_]*[[:space:]]*;/ { - match($0, /[A-Za-z][A-Za-z0-9_]*[[:space:]]*;/) - impl = substr($0, RSTART, RLENGTH) - sub(/[[:space:]]*;.*$/, "", impl) - } - impl != "" && $0 ~ ("^" impl "[[:space:]]*:[[:space:]]*module") { - in_mod = 1 - next - } - in_mod && /PATH[[:space:]]*:[[:space:]]*con[[:space:]]*"\/dis\// { - match($0, /"\/dis\/[^"]+"/) - if(RSTART > 0) { - p = substr($0, RSTART+1, RLENGTH-2) - print p - exit - } - } - in_mod && /^[[:space:]]*}/ { - in_mod = 0 - } - ' "$1" -} - -for src in appl/cmd/*.b; do - disrel=$(scan_module_path "$src" || true) - [[ -z "$disrel" ]] && continue - - # Strip leading slash and prefix with the source-tree root. - dispath="${disrel#/}" - if [[ ! -f "$dispath" ]]; then - echo "FAIL: $src declares PATH=$disrel but $dispath is missing" >&2 - fail=1 - continue - fi - - src_t=$(mtime "$src") - dis_t=$(mtime "$dispath") - - if (( src_t > dis_t )); then - echo "FAIL: $src is newer than $dispath (recompile needed)" >&2 - fail=1 - fi - checked=$((checked + 1)) -done - -if (( fail )); then - echo "" >&2 - echo "$checked sources checked; FAILURES above." >&2 - echo "Recompile with: limbo -I module -o " >&2 - echo "(do NOT default to dis/cmd/X.dis — read the module's PATH constant)" >&2 - exit 1 -fi - -echo "OK: $checked sources have fresh .dis at their declared PATH" diff --git a/tools/verify-dis-reproducible.sh b/tools/verify-dis-reproducible.sh deleted file mode 100755 index 1381ff045..000000000 --- a/tools/verify-dis-reproducible.sh +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/sh -# -# verify-dis-reproducible.sh — the tracked runtime tree must be exactly -# what the tracked source compiles to. -# -# dis/ is committed so a release runs without the user building anything. -# The cost of that is a tree which can drift from its source with nothing -# to say so: bytecode goes stale, a module gets compiled to the wrong -# path, a source is deleted and its binary is left behind, or a .dis is -# committed that no mkfile ever builds. Every one of those has happened -# here. This check makes all of them impossible to commit. -# -# It does NOT try to reason about where a .dis should go, which is what -# the wrong-target trap defeats. It rebuilds the tree and compares. -# mk already knows every answer such reasoning would try to reconstruct. -# -# Why the tracked .dis are deleted first: mk compares mtimes, and a -# fresh `git checkout` stamps every file with the checkout time, so -# `mk install` concludes the tree is up to date and rebuilds nothing. -# The check would then pass without compiling a line. Removing the -# output forces a real build. -# -# limbo output is deterministic and records the source path relative to -# $ROOT, so this is reproducible across machines and architectures — -# provided the build runs from the repository root. It does not depend -# on the host OS or CPU. -# -# Exit codes: -# 0 — dis/ is exactly what the source compiles to -# 1 — drift; the differing paths are listed -# 2 — setup error (wrong directory, missing toolchain) -# -set -e - -ROOT=$(cd "$(dirname "$0")/.." && pwd) -export ROOT -cd "$ROOT" - -if [ ! -f mkconfig ] || [ ! -d dis ]; then - echo "verify-dis-reproducible: run from an InferNode checkout" >&2 - exit 2 -fi - -if ! command -v mk >/dev/null 2>&1 || ! command -v limbo >/dev/null 2>&1; then - echo "verify-dis-reproducible: mk and limbo must be on PATH" >&2 - echo " build them first: SYSTARG=\$(uname -s) ./makemk.sh" >&2 - echo " then add: \$ROOT/\$SYSHOST/\$OBJTYPE/bin" >&2 - exit 2 -fi - -# Every tree with a DISBIN under dis/. appl/mpeg and appl/veltro are -# NOT in appl/mkfile's DIRS, so `cd appl && mk install` does not reach -# them; they are listed explicitly rather than left to be rediscovered. -DIRS="appl appl/mpeg appl/veltro tests" - -# Three trees hold tracked bytecode, not one: dis/ is the runtime, -# acme/dis/ and xenith/dis/ are the editors' own command directories. -# All three are built by mkfiles under appl/ and all three can drift. -TREES="dis acme/dis xenith/dis" - -echo "verify-dis-reproducible: regenerating dis/ from source" - -git ls-files $TREES | grep '\.dis$' > "$ROOT/.dis-tracked.tmp" -while read -r f; do rm -f "$f"; done < "$ROOT/.dis-tracked.tmp" -rm -f "$ROOT/.dis-tracked.tmp" -find appl tests -name '*.dis' -exec rm -f {} + -find appl tests -name '*.sbl' -exec rm -f {} + - -rc=0 -for d in $DIRS; do - if ! (cd "$d" && mk install) > "$ROOT/.dis-build-$$.log" 2>&1; then - echo "verify-dis-reproducible: build failed in $d" >&2 - grep -E '\.b:[0-9]+:' "$ROOT/.dis-build-$$.log" | grep -v 'warning:' >&2 || true - rc=2 - fi - rm -f "$ROOT/.dis-build-$$.log" -done -[ "$rc" = 0 ] || exit "$rc" - -drift=$(git status --porcelain $TREES | wc -l) -if [ "$drift" -ne 0 ]; then - echo "" >&2 - echo "dis/ does not match what the source compiles to:" >&2 - echo "" >&2 - git status --porcelain $TREES | sed 's/^/ /' >&2 - echo "" >&2 - echo " ' M path' bytecode differs from its source — commit the rebuild" >&2 - echo " ' D path' nothing builds this — the source is missing, or the" >&2 - echo " module is absent from its mkfile TARG" >&2 - echo " '?? path' built but untracked — git add it" >&2 - echo "" >&2 - echo "Rebuild with: for d in $DIRS; do (cd \$d && mk install); done" >&2 - exit 1 -fi - -echo "OK: all $(git ls-files $TREES | grep -c '\.dis$') tracked .dis regenerate byte-identically from source"