Skip to content

docs: point the self-debugging research at the shipped ZDebug package - #186

Merged
lisachenko merged 1 commit into
8.4from
claude/zdebug-docs-cleanup-erzn71
Aug 11, 2026
Merged

docs: point the self-debugging research at the shipped ZDebug package#186
lisachenko merged 1 commit into
8.4from
claude/zdebug-docs-cleanup-erzn71

Conversation

@lisachenko

Copy link
Copy Markdown
Owner

docs/self-debugging.md still spoke of the debugger as a package that was expected to live somewhere else, and its roadmap listed work that has since landed in ZDebug. This actualizes the three places where the study has been overtaken by its own implementation.

  • Intro. "The debugger itself is expected to live in a separate package" → it does: ZDebug, which implements this study.
  • Statement-hook cost mitigations. Three were listed as "design sketches for the debugger package, not shipped features". The middle one — memoizing the include/exclude decision per op_array address instead of running a backtrace filter per hit — is shipped as ZDebug's OpArrayGate. The compiler-option gating and the NOP strip-back stay sketches.
  • Roadmap. The debugger-package list (breakpoint table, suspend loop, DBGp transport, per-file instrumentation gating) is replaced by what ZDebug ships and the three items still open there: the async break command over Core::setInterruptHandler(), the EXT_STMT-vs-ticks benchmark, and the generator/fiber stepping experiment. The z-engine follow-up candidates are unchanged except for adding a zend_ast_process hook for per-file EXT_STMT emission — and the leaner statement-hook fast path stays listed, since OpCodeHook::handle() still runs debug_backtrace() per hit.

The README's self-debugging section also now links ZDebug next to the research it came from.

Docs only — no source, test or CI changes.


Generated by Claude Code

The feasibility study still spoke of the debugger as a package that was
expected to exist, and its roadmap listed work that has since landed there.

- name ZDebug as the implementation, from the intro, the README's debugging
  section and the roadmap
- mark the memoized per-op_array decision as shipped (ZDebug's OpArrayGate),
  leaving the compiler-option gating and the NOP strip-back as sketches
- narrow the open debugger-side list to the async break command, the
  EXT_STMT-vs-ticks benchmark and the generator/fiber stepping experiment
- add the zend_ast_process per-file EXT_STMT hook to the z-engine follow-ups

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0153cGVE6d7kFaNcyiyY4G9q
@lisachenko
lisachenko marked this pull request as ready for review August 11, 2026 08:10
@lisachenko
lisachenko merged commit 93e13ba into 8.4 Aug 11, 2026
19 checks passed
@lisachenko
lisachenko deleted the claude/zdebug-docs-cleanup-erzn71 branch August 11, 2026 08:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants