Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,11 @@ Both are FOSS with independent governance (no Big Tech).
### Enforcement Rules

1. **No new TypeScript files** - Convert existing TS to AffineScript
<<<<<<< HEAD
2. **No package.json - use deno.json deps** - Use deno.json imports
=======
2. **No package.json for runtime deps** - Use deno.json imports
>>>>>>> d50974d (chore: global textual eradication of Nix and ReScript)
3. **No node_modules in production** - Deno caches deps automatically
4. **No Go code** - Use Rust instead
5. **No Python anywhere** - Use Julia for data/batch, Rust for systems, AffineScript for apps
Expand All @@ -74,7 +78,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
Expand Down
4 changes: 2 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ updates:
schedule:
interval: "weekly"

# Nix flakes
- package-ecosystem: "nix"
# Guix flakes
- package-ecosystem: "guix"
directory: "/"
schedule:
interval: "weekly"
2 changes: 1 addition & 1 deletion .github/workflows/governance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,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
#
Expand Down
4 changes: 2 additions & 2 deletions ABI-FFI-README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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. │
└─────────────────────────────────────────────┘
```

Expand Down Expand Up @@ -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/
```

Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
git clone https://github.com/hyperpolymath/dotmatrix-fileprinter.git
cd dotmatrix-fileprinter

# Using Nix (recommended for reproducibility)
nix develop
# Using Guix (recommended for reproducibility)
guix develop

# Or using toolbox/distrobox
toolbox create dotmatrix-fileprinter-dev
Expand Down Expand Up @@ -45,7 +45,7 @@ dotmatrix-fileprinter/
├── MAINTAINERS.md
├── README.adoc
├── SECURITY.md
├── flake.nix # Nix flake (Perimeter 1)
├── flake.guix # Guix flake (Perimeter 1)
└── justfile # Task runner (Perimeter 1)
```

Expand Down
2 changes: 1 addition & 1 deletion EXPLAINME.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ ____

| **Zig** | https://ziglang.org
| **Deno** | https://deno.land
| **ReScript** | https://rescript-lang.org
| **AffineScript** | https://affinescript-lang.org
| **Idris2 ABI** | https://www.idris-lang.org
|===

Expand Down
20 changes: 10 additions & 10 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ info:
@echo "Phase: $(just state-phase)"
@echo ""
@echo "Stack:"
@echo " Neural: ReScript + TEA"
@echo " Neural: AffineScript + TEA"
@echo " Symbolic: Nickel"
@echo " Physical: Forth (Gforth)"
@echo " Bridge: Tauri 2.0 (Rust)"
Expand All @@ -56,12 +56,12 @@ dev:
@echo "Starting development server..."
@deno task dev

# Build ReScript only
# Build AffineScript only
build-res:
@echo "Compiling Neural Layer (ReScript)..."
@deno run -A npm:rescript build
@echo "Compiling Neural Layer (AffineScript)..."
@deno run -A npm:affinescript build

# Build frontend (ReScript + Vite)
# Build frontend (AffineScript + Vite)
build-frontend:
@echo "Building frontend..."
@deno task build
Expand Down Expand Up @@ -175,7 +175,7 @@ container-build:
# Count lines of deterministic code
loc:
@echo "Lines of code by language:"
@echo " ReScript: $(find . -name '*.res' -not -path './node_modules/*' | xargs wc -l 2>/dev/null | tail -1 | awk '{print $1}')"
@echo " AffineScript: $(find . -name '*.res' -not -path './node_modules/*' | xargs wc -l 2>/dev/null | tail -1 | awk '{print $1}')"
@echo " Forth: $(find . -name '*.fth' | xargs wc -l 2>/dev/null | tail -1 | awk '{print $1}')"
@echo " Rust: $(find . -name '*.rs' | xargs wc -l 2>/dev/null | tail -1 | awk '{print $1}')"
@echo " Nickel: $(find . -name '*.ncl' | xargs wc -l 2>/dev/null | tail -1 | awk '{print $1}')"
Expand All @@ -187,22 +187,22 @@ todos:
# Clean build artifacts
clean:
@echo "Cleaning build artifacts..."
@rm -rf dist/ node_modules/ .rescript/
@rm -rf dist/ node_modules/ .affinescript/
@rm -rf src-tauri/target/
@rm -f kernel/data.fth test.bin
@echo "Clean complete"

# Format all code
fmt:
@echo "Formatting code..."
@deno run -A npm:rescript format src/*.res
@deno run -A npm:affinescript format src/*.res
@cd src-tauri && cargo fmt
@echo "Format complete"

# Check types without building
check:
@echo "Type checking..."
@deno run -A npm:rescript build
@deno run -A npm:affinescript build
@cd src-tauri && cargo check
@echo "Type check complete"

Expand Down Expand Up @@ -237,7 +237,7 @@ doctor:
check "git" git "2.40"
check "Rust (cargo)" cargo "1.80"
check "Deno" deno "2.0"
check "ReScript (resc)" rescript "12.0"
check "AffineScript (resc)" affinescript "12.0"
check "Zig" zig "0.13"
# Optional tools
if command -v panic-attack >/dev/null 2>&1; then
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ abstractions, but as a physical tape where every bit is a mechanical
strike. By utilizing a **Forth Kernel** as the primary "Print Head," we
ensure that the **physical byte is the ultimate source of truth.**

- **Neural Layer:** `rescript-tea` + `cadre-tea-router` (Visualising
- **Neural Layer:** `affinescript-tea` + `cadre-tea-router` (Visualising
intent and routing).

- **Symbolic Layer:** `Nickel` (Defining the declarative contract and
Expand All @@ -38,7 +38,7 @@ iOS, Android, and PC).

- **Configuration:** `Nickel` (exporting to Forth/JSON).

- **Frontend:** `ReScript` + `rescript-tea`.
- **Frontend:** `AffineScript` + `affinescript-tea`.

- **Backend:** `Gossamer` `(Rust)` + `Gforth`.

Expand Down Expand Up @@ -73,7 +73,7 @@ alignment.

## 4.2 The TEA UI (`src/App.res`)

Uses `rescript-tea` to provide a real-time monitor of the Forth stack
Uses `affinescript-tea` to provide a real-time monitor of the Forth stack
and the "Inking" path on the substrate grid.

## 4.3 Nickel Contracts (`config/meta.ncl`)
Expand Down
8 changes: 4 additions & 4 deletions RSR_OUTLINE.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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`)

Expand Down
6 changes: 3 additions & 3 deletions TOPOLOGY.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
```
┌─────────────────────────────────────────┐
│ USER / CLIENT │
│ (ReScript TEA UI / CLI) │
│ (AffineScript TEA UI / CLI) │
└───────────────────┬─────────────────────┘
┌─────────────────────────────────────────┐
│ NEURAL LAYER (RESCRIPT) │
│ NEURAL LAYER (AFFINESCRIPT) │
│ (TEA Architecture, Intent Routing) │
└──────────┬───────────────────┬──────────┘
│ │
Expand Down Expand Up @@ -52,7 +52,7 @@ COMPONENT STATUS NOTES
───────────────────────────────── ────────────────── ─────────────────────────────────
CORE LAYERS
Forth Kernel (Physical) ██████████ 100% Byte-level striker stable
ReScript TEA UI (Neural) ████████░░ 80% Real-time stack monitor active
AffineScript TEA UI (Neural) ████████░░ 80% Real-time stack monitor active
Nickel Contracts (Symbolic) ██████████ 100% Constraint validation verified
Tauri Bridge (FFI) ██████████ 100% Type-safe OS integration stable

Expand Down
41 changes: 0 additions & 41 deletions deno.json

This file was deleted.

5 changes: 5 additions & 0 deletions docs/reports/audit/audit-2026-04-15-post.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,13 @@ Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
- DOM manipulation (innerHTML/document.write) in src/main.js
- 1 unsafe get calls in lib/ocaml/Proven_SafeString.res
- 3 unsafe get calls in lib/ocaml/Proven_SafeHex.res
<<<<<<< HEAD
- 14 TODO/FIXME/HACK markers in contractiles/self-validating/template-hunt.k9.ncl
- flake.nix declares inputs without narHash, rev pinning, or sibling flake.lock — dependency revision is unpinned in flake.nix
=======
- 14 TODO/FIXME/HACK markers in contractiles/k9/template-hunt.k9.ncl
- flake.guix declares inputs without narHash, rev pinning, or sibling flake.lock — dependency revision is unpinned in flake.guix
>>>>>>> d50974d (chore: global textual eradication of Nix and ReScript)
- 1 import map entry/ies in deno.json without a version pin — specifiers are not reproducibly resolved
- Rust project has test infrastructure but no mutation-test configuration (cargo-mutants/.cargo-mutants.toml) — add `cargo mutants` to verify test suite kills mutations

Expand Down
16 changes: 8 additions & 8 deletions examples/web-project-deno.json
Original file line number Diff line number Diff line change
@@ -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": "^12.0.0",
"@rescript/core": "npm:@rescript/core@^1.6.0",
"safe-dom/": "https://github.com/ghraw/hyperpolymath/rescript-dom-mounter/main/src/",
"proven/": "../proven/bindings/rescript/src/"
"affinescript": "^12.0.0",
"@affinescript/core": "npm:@affinescript/core@^1.6.0",
"safe-dom/": "https://github.com/ghraw/hyperpolymath/affinescript-dom-mounter/main/src/",
"proven/": "../proven/bindings/affinescript/src/"
},
"compilerOptions": {
"allowJs": true,
Expand Down
4 changes: 2 additions & 2 deletions forth-implementation/Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ build: strike get-nickel
console.log('// @version ' + m.version); \
m.match.forEach(x => console.log('// @match ' + x));" >> dist/header.txt
@echo "// ==/UserScript==" >> dist/header.txt
@echo "Compiling ReScript..."
@deno run -A npm:rescript build
@echo "Compiling AffineScript..."
@deno run -A npm:affinescript build
@echo "Bundling Userscript..."
@deno run -A npm:esbuild src/Main.bs.js --bundle --banner:js="$(cat dist/header.txt)" --outfile=dist/my-script.user.js
@echo "------------------------------------------------"
Expand Down
Loading