From dc7f7407e08f54e4a2a3c1d1723b2a7d6959532d Mon Sep 17 00:00:00 2001 From: Moon Flower Date: Wed, 14 Oct 2026 09:09:21 +0330 Subject: docs: archive the frozen stage code as one compressed tarball docs/history kept six stages with a full copy of the project under code/, 3.8 mb of sources duplicated from stage to stage and already superseded. store them as docs/history/code-snapshots.tar.gz, 0.66 mb, and extract one in place to read it. every stage's notes.md stays browsable, and the index says where the code went and how to get it back. the top-level README points at the archive too. its other two links into docs/history, 21-micro and 35-bench, were notes that were never kept and do not resolve; the index now records that. --- docs/history/13-gap-fixes/code/tests/meta.zc | 46 ---------------------------- 1 file changed, 46 deletions(-) delete mode 100644 docs/history/13-gap-fixes/code/tests/meta.zc (limited to 'docs/history/13-gap-fixes/code/tests/meta.zc') diff --git a/docs/history/13-gap-fixes/code/tests/meta.zc b/docs/history/13-gap-fixes/code/tests/meta.zc deleted file mode 100644 index bc89454..0000000 --- a/docs/history/13-gap-fixes/code/tests/meta.zc +++ /dev/null @@ -1,46 +0,0 @@ -fn ipow(a, b) { let r = 1; while (b > 0) { r *= a; b--; } return r; } -// a parse word that adds an operator to the compiler's tables -immediate fn pow_op() { next(); add_binop("**", 11, "ipow c"); return 0; } -pow_op - -// unless (cond) stmt: a parse word that emits code itself -immediate fn unless() -{ - let a; - next(); - expect(intern("(")); rval(); plainuse(expr()); rval(); expect(intern(")")); - emitseq(useq[0], ulen[0]); // not - a = hole(); op(O_JZ); // skip the body when the condition was true - substmt(); - setlit(a, here); - return 0; -} -// repeat N { body }: a macro, built from token lists -immediate fn repeat() -{ - let n, body, i = 0; - next(); n = tv; next(); - body = grab(); - while (i < n) { feed(qdup(body)); i++; } - free(d*body); - return 0; -} -fn main() -{ - putn(2 ** 10); putc(' '); putn(3 + 2 ** 3 * 2); putc(10); - unless (1 > 2) puts("unless ok\n"); - unless (2 > 1) puts("wrong\n"); - repeat 3 { putc('r'); } - putc(10); - let q = quote { putn(40 + 2); putc(10); return 7; }; - putn(q[0]); putc(' '); - putn(eval(q)); putc(10); - let f = compile(q); - putn(f()); putc(10); - free(d*q); - let defs = quote { fn sq(x) { return x * x; } }; - load(defs); - free(d*defs); - putn(evals("return sq(12);")); putc(10); - return 0; -} -- cgit v1.2.3