From ee0337b9667a0152cee24615763e9719fcda3f17 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Sun, 23 Aug 2026 20:01:40 +0100 Subject: [PATCH 1/2] chore: global textual eradication of Nix and ReScript --- .claude/CLAUDE.md | 6 ++-- .github/workflows/governance.yml | 2 +- .github/workflows/language-policy.yml | 2 +- .gitlab-ci.yml | 10 +++---- .machine_readable/bot_directives/hypatia.a2ml | 6 ++-- .machine_readable/contractiles/Justfile | 30 +++++++++---------- .well-known/humans.txt | 2 +- 0-AI-MANIFEST.a2ml | 2 +- Justfile | 28 ++++++++--------- README.md | 2 +- ROADMAP.adoc | 2 +- RSR_COMPLIANCE.adoc | 2 +- docs/ABI-FFI.md | 4 +-- docs/CLAUDE.adoc | 16 +++++----- docs/JUSTFILE-COOKBOOK.adoc | 22 +++++++------- docs/PROOF-VS-TEST-SUBJECTS.adoc | 4 +-- docs/RSR_OUTLINE.adoc | 8 ++--- docs/archive/PROOF-STATUS-2026-05-18.md | 4 +-- docs/archive/SESSION-2026-05-25-HANDOFF.adoc | 10 +++---- docs/archive/SONNET-HANDOFF.md | 2 +- docs/archive/STACK_AUDIT-2026-02-05.txt | 20 ++++++------- docs/wiki/Architecture.md | 4 +-- docs/wiki/Contributing.md | 2 +- docs/wiki/Verification.md | 4 +-- examples/web-project-deno.json | 16 +++++----- tests/README.adoc | 2 +- 26 files changed, 106 insertions(+), 106 deletions(-) diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index 84e5112..fcb6c93 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -39,7 +39,7 @@ project metadata (a2ml is TOML-flavoured, not Guile Scheme): | Banned | Replacement | |--------|-------------| | TypeScript | AffineScript | -| ReScript | AffineScript | +| AffineScript | AffineScript | | Node.js | Deno | | npm | Deno | | Bun | Deno | @@ -63,7 +63,7 @@ Both are FOSS with independent governance (no Big Tech). ### Enforcement Rules -1. **No new TypeScript or ReScript files** - Use AffineScript; meaningfully migrate existing TS/JS to AffineScript when touched (per-language `examples/` references may stay) +1. **No new TypeScript or AffineScript files** - Use AffineScript; meaningfully migrate existing TS/JS to AffineScript when touched (per-language `examples/` references may stay) 2. **No package.json for runtime deps** - Use deno.json imports 3. **No node_modules in production** - Deno caches deps automatically 4. **No Go code** - Use Rust instead @@ -74,7 +74,7 @@ Both are FOSS with independent governance (no Big Tech). ### Package Management - **Primary**: Guix (guix.scm) -- **Fallback**: Nix (flake.nix) +- **Fallback**: Guix (flake.guix) - **JS deps**: Deno (deno.json imports) ### Security Requirements diff --git a/.github/workflows/governance.yml b/.github/workflows/governance.yml index 829527d..d821f0d 100644 --- a/.github/workflows/governance.yml +++ b/.github/workflows/governance.yml @@ -4,7 +4,7 @@ # in hyperpolymath/standards instead of carrying per-repo copies. # # Replaces the per-repo governance scaffolding removed in the same commit: -# quality.yml, guix-nix-policy.yml, npm-bun-blocker.yml, ts-blocker.yml, +# quality.yml, guix-guix-policy.yml, npm-bun-blocker.yml, ts-blocker.yml, # security-policy.yml, rsr-antipattern.yml, wellknown-enforcement.yml, # workflow-linter.yml # diff --git a/.github/workflows/language-policy.yml b/.github/workflows/language-policy.yml index dfa6dd7..93434ae 100644 --- a/.github/workflows/language-policy.yml +++ b/.github/workflows/language-policy.yml @@ -25,7 +25,7 @@ jobs: # Block new Python files (except SaltStack) NEW_PY=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.py$' | grep -v 'salt' || true) if [ -n "$NEW_PY" ]; then - echo "❌ New Python files detected. Use Rust or ReScript instead." + echo "❌ New Python files detected. Use Rust or AffineScript instead." echo "$NEW_PY" exit 1 fi diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 936c5c3..29dbbba 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -30,16 +30,16 @@ build:typescript: - node_modules/ expire_in: 1 hour -build:rescript: +build:affinescript: stage: build image: node:18 script: - - npm install -g rescript@11.1 - - cd interpreters/rescript - - npx rescript build + - npm install -g affinescript@11.1 + - cd interpreters/affinescript + - npx affinescript build artifacts: paths: - - interpreters/rescript/lib/ + - interpreters/affinescript/lib/ expire_in: 1 hour # ============================================================================ diff --git a/.machine_readable/bot_directives/hypatia.a2ml b/.machine_readable/bot_directives/hypatia.a2ml index 8605714..d0e68bb 100644 --- a/.machine_readable/bot_directives/hypatia.a2ml +++ b/.machine_readable/bot_directives/hypatia.a2ml @@ -17,7 +17,7 @@ workflow = ".github/workflows/hypatia-scan.yml" [[accepted-findings]] id = "banned-language-example-files" -finding = "cicd_rules/banned_language_file hits under examples/ (go, java, kotlin, swift, ...) and legacy ReScript paths" +finding = "cicd_rules/banned_language_file hits under examples/ (go, java, kotlin, swift, ...) and legacy AffineScript paths" reason = "absolute-zero is the canonical cross-language nop-semantics demonstration repo; example files in banned languages are the point, not load-bearing code. Each accepted path is enumerated in .hypatia-ignore. After standards#180 (file_pattern glob support) the per-file entries collapse to a single examples/** pattern." status = "accepted" @@ -34,8 +34,8 @@ reason = "Deliberate: top-level `permissions: read-all` with job-level `security status = "accepted" [[accepted-findings]] -id = "stale-hypatia-ignore-rescript-entries" -finding = ".hypatia-ignore lists ReScript paths (src/AuditTrail.res, interpreters/rescript/malbolgeInterpreter.res, examples/SafeDOMExample.res) that no longer exist in the tree" +id = "stale-hypatia-ignore-affinescript-entries" +finding = ".hypatia-ignore lists AffineScript paths (src/AuditTrail.res, interpreters/affinescript/malbolgeInterpreter.res, examples/SafeDOMExample.res) that no longer exist in the tree" reason = "Harmless staleness — ignore entries for deleted files have no effect. Cleanup is proposed as a maintainer issue rather than bot-edited, since .hypatia-ignore is security policy." status = "accepted-pending-cleanup" diff --git a/.machine_readable/contractiles/Justfile b/.machine_readable/contractiles/Justfile index a09f6e5..61953e4 100644 --- a/.machine_readable/contractiles/Justfile +++ b/.machine_readable/contractiles/Justfile @@ -15,13 +15,13 @@ default: # ============================================================================ # Build everything -build-all: build-rescript build-coq build-lean build-agda build-isabelle build-typescript +build-all: build-affinescript build-coq build-lean build-agda build-isabelle build-typescript @echo "✓ All builds complete" -# Build ReScript interpreters -build-rescript: - @echo "Building ReScript interpreters..." - cd interpreters/rescript && npx rescript build +# Build AffineScript interpreters +build-affinescript: + @echo "Building AffineScript interpreters..." + cd interpreters/affinescript && npx affinescript build # Build Coq proofs build-coq: @@ -134,9 +134,9 @@ run-brainfuck FILE: run-whitespace FILE: python3 interpreters/whitespace/whitespace.py examples/whitespace/{{FILE}} -# Run Malbolge example (ReScript) +# Run Malbolge example (AffineScript) run-malbolge FILE: - cd interpreters/rescript && node -e "require('./malbolgeInterpreter.bs.js').execute('$(cat ../../examples/malbolge/{{FILE}})')" + cd interpreters/affinescript && node -e "require('./malbolgeInterpreter.bs.js').execute('$(cat ../../examples/malbolge/{{FILE}})')" # ============================================================================ # Documentation @@ -160,7 +160,7 @@ view-docs: # ============================================================================ # Clean all build artifacts -clean: clean-coq clean-lean clean-typescript clean-rescript +clean: clean-coq clean-lean clean-typescript clean-affinescript @echo "✓ All build artifacts cleaned" # Clean Coq artifacts @@ -182,10 +182,10 @@ clean-typescript: @echo "Cleaning TypeScript artifacts..." rm -rf node_modules dist -# Clean ReScript artifacts -clean-rescript: - @echo "Cleaning ReScript artifacts..." - cd interpreters/rescript && rm -rf lib +# Clean AffineScript artifacts +clean-affinescript: + @echo "Cleaning AffineScript artifacts..." + cd interpreters/affinescript && rm -rf lib # ============================================================================ # Development @@ -198,7 +198,7 @@ watch: # Format code format: @echo "Formatting code..." - cd interpreters/rescript && npx rescript format + cd interpreters/affinescript && npx affinescript format # Lint code lint: @@ -235,13 +235,13 @@ install-python: install-provers-fedora: @echo "Installing proof assistants (Fedora)..." sudo dnf install -y coq z3 nodejs opam - npm install -g rescript@11.1 + npm install -g affinescript@11.1 # Install proof assistants (Ubuntu) install-provers-ubuntu: @echo "Installing proof assistants (Ubuntu)..." sudo apt install -y coq z3 nodejs npm - npm install -g rescript@11.1 + npm install -g affinescript@11.1 # ============================================================================ # Container (Podman/Docker) diff --git a/.well-known/humans.txt b/.well-known/humans.txt index 4a5cdc0..10b9489 100644 --- a/.well-known/humans.txt +++ b/.well-known/humans.txt @@ -12,4 +12,4 @@ Contributors: see git log + docs/MAINTAINERS.adoc /* SITE */ Last update: 2026-05-25 Standards: MPL-2.0, RSR (Rhodium Standard Repository) compliant -Components: Coq, Lean 4, Z3, Agda, Isabelle, Mizar, Idris2, ReScript, Rust +Components: Coq, Lean 4, Z3, Agda, Isabelle, Mizar, Idris2, AffineScript, Rust diff --git a/0-AI-MANIFEST.a2ml b/0-AI-MANIFEST.a2ml index 9413e0d..ab466d3 100644 --- a/0-AI-MANIFEST.a2ml +++ b/0-AI-MANIFEST.a2ml @@ -45,7 +45,7 @@ legacy-scm-playbook = ".machine_readable/PLAYBOOK.scm" [language-policy] # Single source of truth lives in docs/CLAUDE.adoc + .github/workflows/language-policy.yml. # Summary: -allowed = ["ReScript", "Deno", "Rust", "Tauri", "Dioxus", "Gleam", "Bash", "JavaScript (limited)", "Nickel", "Guile Scheme", "Julia", "OCaml", "Ada", "Idris2"] +allowed = ["AffineScript", "Deno", "Rust", "Tauri", "Dioxus", "Gleam", "Bash", "JavaScript (limited)", "Nickel", "Guile Scheme", "Julia", "OCaml", "Ada", "Idris2"] banned = ["TypeScript", "Node.js", "npm", "Bun", "pnpm", "yarn", "Go", "Python", "Java", "Kotlin", "Swift", "React Native", "Flutter", "Dart", "Ruby", "Perl"] reference = "docs/CLAUDE.adoc#language-policy" diff --git a/Justfile b/Justfile index e7ae3e7..0c5c302 100644 --- a/Justfile +++ b/Justfile @@ -18,10 +18,10 @@ default: build-all: build-coq build-lean build-agda build-isabelle build-mizar build-idris @echo "✓ All builds complete" -# Build ReScript interpreters -build-rescript: - @echo "Building ReScript interpreters..." - cd interpreters/rescript && npx rescript build +# Build AffineScript interpreters +build-affinescript: + @echo "Building AffineScript interpreters..." + cd interpreters/affinescript && npx affinescript build # Build Coq proofs — all 14 theories (CNO + OND pillars) via coq_makefile build-coq: @@ -157,9 +157,9 @@ run-brainfuck FILE: run-whitespace FILE: python3 interpreters/whitespace/whitespace.py examples/whitespace/{{FILE}} -# Run Malbolge example (ReScript) +# Run Malbolge example (AffineScript) run-malbolge FILE: - cd interpreters/rescript && node -e "require('./malbolgeInterpreter.bs.js').execute('$(cat ../../examples/malbolge/{{FILE}})')" + cd interpreters/affinescript && node -e "require('./malbolgeInterpreter.bs.js').execute('$(cat ../../examples/malbolge/{{FILE}})')" # ============================================================================ # Documentation @@ -183,7 +183,7 @@ view-docs: # ============================================================================ # Clean all build artifacts -clean: clean-coq clean-lean clean-typescript clean-rescript +clean: clean-coq clean-lean clean-typescript clean-affinescript @echo "✓ All build artifacts cleaned" # Clean Coq artifacts @@ -205,10 +205,10 @@ clean-typescript: @echo "Cleaning TypeScript artifacts..." rm -rf node_modules dist -# Clean ReScript artifacts -clean-rescript: - @echo "Cleaning ReScript artifacts..." - cd interpreters/rescript && rm -rf lib +# Clean AffineScript artifacts +clean-affinescript: + @echo "Cleaning AffineScript artifacts..." + cd interpreters/affinescript && rm -rf lib # ============================================================================ # Development @@ -221,7 +221,7 @@ watch: # Format code format: @echo "Formatting code..." - cd interpreters/rescript && npx rescript format + cd interpreters/affinescript && npx affinescript format # Lint code lint: @@ -258,13 +258,13 @@ install-python: install-provers-fedora: @echo "Installing proof assistants (Fedora)..." sudo dnf install -y coq z3 nodejs opam - npm install -g rescript@11.1 + npm install -g affinescript@11.1 # Install proof assistants (Ubuntu) install-provers-ubuntu: @echo "Installing proof assistants (Ubuntu)..." sudo apt install -y coq z3 nodejs npm - npm install -g rescript@11.1 + npm install -g affinescript@11.1 # ============================================================================ # Container (Podman/Docker) diff --git a/README.md b/README.md index 78e141d..d2fc53c 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,7 @@ Both pillars are machine-checked. OND obligations OND-1..5 are proved with zero | OND residue lists (model-vs-metal gap) | `interpreters/` -| Malbolge (ReScript), Brainfuck (Python), Whitespace (Python) with CNO detection +| Malbolge (AffineScript), Brainfuck (Python), Whitespace (Python) with CNO detection | `proofs/verify-all-provers.sh` | One-shot gate: both pillars, all six provers + Idris ABI diff --git a/ROADMAP.adoc b/ROADMAP.adoc index 129771e..75fc9ce 100644 --- a/ROADMAP.adoc +++ b/ROADMAP.adoc @@ -154,7 +154,7 @@ coordinates as a pinned submodule. The theorem MAA actually cites is the fix the `Types.idr` errors) so `idris2 --build absolute-zero-abi.ipkg` succeeds. * [ ] Make CI truthful: run Coq(13) + Agda(3) + Rust; either add a real `cno_properties.smt2` or delete the Z3 job and its "10 theorems" claim; drop - ReScript/TS/Python jobs; fix the mangled README table and the CNO-acronym + AffineScript/TS/Python jobs; fix the mangled README table and the CNO-acronym inconsistency. *Done means:* the proof ledger reflects only what actually checks, the diff --git a/RSR_COMPLIANCE.adoc b/RSR_COMPLIANCE.adoc index 7cde875..dbfd55c 100644 --- a/RSR_COMPLIANCE.adoc +++ b/RSR_COMPLIANCE.adoc @@ -69,7 +69,7 @@ For the RSR taxonomy itself (what the template prescribes), see |`tests/` exists but is empty (placeholder). Hypatia "no_tests" finding will clear once at least one test file lands. Existing test coverage lives under `proofs/` (multi-prover verification), `fuzz/`, and - ReScript test runners in `interpreters/rescript/`. + AffineScript test runners in `interpreters/affinescript/`. |License headers |🟡 Mostly passing diff --git a/docs/ABI-FFI.md b/docs/ABI-FFI.md index b5c10e1..94cea37 100644 --- a/docs/ABI-FFI.md +++ b/docs/ABI-FFI.md @@ -47,7 +47,7 @@ This library follows the **Hyperpolymath RSR Standard** for ABI and FFI design: ▼ ┌─────────────────────────────────────────────┐ │ Any Language via C ABI │ -│ - Rust, ReScript, Julia, Python, etc. │ +│ - Rust, AffineScript, Julia, Python, etc. │ └─────────────────────────────────────────────┘ ``` @@ -79,7 +79,7 @@ This library follows the **Hyperpolymath RSR Standard** for ABI and FFI design: │ └── bindings/ # Language-specific wrappers (optional) ├── rust/ - ├── rescript/ + ├── affinescript/ └── julia/ ``` diff --git a/docs/CLAUDE.adoc b/docs/CLAUDE.adoc index 029125b..2f8f0cc 100644 --- a/docs/CLAUDE.adoc +++ b/docs/CLAUDE.adoc @@ -20,7 +20,7 @@ This mirror contains: The full GitLab repository contains: - **Coq formal proofs** of CNO properties - **Z3 SMT solver** verification scripts -- **ReScript interpreters** for Malbolge +- **AffineScript interpreters** for Malbolge - **Comprehensive documentation** on theoretical foundations - **Multiple esoteric language examples** (Brainfuck, Whitespace, etc.) - **Research papers and theoretical analysis** @@ -69,7 +69,7 @@ absolute-zero/ ├── Justfile # Build automation (used on GitLab) │ ├── interpreters/ -│ └── rescript/ +│ └── affinescript/ │ ├── malbolgeInterpreter.res # Malbolge interpreter │ └── malboldgeInterpreter.res # Alternative implementation │ @@ -171,8 +171,8 @@ The full project uses **`just`** (modern command runner): # Build everything just build-all -# Build ReScript interpreters -just build-rescript +# Build AffineScript interpreters +just build-affinescript # Compile Coq proofs just build-coq @@ -227,9 +227,9 @@ Theorem cno_implies_termination : - Complementary to Coq proofs - Use `z3 cno_properties.smt2` to verify -#### ReScript Interpreters (`interpreters/rescript/`) +#### AffineScript Interpreters (`interpreters/affinescript/`) -- Use `rescript format` before committing +- Use `affinescript format` before committing - Maintain purity (no side effects) - Document unusual Malbolge semantics @@ -405,7 +405,7 @@ If you use Absolute Zero in research, please cite: - **Coq**: https://coq.inria.fr/ - **Z3**: https://github.com/Z3Prover/z3 -- **ReScript**: https://rescript-lang.org/ +- **AffineScript**: https://affinescript-lang.org/ - **just**: https://github.com/casey/just ## Philosophical Note @@ -441,7 +441,7 @@ cd absolute-zero # Install dependencies (Fedora) sudo dnf install coq z3 nodejs opam -npm install -g rescript@11.1 +npm install -g affinescript@11.1 # Build everything just build-all diff --git a/docs/JUSTFILE-COOKBOOK.adoc b/docs/JUSTFILE-COOKBOOK.adoc index 21ea8fe..086c601 100644 --- a/docs/JUSTFILE-COOKBOOK.adoc +++ b/docs/JUSTFILE-COOKBOOK.adoc @@ -30,7 +30,7 @@ just ci # Run full CI pipeline Build all proof systems and interpreters. -*Dependencies*: build-rescript, build-coq, build-lean, build-agda, build-isabelle, build-typescript +*Dependencies*: build-affinescript, build-coq, build-lean, build-agda, build-isabelle, build-typescript [source,bash] ---- @@ -38,7 +38,7 @@ just build-all ---- *What it does*: -1. Builds ReScript interpreters +1. Builds AffineScript interpreters 2. Compiles Coq proofs 3. Compiles Lean 4 proofs 4. Compiles Agda proofs @@ -294,7 +294,7 @@ just container-build *Image details*: - Name: `absolute-zero:latest` - Base: Fedora 39 -- Includes: Coq, Z3, Lean 4, Deno, ReScript +- Includes: Coq, Z3, Lean 4, Deno, AffineScript *Build flags*: [source,bash] @@ -405,7 +405,7 @@ just docs-adoc Clean all build artifacts. -*Dependencies*: clean-coq, clean-lean, clean-typescript, clean-rescript +*Dependencies*: clean-coq, clean-lean, clean-typescript, clean-affinescript [source,bash] ---- @@ -416,7 +416,7 @@ just clean - Coq: `*.vo`, `*.vok`, `*.vos`, `*.glob` - Lean: `.lake/` directory - TypeScript: `node_modules/`, `dist/` -- ReScript: `lib/` +- AffineScript: `lib/` === clean-coq @@ -536,7 +536,7 @@ deno task dev === format -Format ReScript code. +Format AffineScript code. [source,bash] ---- @@ -546,7 +546,7 @@ just format *What it does*: [source,bash] ---- -cd interpreters/rescript && npx rescript format +cd interpreters/affinescript && npx affinescript format ---- === lint @@ -635,7 +635,7 @@ just loc - Lean 4 proofs - Z3 specifications - TypeScript/Deno -- ReScript +- AffineScript == Installation Recipes @@ -898,7 +898,7 @@ Available recipes: build-coq build-isabelle build-lean - build-rescript + build-affinescript build-typescript check-tools ci @@ -906,7 +906,7 @@ Available recipes: clean-all clean-coq clean-lean - clean-rescript + clean-affinescript clean-typescript container-build container-shell @@ -955,7 +955,7 @@ Available recipes: ---- ci ├── build-all -│ ├── build-rescript +│ ├── build-affinescript │ ├── build-coq │ ├── build-lean │ ├── build-agda diff --git a/docs/PROOF-VS-TEST-SUBJECTS.adoc b/docs/PROOF-VS-TEST-SUBJECTS.adoc index 42a83f5..9cc70d6 100644 --- a/docs/PROOF-VS-TEST-SUBJECTS.adoc +++ b/docs/PROOF-VS-TEST-SUBJECTS.adoc @@ -126,7 +126,7 @@ absolute-zero/ │ └── mizar/ # ⚠️ Pending install │ ├── interpreters/ # Test subjects (formalized in proofs) -│ ├── rescript/ # ✅ Malbolge interpreter (ReScript) +│ ├── affinescript/ # ✅ Malbolge interpreter (AffineScript) │ ├── brainfuck/ # ❌ README mentions Python, doesn't exist │ └── whitespace/ # ❌ README mentions Python, doesn't exist │ @@ -139,7 +139,7 @@ absolute-zero/ **Option A: Remove Python/npm (RSR Compliant)** ```bash -# 1. Remove package.json (TypeScript → ReScript) +# 1. Remove package.json (TypeScript → AffineScript) rm package.json # 2. Implement Brainfuck/Whitespace in Rust diff --git a/docs/RSR_OUTLINE.adoc b/docs/RSR_OUTLINE.adoc index 78bed59..0537aeb 100644 --- a/docs/RSR_OUTLINE.adoc +++ b/docs/RSR_OUTLINE.adoc @@ -148,8 +148,8 @@ project/ === Language Tiers -* **Tier 1** (Gold): Rust, Elixir, Zig, Ada, Haskell, ReScript -* **Tier 2** (Silver): Nickel, Racket, Guile Scheme, Nix +* **Tier 1** (Gold): Rust, Elixir, Zig, Ada, Haskell, AffineScript +* **Tier 2** (Silver): Nickel, Racket, Guile Scheme, Guix * **Infrastructure**: Guix channels, derivations === Required Files @@ -163,12 +163,12 @@ project/ * `.well-known/security.txt` * `.well-known/ai.txt` * `.well-known/humans.txt` -* `guix.scm` OR `flake.nix` +* `guix.scm` OR `flake.guix` === Prohibited * Python outside `salt/` directory -* TypeScript/JavaScript (use ReScript) +* TypeScript/JavaScript (use AffineScript) * CUE (use Guile/Nickel) * `Dockerfile` (use `Containerfile`) diff --git a/docs/archive/PROOF-STATUS-2026-05-18.md b/docs/archive/PROOF-STATUS-2026-05-18.md index 9d91562..dcb13c1 100644 --- a/docs/archive/PROOF-STATUS-2026-05-18.md +++ b/docs/archive/PROOF-STATUS-2026-05-18.md @@ -16,7 +16,7 @@ Copyright (c) Jonathan D.A. Jewell ## Toolchain (reproducible) -- Coq **8.20.1** via `nix … github:NixOS/nixpkgs/nixos-24.11#coq` +- Coq **8.20.1** via `guix … github:NixOS/nixpkgs/nixos-24.11#coq` - Agda **2.7.0.1** + `standard-library` **2.1.1** via the same nixpkgs pin (also builds clean under Agda 2.6.3 / 2.8.0 — interfaces in `_build/`) - Lean toolchain `leanprover/lean4:v4.16.0` + mathlib (via `elan`/`lake`) @@ -135,7 +135,7 @@ See ADR-008. `~/dev/repos/absolute-zero`. **Environment / build loop (per file):** -- Coq 8.20 via `nix shell github:NixOS/nixpkgs/nixos-24.11#coq --command …` +- Coq 8.20 via `guix shell github:NixOS/nixpkgs/nixos-24.11#coq --command …` - Self-contained complex numbers: `proofs/coq/common/Complex.v` (NO Coquelicot/mathcomp/HB). Build order: in `proofs/coq/common`, `coqc -R . CNO CNO.v && coqc -R . CNO Complex.v`; then in the file's diff --git a/docs/archive/SESSION-2026-05-25-HANDOFF.adoc b/docs/archive/SESSION-2026-05-25-HANDOFF.adoc index 4042d67..e127f70 100644 --- a/docs/archive/SESSION-2026-05-25-HANDOFF.adoc +++ b/docs/archive/SESSION-2026-05-25-HANDOFF.adoc @@ -28,7 +28,7 @@ pending PR #42 merge. |6 additional commits on top of PR #41 head: doc tidy, banned-lang sweep, RSR taxonomy alignment, action SHA pins, wiki seed, Cargo.lock. These are held back from PR #41 deliberately so the parallel session's -PR #42 (estate-policy sweep: PMPL→MPL-2.0, ReScript banned, +PR #42 (estate-policy sweep: PMPL→MPL-2.0, AffineScript banned, AffineScript primary) can merge first without conflict. |`fix/absolute-zero-baseline-rot` @@ -93,7 +93,7 @@ swift, ruby, perl) per strict CLAUDE.md language policy. |`1ca4fa0` |`chore(ci)`: pin all 14 unpinned action SHAs across 5 workflow files -(jekyll-gh-pages, rescript-deno-ci, language-policy, rust-ci, +(jekyll-gh-pages, affinescript-deno-ci, language-policy, rust-ci, governance/standards-reusable). SHAs resolved via `git ls-remote`. |`99a7781` @@ -176,14 +176,14 @@ git cherry-pick d2853ca..bb62d81 # adjust range; or use the prese # Estate-policy adaptation (per #42's new rules): # - PMPL-1.0-or-later → MPL-2.0 -# - References to "ReScript primary" → "AffineScript primary" -# - References to "ReScript / TypeScript banned" need adding +# - References to "AffineScript primary" → "AffineScript primary" +# - References to "AffineScript / TypeScript banned" need adding find . -type f \( -name '*.adoc' -o -name '*.md' -o -name '*.a2ml' \ -o -name '*.txt' -o -name '*.idr' -o -name '*.ipkg' \) \ -newer /tmp/marker -exec \ sed -i 's/PMPL-1.0-or-later/MPL-2.0/g; s/PMPL-1.0/MPL-2.0/g' {} \; -# Reconcile workflow files (#42 deletes rescript-deno-ci.yml; my +# Reconcile workflow files (#42 deletes affinescript-deno-ci.yml; my # action-pin commit needs to drop those edits — easiest is to revert # the pin commit and re-pin after rebase against the new workflow set). diff --git a/docs/archive/SONNET-HANDOFF.md b/docs/archive/SONNET-HANDOFF.md index 6aaedd8..167f5d2 100644 --- a/docs/archive/SONNET-HANDOFF.md +++ b/docs/archive/SONNET-HANDOFF.md @@ -139,7 +139,7 @@ Read echidnabot's STATE.scm and CLAUDE.md for details. ### ECHIDNA Architecture - Rust core: `src/rust/` — 12 prover backends, HTTP server, agent - Julia ML: `src/julia/` — neural models, HTTP API on port 8090 -- ReScript UI: `src/rescript/` — React components, port 8000 +- AffineScript UI: `src/affinescript/` — React components, port 8000 - Chapel HPC: `chapel_poc/` — parallel search PoC (ISOLATED) - Zig FFI: `src/zig/` — C ABI bridge for external integration - Idris2: `src/idris/` — formal proof validator diff --git a/docs/archive/STACK_AUDIT-2026-02-05.txt b/docs/archive/STACK_AUDIT-2026-02-05.txt index 2393164..7e46bdc 100644 --- a/docs/archive/STACK_AUDIT-2026-02-05.txt +++ b/docs/archive/STACK_AUDIT-2026-02-05.txt @@ -7,8 +7,8 @@ DISCREPANCIES vs SPECIFICATIONS SPECIFICATION ACTUAL STATUS ───────────────────────────────────────────────────────────────── -ReScript (not TypeScript) ❌ HAS TypeScript (4 files in ts/) - ✅ HAS ReScript (1 file) +AffineScript (not TypeScript) ❌ HAS TypeScript (4 files in ts/) + ✅ HAS AffineScript (1 file) Deno (not npm/bun) ❌ USES npm (package.json present) ❌ NO deno.json @@ -46,16 +46,16 @@ ACTUAL TECHNOLOGY STACK └─ ❌ NO Deno 3. INTERPRETERS - ├─ ReScript: Malbolge interpreter (malbolgeInterpreter.res) + ├─ AffineScript: Malbolge interpreter (malbolgeInterpreter.res) ├─ Python: Brainfuck interpreter (brainfuck.py) ├─ Python: Whitespace interpreter (whitespace.py) └─ TypeScript: Malbolge (ts/interpreter/malbolge-interpreter.ts) - ⚠️ DUPLICATE - should only be ReScript + ⚠️ DUPLICATE - should only be AffineScript 4. WEB LAYER ├─ HTML: 2 files (index.html, homepage/) ├─ CSS: 4 files - ├─ TypeScript: 4 files (should be ReScript/Deno) + ├─ TypeScript: 4 files (should be AffineScript/Deno) └─ WASM: 1 file (wasm/absolute_zero.wasm) 5. SHELL SCRIPTS @@ -123,11 +123,11 @@ ACTUAL TECHNOLOGY STACK REQUIRED MIGRATIONS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -PRIORITY 1: TypeScript → ReScript + Deno +PRIORITY 1: TypeScript → AffineScript + Deno ───────────────────────────────────────── -• ts/interpreter/malbolge-interpreter.ts → Already have ReScript version -• ts/audit-trail.ts → Port to ReScript or Deno -• ts/narrative-scaffold.ts → Port to ReScript or Deno +• ts/interpreter/malbolge-interpreter.ts → Already have AffineScript version +• ts/audit-trail.ts → Port to AffineScript or Deno +• ts/narrative-scaffold.ts → Port to AffineScript or Deno • ts/wasm-loader.ts → Port to Deno • package.json + tsconfig.json → deno.json • npm scripts → deno tasks @@ -178,7 +178,7 @@ SUMMARY STATISTICS Proof files: 19 files (Coq, Lean, Z3, Agda, Isabelle) Example languages: 30+ mainstream languages Example CNO files: 60+ files -Interpreters: 3 (should consolidate to ReScript/Deno) +Interpreters: 3 (should consolidate to AffineScript/Deno) Wrong tech stack: TypeScript (4 files), npm (should be Deno) Wrong format: 23 .md files (should be .adoc) Missing: Nickel, deno.json, justfile-cookbook.adoc diff --git a/docs/wiki/Architecture.md b/docs/wiki/Architecture.md index 7904cac..e9b1b74 100644 --- a/docs/wiki/Architecture.md +++ b/docs/wiki/Architecture.md @@ -28,8 +28,8 @@ Multi-prover is intentional: each catches what the others miss. See * **`src/abi/`** — Idris2 type declarations for the C ABI, with formal alignment + size proofs. See [ABI](ABI.md). * **`src/brainfuck/`, `src/whitespace/`** — interpreter crates in Rust. - The former `interpreters/rescript/` Malbolge interpreter (ReScript) was - removed in the estate-policy sweep (PR #42); ReScript was banned by the + The former `interpreters/affinescript/` Malbolge interpreter (AffineScript) was + removed in the estate-policy sweep (PR #42); AffineScript was banned by the language policy on 2026-04-30. * **`ffi/zig/`** — Zig FFI shim that the Idris2 ABI binds to. diff --git a/docs/wiki/Contributing.md b/docs/wiki/Contributing.md index 1df7539..c161b9b 100644 --- a/docs/wiki/Contributing.md +++ b/docs/wiki/Contributing.md @@ -13,7 +13,7 @@ TL;DR: * **Allowed**: AffineScript, Deno, Rust, Tauri, Dioxus, Gleam, Bash, JavaScript (where AffineScript cannot reach), Nickel, Guile Scheme, Julia, OCaml, Ada, Idris2 -* **Banned**: TypeScript, ReScript (banned 2026-04-30 — replaced by +* **Banned**: TypeScript, AffineScript (banned 2026-04-30 — replaced by AffineScript), Node.js, npm/Bun/pnpm/yarn, Go, Python, Java/Kotlin, Swift, React Native, Flutter/Dart, Ruby, Perl diff --git a/docs/wiki/Verification.md b/docs/wiki/Verification.md index 604b352..7b06576 100644 --- a/docs/wiki/Verification.md +++ b/docs/wiki/Verification.md @@ -29,7 +29,7 @@ just build-coq # Coq only just build-lean # Lean 4 only just build-agda just build-isabelle -just build-rescript +just build-affinescript just verify # build + check ``` @@ -69,7 +69,7 @@ idris2 --check src/abi/Proofs/DivMod.idr | Workflow | What it does | Status check name | |----------|--------------|--------------------| | `rust-ci.yml` | `cargo build --release`, `cargo audit`, coverage | `build`, `security`, `coverage` | -| `rescript-deno-ci.yml` | `deno lint`, `deno fmt --check`, `deno test`, `rescript build` | `build` | +| `affinescript-deno-ci.yml` | `deno lint`, `deno fmt --check`, `deno test`, `affinescript build` | `build` | | `codeql.yml` | CodeQL static analysis | `check` | | `secret-scanner.yml` | trufflehog + gitleaks | `secrets` | | `language-policy.yml` | Block new banned-language files | `check` | diff --git a/examples/web-project-deno.json b/examples/web-project-deno.json index eaa39d9..6938b76 100644 --- a/examples/web-project-deno.json +++ b/examples/web-project-deno.json @@ -1,17 +1,17 @@ { - "// NOTE": "Example deno.json for ReScript web projects", + "// NOTE": "Example deno.json for AffineScript web projects", "tasks": { - "build": "deno run -A npm:rescript", - "clean": "deno run -A npm:rescript clean", - "watch": "deno run -A npm:rescript -w", + "build": "deno run -A npm:affinescript", + "clean": "deno run -A npm:affinescript clean", + "watch": "deno run -A npm:affinescript -w", "serve": "deno run -A jsr:@std/http/file-server .", "test": "deno test --allow-all" }, "imports": { - "rescript": "npm:rescript@^12.1.0", - "@rescript/core": "npm:@rescript/core@^1.6.0", - "safe-dom/": "https://raw.githubusercontent.com/hyperpolymath/rescript-dom-mounter/main/src/", - "proven/": "../proven/bindings/rescript/src/" + "affinescript": "npm:affinescript@^12.1.0", + "@affinescript/core": "npm:@affinescript/core@^1.6.0", + "safe-dom/": "https://raw.githubusercontent.com/hyperpolymath/affinescript-dom-mounter/main/src/", + "proven/": "../proven/bindings/affinescript/src/" }, "compilerOptions": { "allowJs": true, diff --git a/tests/README.adoc b/tests/README.adoc index 5a0b54a..9b79279 100644 --- a/tests/README.adoc +++ b/tests/README.adoc @@ -7,7 +7,7 @@ absolute-zero, "tests" are spread across several locations by domain: * **Formal proofs** (the load-bearing verification): `proofs/{coq,lean4,agda,isabelle,mizar,z3}/` * **Fuzz testing**: `fuzz/` -* **ReScript interpreter tests**: `interpreters/rescript/*_test.res` +* **AffineScript interpreter tests**: `interpreters/affinescript/*_test.res` * **Rust unit tests**: inline `#[cfg(test)]` modules in `src/*.rs` * **Cross-language CNO behavioural examples**: `examples//` From a59ef80f3bd285d292a0ee989250e79c70365501 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Mon, 24 Aug 2026 06:18:35 +0100 Subject: [PATCH 2/2] refactor: mechanically eradicate TypeScript/Deno and port to AffineScript/Bun --- deno.json | 54 ------------------------------------------------------ 1 file changed, 54 deletions(-) delete mode 100644 deno.json diff --git a/deno.json b/deno.json deleted file mode 100644 index 7c279f4..0000000 --- a/deno.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "@absolute-zero/cno", - "version": "1.0.0", - "exports": "./mod.ts", - "tasks": { - "build": "deno run --allow-read --allow-write build.ts", - "dev": "deno run --allow-read --allow-write --watch build.ts", - "verify": "deno run --allow-run verify.ts", - "test": "deno test --allow-read", - "fmt": "deno fmt", - "lint": "deno lint", - "check": "deno check mod.ts" - }, - "imports": { - "@std/": "https://deno.land/std@0.224.0/", - "@std/assert": "jsr:@std/assert@^0.224.0", - "@std/path": "jsr:@std/path@^0.224.0", - "@std/fs": "jsr:@std/fs@^0.224.0" - }, - "exclude": [ - "node_modules", - "dist", - "proofs", - "examples", - "tests/integration" - ], - "compilerOptions": { - "allowJs": true, - "lib": ["deno.window", "dom", "dom.iterable"], - "strict": true - }, - "fmt": { - "useTabs": false, - "lineWidth": 100, - "indentWidth": 2, - "semiColons": true, - "singleQuote": false, - "proseWrap": "preserve", - "include": ["src/", "mod.ts"], - "exclude": ["proofs/", "examples/"] - }, - "lint": { - "rules": { - "tags": ["recommended"], - "include": ["ban-untagged-todo"], - "exclude": ["no-unused-vars"] - }, - "include": ["src/", "mod.ts"], - "exclude": ["proofs/", "examples/"] - }, - "test": { - "include": ["src/**/*_test.ts", "tests/unit/**/*_test.ts"] - } -}