Tree:
d949274f2b
master
v0.1a
${ noResults }
2 Commits (d949274f2bfbe3fe6c25ab03245df8e4013b85bd)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
d949274f2b |
G-172: correct the zig-gate rebuild-blocker claim; Approach 6 -> in-situ; r2 family + tools republished at baseline floor
The drafting session recorded the recipes' required_zig gate as blocking any rebuild on this box (a prerelease sorts below 0.16.0; "newest zig otherwise present is 0.15.2"). Wrong: only the stray dev copy is rejected - the zigpin toolchain bin/tools/zig-x86_64-windows-0.16.0/zig.exe is a released 0.16.0, present and passing the gate (the zig-x86_64-windows-* naming family in bin/tools was missed and a removal back-inferred from the artifact records). Notes bullet and Progress corrected; nothing was removed and nothing blocks. Approach 6 rewritten per user decision: republication is in-situ replacement under existing artifact names/revisions - punkbin immutability deliberately violable during alpha (all consumers in-house, zero third-party users). Progress: Approach 6 executed for the r2 generation + tools (punkbin ab5611d pushed) - full bootstrap rebuild with the pinned zig, zmm=0 ymm=0 audits on all five binaries, family_check PASS, two consecutive core-gate PASS runs with identical totals (interp-36.7 bgerror-race jitter and a 4h httpProxy.test ThreadLevel-1 hang documented). Record-honesty residual noted: published tomls carry emission-time [tests] summaries - refresh folded into Approach 3. Remaining: floor field, audit tool, punk-runtime surfacing; r1 disposition + bin/punk9* kit rebake behind those. goals_lint: clean (81 active, 91 archived). Claude-Session: https://claude.ai/code/session_01WXribLxUjk3dZUsN3r6rKb Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
4 days ago |
|
|
946a32da19 |
G-172 drafted (proposed) + the four recipe pins: distributed binaries get a baseline CPU floor
The published tclsh9.0.5 runtime family is AVX-512-only. A flagless
bin/punk-runtime.cmd fetch hands a fresh checkout the curated win32-x86_64
default (tclsh9.0.5-punk-r2.exe), which on a CPU without AVX-512 raises #UD and
is killed with STATUS_ILLEGAL_INSTRUCTION (0xC000001D, errorlevel -1073741795)
before writing a byte - no message, no prompt, no error. First reported as a
Windows-version difference (25H2 works, 23H2 does not); it is not one.
Cause: the recipes called b.standardTargetOptions(.{}) and no build path passed
-Dtarget/-Dcpu, so zig resolved cpu_model .determined_by_arch_os by NATIVE
detection and ReleaseFast auto-vectorised to the Zen 5 build host. Measured: all
six published tclsh9.0.5-* artifacts (punk + plain, r1 + r2, both -bi- variants)
carry 2756 zmm-operand instructions each - real EVEX encodings, first site at the
front of .text, and Tcl has no runtime CPU dispatch - as do bin/punk905.exe,
punk9-dev.exe, punk9_beta.exe, punk9bi_beta.exe, punkdeclare.exe and
punkfiledemo.exe. bin/punkzip.exe carries 1724 and bin/punkres.exe 1423, so a
bake on such a machine fails too. An older generation (punk901*, punk9.exe,
xcritcl.exe, tclsh90s*) is AVX2-only from an earlier host: same defect, milder
floor. Confirmed across three machines - Zen 2 dies, Zen 4 and Zen 5 run.
Pins applied to all four in-repo recipes (suite_tcl90, suite_tcl86, punkzip,
punkres): standardTargetOptions gains .default_target = .{ .cpu_model =
.baseline }, so a flagless build is portable while -Dcpu=native remains the
developer opt-in and -Dtarget=<triple> is unaffected. Floor chosen as baseline
(x86-64 v1) - for a Tcl interpreter the codegen delta against v2/v3 is
negligible set against the default runtime failing to start. This has to be a
recipe DEFAULT rather than a build-command convention: "remember to pass -Dcpu=
when publishing" is precisely what failed silently for six artifacts.
Verified by zig ast-check on all four recipes, and by reproducing the mechanism
with the same toolchain and optimize level on an equivalent recipe (flagless ->
x86_64 baseline, zmm=0; -Dcpu=native -> znver5, zmm=805). No suite build was
run: all four recipes gate on required_zig = "0.16.0" with a .lt SemVer compare,
which rejects the bundled prerelease bin/tools/zig-0.16.0-dev.254 - a separate
pre-existing defect, recorded in the goal's Notes and deliberately not fixed
here.
Nothing is rebuilt or republished, and no shipped surface changes, so no project
version bump. Recording the floor in the artifact metadata record, an audit tool,
punk-runtime surfacing it on use/run (fetch stays ungated - fetching for another
platform is a normal workflow), and the rebuild/republish with the defaults.txt
repoint all remain open as G-172.
Assisted-by: harness=claude; primary-model=claude-opus-5[1m]; api-location=anthropic.com
|
4 days ago |