Tree:
f4031b209f
master
v0.1a
${ noResults }
3 Commits (f4031b209f014faf4b1b1016f4e2e2225e9ecccf)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
f89bd58c31 |
G-100 achieved: suite_tcl86 dependency set (Tk 8.6, tklib, tcllib + tcllibc) and an 8.6 runtests census
Extends the 8.6 buildsuite with the remaining pieces punkshell's Tcl 8 testing
depends on, all built from source with the pinned zig 0.16.0 toolchain only.
Tk 8.6.17 (build_tk86/build_tk86.zig) is a RE-DERIVATION from the staged 8.6
win/makefile.vc + rules.vc, not a port of suite_tcl90's build_tk.zig:
- no generic/tkPkgConfig.c in 8.6 -> no CFG_* defines at all
- rules.vc TCL_MAJOR_VERSION==8 arm -> tk86t.dll + lib/tk8.6 (vs tcl9tk90.dll)
- @TK_WIN_VERSION@ substitutes $(DOTVERSION).0.0, not the tcl-style
<dotversion>.<releaselevel>.<patchlevel> formula
- 8.6 TKOBJS carries no tkIcu/tkImgListFormat/tkImgSVGnano/tkWinGDI/tkWinIco/
tkWinSysTray; XLIBOBJS is a first-class makefile macro here (the 9.0
derivation had to recover those files by hand)
USE_TCL_STUBS + USE_TCLOO_STUBS against libtclstub86.a is the stock rules.vc
arrangement and keeps the dll loadable by both suite shells. tkMain.c is
compiled twice per makefile.vc, the ansi copy forced with -UUNICODE/-U_UNICODE
(verified the pinned zig cc defines neither for x86_64-windows-gnu, so the 8.6
core's ANSI/TCHAR arrangement is matched exactly).
tklib 0.9 and tcllib 2.0 install via their own installer.tcl (batch, packages
only, explicit -pkg-path so the installer's tcl_pkgPath-derived default can
never write off-tree); tcllibc is built by critcl 3.3.1 driving zig cc (tracked
critcl_zig.config, target pinned win32-x86_64-zig - critcl otherwise probes PATH
and falls back to its builtin msvc target). critcl compiles against its own
bundled headers chosen by the driving shell's version, which is why one config
serves both generations.
New evidence tools, run on every build:
tools/tk_smoke.tcl maps a real toplevel with classic + themed widgets,
updates, then destroys it - a load-only check passes
even with no usable display
tools/accel_bench.tcl same payload through sha1's critcl and pure-Tcl
implementations with the digests compared:
4MB -> critcl 5.7ms vs pure-tcl 2736ms = 477x
Test tiers (G-107 policy pattern): test-tcllib/test-tklib on the record tier
inside test-libraries, plus an opt-in test-tk (winDialog/winMsgbox excluded by
default - their message-injection automation blocks on a human under a batch
shell). First censuses on tclsh86ts.exe 8.6.18:
thread 142 run / 0 failed GATE PASS
tklib 796 run / 0 failed record
tcllib 64259 run / 41 failed record (names in the summary artifact)
tclvfs 51 run / 4 failed GATE PASS after baseline extension
The tclvfs baseline grew vfsFtp-1.1..1.3: they sit behind an 'ftp' constraint
needing tcllib's ftp package - absent at the G-099 capture, satisfied now that
the suite installs tcllib - so they run and reach the retired ftp.tcl.tk, the
same external-service class already baselined for vfsUrl-1.2/2.1.
punkshell runtests census (both runs 2026-07-26, identical flags, default
single-process sequential - 8.6 has no tcl::process so -jobs re-convoys):
native Tcl 8.6.17 1003 total / 986 passed / 10 skipped / 7 failed
suite tclsh86ts 1003 total / 987 passed / 10 skipped / 6 failed
runtests_parity.tcl finds exactly ONE difference: punkcheck
concurrency_two_writers_no_corruption failed in the BASELINE run and passed on
the suite runtime - a full-suite-load flake (6/6 twice in isolation on both
runtimes). Zero suite-runtime-only failures. Tk-dependent suites ran unskipped
(repl consolebackends 3/3, including the tkconsole backend on the suite Tk).
Two defects fixed in passing:
- scrubTclEnv never cleared TCL<major>_<minor>_TM_PATH, so suite shells
silently preferred machine/repo tm modules over what the suite had just
installed (a repo-built sha1-2.0.4.tm shadowed tcllib's 2.0.5, md5 2.0.8
shadowed 2.0.9) - any census through such a shell measures the machine. The
scrub list now covers TCL8_0..8_7 + TCL9_0/9_1 in all three sites (per-step,
suite.tcl process-level, bootstrap nested build). suite_tcl90 has the same
exposure via TCL9_0_TM_PATH and is deliberately untouched here (out of this
goal's scope) - pointers recorded in G-108 and G-116.
- build.zig.zon's .fingerprint was hand-authored, so 'zig build' from the
tracked suite dir died with 'invalid fingerprint' - the no-tclsh bootstrap
flow could never have run. Corrected to zig's computed value (its low half
is a checksum of the package name); 'zig build stage' now verified.
Goal flipped to achieved 2026-07-26 and archived; reference sweep updated G-005,
G-101, G-105 and ARCHITECTURE.md, and the archive-time xref pair G-101 <-> G-116
(whose only bridges were the archived G-100/G-103) gained a direct Related
pointer. No project-version bump - arm's-length build tooling, not shipped shell
behaviour.
Assisted-by: harness=claude; primary-model=claude-opus-5[1m]; api-location=anthropic.com
|
2 weeks ago |
|
|
a20a64a2a1 |
G-099 achieved: suite_tcl86 zig buildsuite for Tcl 8.6 (runtime, thread 2.8, tclvfs, core-test gate)
Builds a Tcl 8.6.18 windows runtime from core-8-6-branch sources with the
pinned zig 0.16.0 toolchain only (no MS toolchain), forked from suite_tcl90
(duplication-with-a-note posture). Products (stock threaded-release naming -
rules.vc keeps the 't' SUFX on 8.6):
bin/tcl86t.dll + tcl86t.lib shared core (static zlib compiled in; no zlib1.dll)
bin/tclsh86ts.exe static shell (kit-class; dde/registry static)
bin/tclsh86t.exe dynamic shell against the dll
lib/libtclstub86.a stub lib for extensions
lib/tcl8.6/... script library tree (dde/reg dlls inside)
lib/tcl8/{8.5,8.6}/... tm modules; lib/thread2.8.13, lib/vfs1.4.2
Companions: thread 2.8.13 (thread2813t.dll, TEA installed shape from the
checkout's own pkgIndex.tcl.in) and tclvfs 1.4.2 (vfs142t.dll) build and load;
registry 1.3.5 / dde 1.4.6. No zipfs in 8.6 - exe+dll+on-disk lib tree only,
resolved hermetically (exe/dll-relative, TCLLIBPATH/TCL_LIBRARY unset in all
child runs).
Recipe: build86.zig + build_common.zig + build_zlib86/build_tclthread86/
build_tclvfs86 helpers; tools/ and src/main.zig copied verbatim (suite-agnostic).
Two load-bearing 8.6 findings recorded in the README DERIVATION and recipe
comments: MP_FIXED_CUTOFFS (the in-core libtommath ships no bn_cutoffs.c) and
TCL_BROKEN_MAINARGS + console subsystem for the gcc-class main() entry.
Test gates (suite.tcl test -> zig build test-gate/test-libraries) parse all.tcl
totals (exit codes untrusted) and gate against tracked dispositioned baselines.
First census + two-consecutive-run deterministic PASS (machine SuperBee):
core 46525 run / 2 failed (filename-16.12/16.13 admin-share self-globbing)
thread 142 run / 0 failed (empty baseline)
tclvfs 51 run / 2 failed (vfsUrl-1.2/2.1 external ftp.tcl.tk dependency)
Goal flipped to achieved 2026-07-26 and archived; reference sweep updated G-005,
G-100 (now unblocked), G-101 and ARCHITECTURE.md. No project-version bump
(arm's-length build tooling, not shipped shell behaviour).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
|
2 weeks ago |
|
|
81f69d913f |
G-099 active: suite_tcl86 born on the G-104 contract - sources pinned, staging live, derivation started
Activation gated on the G-112 rename core + G-104 contract (both achieved
today); score re-run recorded. First increment:
- suite_tcl86/: sources.config (source + self-description records - lists and
describes itself via 'make.tcl buildsuite list/info' with no make.tcl
edits), suite.tcl fork (folder-derived naming, {tcl tclthread tclvfs}
requireds, build86.zig recipe file), build86.zig pending-derivation skeleton
(staging succeeds, recipe fails with a clear message), build.zig.zon with
real zig-fetch hashes, README with the DERIVATION record.
- Thread 2.8 selection: thread-2-8-branch @ e14fa771ae (tagged thread-2-8-13,
2.8.13); configure.ac TCL_MAJOR_VERSION==8 guard confirms the pairing.
- 8.6 source records in BOTH flows: dev refs (core-8-6-branch -> tcl86,
thread-2-8-branch, tclvfs trunk 1.4.2-era) + zon per-checkin pins
(tcl 1d1d5cbd91 = 8.6.18 era).
- First staging run through 'make.tcl buildsuite build suite_tcl86' (a real
driver run through the G-104 surface): checkouts staged from the shared
hermetic store, TCL_PATCH_LEVEL 8.6.18 read from the tree.
- makefile.vc derivation findings recorded incl. two Context corrections:
8.6.18 DOES generate tclUuid.h; zlib is prebuilt-import in stock nmake
(zig-only recipe will compile compat/zlib statically).
Core-test census + baseline deliberately pending until a built tclsh86 exists
(recorded in Progress).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
|
2 weeks ago |
|
|
889d3cd1c7 |
G-104: make.tcl buildsuite list/info/build + sources.config self-description contract
buildsuite group added as a declared passthrough (punk::args + fallback paths): list discovers suites (dirs carrying suite.tcl; _build excluded), info renders the manifest-derived detail, build forwards driver args untouched streaming output and exiting with the driver's status (punk-kit-hosted runs launch the driver via the kit's script subcommand, selected by the G-058 marker). Self-description = manifest option: sources.config gains description/product/ doc/zigpin records parsed by both suite.tcl (strict; pinned-zig default now reads zigpin - one source of truth) and make.tcl (tolerant). suite_tcl90 seeded with its records. Copied trees appear automatically (verified with a throwaway copy). Contract documented in new src/buildsuites/README.md + AGENTS.md, indexed from src/AGENTS.md. CHANGELOG extended under 0.23.0. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
2 weeks ago |
|
|
3ca7d1a8ad |
suite.tcl: materialize manifest.uuid in every fossil checkout (provenance completeness)
The published r1 artifact metadata recorded 'unrecorded' checkout uuids for tclvfs/tcllib/tklib: fossil only writes manifest.uuid when the REPOSITORY enables the versioned 'manifest' setting, which those upstreams do not (tcl/tk/thread do). The checkout-scoped setting is ours to control: 'fossil settings manifest u' materializes manifest.uuid immediately and keeps it current across updates - now applied idempotently to every staged checkout on each build. Verified on the live stage (tclvfs f082c47f, tcllib c784f6fd, tklib 2d53beaf now recorded); future emissions carry full provenance (r1 stays immutable as published). Zon-flow tarballs share the upstream limitation - their checkin uuids are derivable from the per-checkin pin URLs; recorded in the comment as the not-yet-wired follow-up. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
3 weeks ago |
|
|
6a92d63cf5 |
G-103: runtime kit family assembly - kit-family + kit-family-artifacts steps, all members verified
suite_tcl90 now assembles and verifies the G-103 family as part of the default pipeline: - kit-family: two staging trees (core, bi) wrap into working-name products tclsh9.0.5.exe / tclsh9.0.5-punk.exe / tclsh9.0.5-punk-bi.exe under out/family. Attached image mirrors the installed prefix - tcl_library/ at the app root (stock C-boot position, no main.tcl - falls through to the interactive shell), tm tree at tcl9/<ver>, batteries under lib/ with their installed-shape pkgIndexes (../../bin -> /app/bin), dlls under bin/, plus a one-line stock pkgIndex hook at lib/pkgIndex.tcl extending auto_path (the tclPkgUnknown mid-scan growth mechanism tcllib's own index uses). - tools/family_check.tcl: per-member self-containment verification from a scratch dir with scrubbed env - patchlevel, zipfs tcl_library, tzdata/ encodings, attached tm modules, functional Thread (cross-thread eval), vfs zip-mount round-trip, tcllib md5 + tcllibc accel engaged, piperepl default-ON/opt-out per variant (::tclsh(istty) discriminator), Tk create/destroy + tklib for bi. All three members PASS. - kit-family-artifacts + tools/family_artifacts.tcl: punkbin-layout emission (immutable -r<N> names via -Dfamilyrev, per-artifact toml metadata with variant/sha1/versions/provenance/G-107 evidence, sha1sums.txt), run UNDER the plain family kit itself. punkbin publication stays a user step. - build_tclthread/build_tk return pkgidx+version facts; tclvfs configured package generation shared between prefix install and family staging; tm-module install list single-sourced; manifestUuid helper tolerates repos without the fossil manifest setting. - consumers: mapvfs.config entries punk9_beta (punk + punk9wintk905.vfs) and punk9bi_beta (punk-bi + punk9win_for_tkruntime.vfs); working names copied to bin/runtime/win32-x86_64 (untracked). src/runtime/AGENTS.md stale runtime.cmd references updated to punk-runtime (G-097). Full pipeline suite.tcl build PASS end-to-end; verification evidence recorded in the goal Progress section. Remaining: punk-runtime list/use metadata surfacing, kit-wrap trial of the new mapvfs entries. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
3 weeks ago |
|
|
f5f2fe7d83 |
G-107: per-library testsuite steps with gate/record/skip policy tiers
The external libraries the suite builds and ships now run their own testsuites under the suite-built shell as named recipe steps - evidence for the exact zig-built combinations nobody upstream tests. tools/test_gate.tcl generalized into the shared engine: -mode gate|record (gate = parsed totals diffed against the tracked dispositioned baseline, the core-gate mechanism; record = run must complete, failures recorded not fatal), -driver selection (tcllib-family trees run via their own support/devel/all.tcl - sak's underlying driver, standard aggregate totals, per-file child interps), -summaryfile/-library line-record evidence summaries for the G-103 artifact-metadata consumer (shape documented in the goal detail file), file-error evidence capture (@+ blocks, runAllTests error-exit sections). A run with no parseable totals FAILS the step in every mode - infrastructure breakage must never masquerade as recorded results. Core gate semantics unchanged; the core gate step now also writes out/testreports/tclcore.summary. build905.zig: steps test-thread test-tclvfs test-tcllib test-tklib test-tk + composite test-libraries (tk excluded - opt-in: interactive desktop, maps windows, tens of minutes; intended before publishing bi-family artifacts). Per-library -Dtestpolicy-<lib>=gate|record|skip and -Dtestargs-<lib> invocation overrides - no recipe edits needed. Baselines staged in both flows (suite.tcl item list + bootstrap recipe_items). suite.tcl: test action takes -steps (default test-gate) and a -zigargs passthrough (both actions); passes -j1 so combined test invocations serialize (zig runs independent steps concurrently; thread's suite is timing-sensitive). Census results (suite tclsh90s.exe 9.0.5, zig 0.16.0): thread 143/0 failed, EMPTY baseline, GATE PASS x3 identical consecutive runs; tclvfs 51/7 failed, all dispositioned (3x tcl9 glob-nomatch semantics through vfs handlers, 4x dead-FTP network tests), GATE PASS x3 identical; tcllib WITH tcllibc accelerators engaged (E tcllibc markers, crc32-critcl-* variants running) RECORDED 62328/54 failed; tklib RECORDED 796/18 failed (widgetPlus drift under Tk 9). No-totals failure path verified in both modes. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
3 weeks ago |
|
|
e5db051389 |
G-102 M3+M4: post-tclsh phases as recipe steps; suite.tcl reduced to dev wrapper
The whole pipeline now lives in the zig recipe; Tcl remains the tool exactly
where a tclsh is guaranteed to exist - run by the FRESHLY BUILT suite shell
as build steps:
- New steps (native-host builds): smoke (static shell patchlevel; zip shell
patchlevel + attached tzdata/autoload), tklib / tcllib (their own installers,
batch, -pkg-path as a cached output dir installed into the prefix, + package
smokes incl withdrawn-Tk tooltip), tcllibc (critcl driving zig cc via the
tracked critcl_zig.config, module list parsed from tcllib's version.tcl,
pinned-zig dir prepended to PATH, + accel smoke), test-gate (tools/
test_gate.tcl - the parsed-totals gate vs expected_test_failures.txt,
-Dtestargs passthrough).
- Package landing moves into the recipe proper: thread pkgIndex.tcl
(build_tclthread), tk pkgIndex.tcl (build_tk), and the tclvfs script package
incl .in-template substitution + dll (build_tclvfs_shared
install_tclvfs_package) - all hooked to the install step.
- Step scripts: tools/test_gate.tcl, tools/suite_smoke.tcl, tools/pkg_smoke.tcl
(run under the built shell; assertions live in Tcl).
- Two windows-childproofing findings encoded: built-shell Runs execute the
CACHED artifact (no ../lib/tcl9.0 beside it) so each such Run gets
TCL_LIBRARY pointed at the source tree's script library (the zip smoke
deliberately excluded - its attached library is the thing under test); and
cached (non-side-effect) Runs spawn with stdout IGNORED, leaving the tcl
child without a stdout channel ('can not find channel named "stdout"',
critcl's logging) - such runs capture stdout to give the child a real pipe
while keeping caching.
- suite.tcl: thinned to the fossil dev flow - fetch live checkouts (git kind
now handled in the main loop for critcl's pin), stage the recipe, delegate
to the staged steps (run_zig_steps; 'test' delegates to test-gate). Default
-steps and the bootstrap default grow to the full pipeline short of
test-gate. critcl_zig.config + expected_test_failures.txt join both staging
lists. Docs updated (README two-flow section, sources.config two-surface
header, overlay section); .gitignore learns .zig-cache/ and zig-pkg/ (zig
0.16 extracts fetched packages into zig-pkg/ beside the manifest).
Verified (fossil flow): full pipeline PASS - suite_smoke static+zip, tklib
tooltip:2.0.4 under withdrawn Tk, tcllib md5/sha1/cmdline, tcllibc:2.0 with
md5-critcl-accel:1; 'suite.tcl test -testargs {-file http.test}' delegates to
the gate step (528/519/9/0 GATE PASS).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
|
3 weeks ago |
|
|
84a1b22515 |
G-102 M1: suite_tcl90 configure-products as zig overlays; source trees read-only
Generation of the configure-products a fresh checkout lacks moves from suite.tcl tree-writes into the zig recipe as build-cache overlays: - tclUuid.h / tkUuid.h / threadUuid.h: wrapfiletofile Run outputs consumed via overlay include dirs added FIRST per module (stale tree copies from pre-G-102 flows can never shadow; the LazyPath also carries the step dep). The unused addUpdateSourceFiles tree-write variants (build905 prepare-source, build_tclthread) are removed. - tclsh.exe.manifest: configure-time substitution (tcl.h parsed by the new build_common.zig helpers); tclsh.rc compiled from an overlay COPY beside the generated manifest because rc resource references resolve rc-file-relative before include paths. Both tclsh exes switch to .include_paths LazyPaths. - wish.exe.manifest: overlay dir first in tk.rc include_paths (RT_MANIFEST resolves through rc include paths - the arrangement the tk build already relied on). tk.rc itself stays tree-compiled (lives in win/rc, no stale risk). - thread.rc: compiled from an overlay copy with the tcl.h include inserted (the historical checkout edit is normalized if a mutated tree is staged); the staged tclthread checkout's thread.rc edit has been fossil-reverted. - build905.zig: redundant configure-time top-level library install loop removed (install_library_tree already covers it); dead zlib stage copy and the suite.tcl generation blocks removed (read-only version parsing kept for smokes/logging). Verified: full staged-mode rebuild PASS (all smokes incl tklib/tcllib/tcllibc); built binaries carry the overlay products (tcl::build-info reports 9.0.5+1a9c3b9d..., tclsh manifest version 9.0.2.905, tk dll manifest + tk checkout uuid, thread dll uuid; thread dll's empty FileVersion matches the pre-change binary - upstream quirk). Source checkouts stay pristine (fossil changes empty). Core test gate: 69783 run, 12 failed - 11 baselined plus http-4.14.2, a network-timing flake that passes on isolated rerun (528/519/9/0). tclsh90sprzip.exe install into out/bin is currently blocked by an open user application holding the file; the product builds identically into the zig cache and installs on next run once released. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
3 weeks ago |
|
|
5be8f2fb77 |
G-096 piperepl rebased onto 9.0.5, gate flipped to G-103 policy; tclsh90spr + tclsh90sprzip products, matrix PASS
The recovered 2024 TCLSH_PIPEREPL patch applies cleanly to current core-9-0-branch tclMain.c (8 hunks, offset 4). Tracked as patches/tclMain_piperepl_905.c = stock 9.0.5 + patch + gate-default flip: ENABLED unless TCLSH_PIPEREPL=0 (2024 was opt-in set-and-not-"0") per the G-103 punk-kit policy - the goal's Goal/Acceptance were aligned to that policy first at user request. Era files kept unmodified as recovered artifacts; patches/README updated (status, gate semantics, known tcl_interactive early-link divergence when the gate is open). build905.zig gains tclsh90spr (per-source construction mirroring tclsh90s with both tclMain compiles - unicode + TCL_ASCII_MAIN ansi - swapped to the patched file; stock products stay byte-for-byte unpatched) and tclsh90sprzip (zipfs_mkimg wrap of the pr exe, -infile form). patches/ added to suite.tcl's staged recipe items. Full suite build PASS. Behaviour matrix recorded in the goal: 9/9 stock-equivalence rows IDENTICAL (script-arg / script-consuming-stdin / piped-commands x unset/0/1 - open-gate plain scripts behave stock; unread piped payload never eval'd); feature row proves buffering verbatim into ::tclsh(inputbuffer) (write-trace capture), console reopen success and repl landing; =0 feature row identical to stock; przip variant identical to pr - the G-103 punk-kit precursor works. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
3 weeks ago |
|
|
c62eda362f |
suite_tcl90: declarative sources.config + folder-derived stage for copy-and-tweak retargeting
A developer (no llm assistance, no punkshell modules - the driver stays dependency-free plain tclsh) can now copy the suite tree and retarget sources declaratively: urls/refs/pins live in sources.config (plain line records 'source <name> <kind> <url> <ref> <dir>', parsed never executed; fossil sources + the critcl git pin), and the build stage derives from the suite FOLDER name so a copied tree stages into its own _build/<name> isolated from the original. -tclbranch becomes a per-run override of the declared tcl ref. Depth limit documented where the tweaker will read it: same-major url/ref changes are config-only; version-class changes ripple into build905.zig (checkout dir names, version-derived tm/dll/manifest names). README gains a Retargeting/copying section; its Sources section corrected (stale per-stage fossil-store location from before the ~/.punkshell/fossils move, and the G-098 sources were missing from the table). Direction recorded in G-096 notes (2026-07-20): toml requirement DROPPED for binary-build buildsuites; long-term intent is bootstrapping without a pre-existing tclsh (zig acquisition = accepted root dependency; the freshly built tclsh is the legitimate intermediate for tcllib/tklib installers and critcl); zig-driver-vs-polyglot question recorded with the current recommendation (zig hybrid; polyglot counselled against). Verified: suite.tcl test -testargs '-file assocd.test' passes through config load + fetch skip-logic + gate on the existing stage; stage derivation for a copied name resolves to _build/<copyname>. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
3 weeks ago |
|
|
df9fdbd1d6 |
G-098 test gate: parsed totals vs tracked baseline (GATE PASS); thread/registry/vfs runtime plumbing
suite.tcl 'test' is now a gate: full tcltest output logged, totals parsed (all.tcl's exit code does not reflect failures), failed test names compared against expected_test_failures.txt - unexplained failures fail the action; stale baseline entries are noted on full runs. Totals on core-9-0-branch 9.0.5 / zig 0.16.0: 67281 run / 55835 passed / 11435 skipped / 11 failed, GATE PASS, deterministic across two full runs. The 11 are dispositioned in the baseline: 6 fCmd (OS username vs profile-dir machine trait), 2 filename (admin-share self-globbing), 2 safe-stock (install-layout accessPath tokens), 1 console-bug-f10d91c2 (powershell driver yields empty result in batch context; semantics verified independently by G-076 kill procedure). Runtime package plumbing gaps closed (built artifacts without install wiring): thread pkgIndex generated (lib/thread3.0.1 -> bin dll), registry dll install artifact hooked to install-libraries (was orphaned - registry 1.3.7 + dde 1.4.6 now load), tclvfs script package installed with vfs.tcl + pkgIndex.tcl generated from .in templates (vfs 1.4.2 + vfs::zip 1.0.4). punkshell runtests under the suite runtime: checkbugs 5/5, opunk backends.test PASS (Tk-widget console suite runs unskipped on the suite-built Tk), repl consolebackends 2/3 - repl_console_backend_tkconsole open (code-interp console_pending_out junction init missing; DRIVER-DONE timeout-failsafe). Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
3 weeks ago |
|
|
48a1d0a97f |
G-098 increment 3: tcllib installed; tcllibc via critcl 3.3.1 + zig cc; sha1 248x evidence
tcllib pure side via its own installer (explicit -pkg-path; driver now unsets TCLLIBPATH/TCL_LIBRARY/TK_LIBRARY for hermetic child shells after the default libdir followed inherited TCLLIBPATH to C:/TCLPKGS - additive pollution verified and removed). install-libraries now installs the whole tcl library tree (its own pkgIndex references msgcat/opt/... subdirs the piecemeal install missed). critcl pinned 3.3.1 (git) + tracked critcl_zig.config (zig cc -target x86_64-windows-gnu); driver replicates sak's direct critcl invocation over the 21 declared files -> tcllibc.dll at out/lib/tcllibc (provide 2.0). Evidence: md5 accel(critcl)=1; sha1 5MB critcl 12.3ms vs pure 3.06s (~248x) - the punkcheck hashing pain quantified and fixed. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
3 weeks ago |
|
|
32bb7c17e8 |
G-098 increment 2: tklib installed via its own installer (batch, suite shell); tooltip smoke
Installer behaviour checked first per user caveat: module exclusions, app-script generation, doc options, and the aggregating top-level pkgIndex.tcl (gen_main_index) - not a straight copy; critcl DSL stubbed to no-ops (pure-tcl). Driver runs it with the suite-built tclsh in batch mode, packages only, landing out/lib/tklib0.9. Smoke: package require Tk + tooltip -> 2.0.4 in the suite shell. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
3 weeks ago |
|
|
440bd029d8 |
G-098 increment 1: hermetic fossil clone store (~/.punkshell/fossils) + Tk extension builds and smokes
Clone dbs are caches, not build output: punkshell-owned machine-level store at ~/.punkshell/fossils (independent of personal ~/.fossils, outside deletable _build dirs), read-only seeding from ~/.fossils, -repofolder / PUNK_FOSSIL_STORE override (registered in punk::config for 'help env'), -refresh pulls clones. Verified seed->open->build->smoke from empty store, then migrated + re-verified. Sources wired: tk core-9-0-branch (9.0.2, stale clone pulled current), tklib + tcllib trunk. build_tk/build_tk.zig (0.16 API): tcl9tk90.dll from stock sources per makefile.vc object inventory (+ xlib emulation set), ansi/UNICODE tkMain pair with forced -U ansi guard, CFG_* defines, win/rc/tk.rc with explicit rc include paths, oleaut32 et al; tk library -> lib/tk9.0 with driver-generated tkUuid.h, wish.exe.manifest and pkgIndex.tcl. SMOKE PASS: package require Tk -> 9.0.2, screen queried, widget packed/updated, clean destroy, in the suite-built tclsh90s. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
3 weeks ago |
|
|
4b87720328 |
G-096: zig 0.16.0 adopted - recipe ported to 0.16 build API, suite pin repointed, punk-getzig pin 0.16.0
The build016 experiment port lands in the tracked recipe (root_module/ createModule creation, addLibrary+linkage, .root_module.* method sweep, linkSystemLibrary options arg, array_list.Managed, Io.Dir dir-walks with b.graph.io, wrapfiletofile ported to the 0.16 entry/Io idiom). 0.14 support deprecated per user direction; 0.14.1 remains archived on punkbin. Verified on the pinned default (bin/tools/zig-x86_64-windows-0.16.0): build PASS, shells 9.0.5, tcl-test parity 557/357/200/0 identical to the 0.14.1 build. punk-getzig payload pins -> 0.16.0 (windows zip + linux tarball), re-wrapped checkfile ERROR-free, ps1 twin refreshed. punkbin commit 54714d7 holds the 0.16.0 archive; push pending gitea recovery (server currently 500s). Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
3 weeks ago |
|
|
1664e9ba91 |
G-096: vqtcl/vlerq removed from suite; 'suite.tcl test' runs the Tcl core testsuite; tm names synced
vqtcl was an old-tclkit experiment with no confirmed public upstream - wiring, helper module, staging and docs removed (future tclkit work: TEMP_REFERENCE/ metakit + KitCreator). New 'test' action runs tests/all.tcl on the suite-built static shell with -testargs passthrough; verified assocd/util/lindex: 557 run, 357 passed, 200 constraint-skipped (no C test commands in a release shell), 0 failed. install-libraries tm filenames synced to the tree's provided versions (tcltest-2.5.11, http-2.10.2, platform-1.1.1) - the 2024-era names made 'package require tcltest' fail on a filename/provide version conflict. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
3 weeks ago |
|
|
a12cdcd2b8 |
G-096: suite pinned to official zig 0.14.1 (punkbin-hosted); recipe compat deltas keep dev.2074 working
Recipe: b.host -> b.graph.host; redundant second UNICODE tclMain add into the objs lib removed; exe's ansi tclMain compiled with -UUNICODE -U_UNICODE -DTCL_ASCII_MAIN (zig cc windows-default defines made it a duplicate UNICODE compile under 0.14.1 - lld duplicate Tcl_MainExW/commons). Driver: per-item recipe staging, per-zig-version local caches (.zig-cache-<ver>; caches must not be shared across zig versions), zig resolution -zig > PUNK_ZIG > pinned bin/tools/zig-x86_64-windows-0.14.1 > PATH. Verified: PASS on 0.14.1 AND regression PASS on 0.14.0-dev.2074; pinned-default no-option run PASS. Pinned archive minisign-verified and published to punkbin (abcd87c). Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
3 weeks ago |
|
|
120f03085d |
G-096: suite_tcl90 - tracked zig recipe + driver build Tcl 9.0.5 end-to-end; piperepl patches recovered
First real buildsuite: build905.zig (verbatim G-076-validated recipe) + helper modules + tools, driven by suite.tcl which stages the recipe into src/buildsuites/_build/suite_tcl90, arranges sources (tcl fossil core-9-0-branch --nested with FOSSIL_HOME isolation; thread/tclvfs trunk; zlib from the tcl tree's compat/zlib; vqtcl from a local dir), generates the configure-products fresh checkouts lack (tclUuid.h, tclsh.exe.manifest, thread.rc include), builds and smoke-tests. Verified PASS: static + zip shells report 9.0.5 (checkout 1a9c3b9d96), Thread 3.0.1 builds from current trunk (new generated-include fix in build_tclthread) and loads. The 2024 TCLSH_PIPEREPL/tclZipfs/tclCmdIL patches are now tracked under suite_tcl90/patches with a semantics README (not applied by default builds). Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
3 weeks ago |