Tree:
269b1af82b
master
v0.1a
${ noResults }
2 Commits (269b1af82b6c37e6df5d3939bdb5acc2a6ef292e)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
bc958300b1 |
G-093 rework: punk::path *** pathglob + separable lattice; runtests passthrough targeting
User-approved contract amendment replacing the day-1 file-relpath filter: one
directory-oriented pathglob semantics at every layer, with the ergonomics gap
closed in the syntax itself.
punk::path 0.4.0:
- *** as a whole segment matches ZERO or more segments (join-aware regex in
pathglob_as_re: an adjacent separator is absorbed into an optional group),
so X/*** = X and everything below - the subtree spelling; ***/f.txt matches
at any depth including the root.
- include separability fix: an exact or single-segment-glob full match no
longer sets allbelow (the deep walk previously dragged the whole subtree in
for X and X/* patterns; the zipfs walk was already separable).
- exclude separability fix (new exclude_state classifier, both walks): only
**|***-tail patterns prune the matched subtree; other matches exclude just
that directory's files - the **/_aside vs **/_aside/** argdoc distinction is
now real. Dead _path_matches_any removed.
- legacy bare-* include collapse removed (a * in -include-paths is the
one-below lattice form, not a match-everything alias; no caller used it).
- globmatchpath default-nocase driveletter exception rewritten as a direct
regex-head rewrite (the regex-text file-split broke on c:/***'s glued group
and accepted non-alpha drives).
- path.test +5 lattice/*** pins (40 total).
runtests.tcl:
- -include-paths/-exclude-paths pass through to treefilenames unchanged;
argdocs teach the separable X | X/* | X/** | X/*** lattice; directory and
file-name axes independent (tails); single-file targeting = exact dir
pattern + file tail.
- -serial-paths reconciled to the same directory-of-file reading (default now
modules/punk/console/*** modules/opunk/console/*** via
runtests_discovery::dir_matches_any) - the pre-existing file-path serial
matching was the other same-option-different-referent divergence.
- per-pattern zero-match stderr advisory (the X/**-for-subtree foot-gun points
at X/***).
- json report emitter: whitespace-padded entier-looking values now take the
quoted-escaped path ('string is entier -strict' accepts surrounding
whitespace - a failed test's "0\n" result_was embedded a raw newline and
truncated the parseable report line).
- testsupport/discovery.tcl now a thin passthrough (requires punk::path
0.4.0-); pathdiscovery.test rewritten to the directory-semantics contract
(22 tests incl. the X/** zero-match advisory characterization); AGENTS.md
targeting guidance swept to /*** across src/tests and src/modules/opunk.
Verification (native tclsh 9.0.3, piped, serialized): 45-probe matrix, path
suite 40/40, runner suite 22/22; vs the pre-G-093 baseline the default
discovery FILE SET differs by exactly the added runner suite and result
parity only by the five new path tests (+ that suite); mode parity -jobs 16
vs singleproc: PARITY ok (94/1037/failed=1 exec-14.3). Goal contract amended
in the detail file; full record there.
Claude-Session: https://claude.ai/code/session_01BNUVVkYq9vHa6G3S9a3XTZ
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
|
2 weeks ago |
|
|
e5060160b4 |
G-093: runtests file-relpath path targeting - include fix, -exclude-paths, -discover-only
Root cause (recorded in the goal file): punk::path::treefilenames matches -include-paths against the DIRECTORY containing files, and its documented X/** boundary semantics exclude files directly in X - so suites keeping .test files at the subtree root (scriptwrap, binscripts, punkexe) were silently missed by X/** targeting: the G-092 four-pattern (2/13 files) and repeated-flag (zero files) failures. punk::args -multiple accumulation probed healthy - repeated flags and a single space-separated value reach discovery identically; no punk change was needed or made. runtests.tcl now filters the tailbase-relative FILE paths after an unrestricted walk (new testsupport/discovery.tcl: globmatchpath, any-include-match, exclusion wins): X/** includes files directly in X, an exact relative path targets a single file, a bare directory path matches nothing (append /**). -exclude-paths exposed (same syntax and accumulation, exclusion wins over inclusion). -discover-only prints the discovered list plus a RUNTESTS_FILES tcl-list line and exits before any run machinery - subsecond via a two-stage boot (discovery phase loads only punk::args + punk::path; punk/Thread/shellrun/punk::tcltestrun and the testinterp/child path assembly load after the exit). New regression suite runner/testsuites/discovery/pathdiscovery.test (23 tests: pure filter, fixture-tree walk+filter, end-to-end -discover-only children including both G-092 characterization forms; ~7s wall, parallel-safe). src/tests/AGENTS.md targeting wording reconciled; new src/tests/runner/AGENTS.md. G-093 index status proposed -> active (user-directed). Verification (native tclsh 9.0.3, piped Bash context): pre-change baseline default -jobs 16 (93 files / 1010 tests / failed=1 exec-14.3 only) vs post-change -jobs 16 with -exclude-paths runner/**: PARITY ok; post-change default run differs from baseline only by the added suite (+23 passing); mode parity -jobs 16 vs singleproc sequential: PARITY ok (94/1033/1). Claude-Session: https://claude.ai/code/session_01BNUVVkYq9vHa6G3S9a3XTZ Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com |
2 weeks ago |