Skip to content

Commit e785b3c

Browse files
committed
docs: M7 complete (Phase 6 capstone done)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent ed46ab2 commit e785b3c

2 files changed

Lines changed: 28 additions & 6 deletions

File tree

M7-CTX-PLAN.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,23 @@ threading mistake shows up as a crash or a mis-drawn screen, not a silent pass.
174174
surprises. They get `our`-declared at the capstone instead.
175175
- **Gate:** full suite 313 green (+2 for the new `state` sub-hash in `t/18`).
176176

177-
### Phase 6 — capstone: modern pragma on `ccfe.pl` *(the correctness payoff)*
177+
### Phase 6 — capstone: `use v5.36` on `ccfe.pl` *(done — the correctness payoff)*
178+
- Turned on strict + warnings + features. The 248 remaining package globals
179+
(constants, lookup tables, search-path arrays, message strings, signal-owned
180+
`$cpid`/`$tmpfh`) are declared in one grouped `our (...)` block. The warnings
181+
pass caught **six real issues**, all fixed behaviour-preserving: indirect-
182+
object `new IO::Select`, a nonsensical `\b*` regex, a `<$tmpfh>` readline
183+
missing `defined()` (a literal "0" line would end the loop early), `trace`'s
184+
undef `$log_level`, undef `$BFIELD_*_DESCR` on the headless path, and a
185+
negative `x` repeat in separator rule-lines when `$COLS==0` headless.
186+
- Full suite 313 green with **zero runtime warnings**; CI's `perl -c` now
187+
enforces strict/warnings on `ccfe.pl`.
188+
- **Scoped out:** adding `ccfe.pl` to the perlcritic gate — strict already
189+
catches the important issues, and the file legitimately uses patterns the
190+
policy would false-flag (eval-string config, `$$path` autoviv). The
191+
`perl (>= 5.36.0)` floor (added in Phase 0) already matches `use v5.36`.
192+
193+
#### Original notes
178194
- Only reachable once barewords are gone (group A imported, B/C on `$ctx`,
179195
remaining locals `my`-declared). Turn on strict+warnings, fix the fallout
180196
(undeclared vars, indirect-object calls, undef comparisons the no-strict code

ROADMAP.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,11 @@ installed plugins, flagging any `requires` command missing from `$PATH`. The
147147
sample sysmon plugin ships `sysmon.plugin`. `t/07-check-cli.t`. Open: using
148148
the manifest at install time (dependency checks, clean uninstall).
149149

150-
**→ M6 is complete** (every item delivered; the "Open" notes above are optional
151-
future refinements, not blockers). Next: **M7** (de-globalisation) then **M8**
152-
(the non-functional close-out audit).
150+
**→ M6 and M7 are complete.** M7 (de-globalisation / full modularisation)
151+
landed in two halves: the pure parser/geometry extractions (`CCFE::MenuFile`/
152+
`FormFile`/`Config`/`Action`/`Layout`, released in 2.1.1) and the `$ctx`
153+
threading (phases 0–6, see **M7-CTX-PLAN.md**), finishing with `use v5.36` on
154+
`ccfe.pl`. Next: **M8** (the non-functional close-out audit).
153155

154156
## M7 — De-globalisation / full modularisation _(REFACTOR §3 — deferred to end)_
155157
Extract `MenuFile`/`FormFile`/`Action`/`Layout`/`Exec`/`UI::*` into
@@ -226,8 +228,12 @@ the conformance tests.
226228
ones, 4c `%keys`/arrays). **Phase 5 done:** the residual mutable shared
227229
scalars (`SCREEN_DIR`, `last_item_id`, `pad_lines`, `exec_args`, `child_es`)
228230
moved to a `$ctx->{state}` namespace; `$cpid`/`$tmpfh` stay global (SIGINT
229-
handler owns them). 313 tests green. Next: the Phase 6 `use v5.36` capstone
230-
(turn on strict/warnings on `ccfe.pl`, fix fallout, lint it too).
231+
handler owns them). **Phase 6 done — M7 COMPLETE:** `use v5.36` (strict +
232+
warnings) turned on for `ccfe.pl`; the 248 genuinely-global symbols declared
233+
in one `our` block; the warnings pass caught and fixed six real latent issues
234+
(indirect-object call, a null-matching regex, a readline missing `defined()`,
235+
undef trace level, undef boolean descriptions headless, negative rule-line
236+
repeat). 313 tests green, zero runtime warnings; CI's `perl -c` enforces it.
231237

232238
## M8 — Non-functional close-out audit _(final gate)_
233239
Five dimensions: **test coverage, code quality, performance, security,

0 commit comments

Comments
 (0)