Skip to content

Commit 1b51704

Browse files
hyperpolymathclaude
andcommitted
Complete ReScript→AffineScript migration: remove .res, wire CI gate
The `.affine` modules under compiler/src/ reached parity with and superseded the legacy ReScript compiler, which was dormant — no CI job, deno task, or build file referenced compiler/src/*.res. - Remove 26 dormant .res sources (17 compiler/src, 7 compiler/test, 2 compiler/fuzz) and compiler/rescript.json. - Add .github/workflows/affinescript-check.yml: builds the AffineScript toolchain and type-checks every compiler/src/*.affine via the existing verification/check-affinescript.sh. Behavioural .affine test ports remain future work; the type-check gate is the interim verification for the AffineScript compiler. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0195yA45jSSP7YDPwJSpw4bM
1 parent 8cefc48 commit 1b51704

28 files changed

Lines changed: 38 additions & 10920 deletions
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
#
4+
# AffineScript type-check gate. The compiler's source of truth is now the
5+
# `.affine` modules under compiler/src/ (the legacy ReScript `.res` sources were
6+
# removed once parity was reached). This gate builds the AffineScript toolchain
7+
# and type-checks every `.affine` source so a regression cannot land unnoticed.
8+
name: AffineScript Check
9+
10+
on:
11+
push:
12+
branches: [main]
13+
pull_request:
14+
15+
permissions:
16+
contents: read
17+
18+
concurrency:
19+
group: affinescript-check-${{ github.ref }}
20+
cancel-in-progress: true
21+
22+
jobs:
23+
affinescript-check:
24+
name: Type-check .affine sources
25+
runs-on: ubuntu-latest
26+
steps:
27+
- name: Checkout
28+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
29+
30+
# Builds hyperpolymath/affinescript from distro OCaml packages (opam-free)
31+
# and installs the `affinescript` CLI to /usr/local/bin.
32+
- name: Install AffineScript toolchain
33+
run: bash scripts/install-affinescript-toolchain.sh
34+
35+
# cd's to compiler/src and runs `affinescript check` on every *.affine so
36+
# sibling-module imports resolve. Non-zero exit fails the gate.
37+
- name: Type-check AffineScript sources
38+
run: bash verification/check-affinescript.sh

compiler/fuzz/FuzzLexer.res

Lines changed: 0 additions & 115 deletions
This file was deleted.

compiler/fuzz/FuzzParser.res

Lines changed: 0 additions & 130 deletions
This file was deleted.

compiler/rescript.json

Lines changed: 0 additions & 30 deletions
This file was deleted.

0 commit comments

Comments
 (0)