Skip to content

docs(decompiler): Rec 35 — refine sequencing, scope the data_flow yield point (#35-3d)#237

Merged
CryptoJones merged 1 commit into
masterfrom
docs/rec35-sequencing-dataflow-constraints
Jun 1, 2026
Merged

docs(decompiler): Rec 35 — refine sequencing, scope the data_flow yield point (#35-3d)#237
CryptoJones merged 1 commit into
masterfrom
docs/rec35-sequencing-dataflow-constraints

Conversation

@CryptoJones
Copy link
Copy Markdown
Owner

Closes #236.

Summary

Documentation only. With #35-3c merged, the flow_analysis half of #35-3 is done; this refines DECOMPILER_BUDGETS.md to reflect that and to scope the remaining data_flow half honestly.

  • Sequencing table: mark #35-1/#35-2/#35-3a/#35-3b/#35-3c done, split the data_flow yield point into its own #35-3d row, and add a Status column.
  • New "Implementation note: the data_flow yield point" subsection recording why #35-3d is not a one-shot atomic PR:
    • the data_flow fixpoint is the generic Action::perform loop (shared by every pass, not data_flow-specific);
    • the ActionRestartGroup restart count is degenerate (maxrestarts = 1 in the "universal" group);
    • "stop data_flow early" means the coarser bypass-mode semantics deferred to #35-4, not flow_analysis's artificial-HALT truncation;
    • no deterministic datatest fixture exists yet.

No code or behaviour change.

Test plan

  • Documentation only — no code paths touched; nothing to build or run.
  • Markdown sequencing table verified well-formed (3 columns, consistent rows).
  • CHANGELOG [Unreleased] bullet added.

Proudly Made in Nebraska. Go Big Red! 🌽 https://xkcd.com/2347/

… point

Update DECOMPILER_BUDGETS.md to reflect what has shipped (#35-1, #35-2,
#35-3a, #35-3b, #35-3c) and split the data_flow yield point into its own
#35-3d item, with an implementation note explaining why it is not a
one-shot atomic PR the way flow_analysis was:

- The data_flow fixpoint is the generic Action::perform loop, shared by
  every pass -- a budget tick there is not data_flow-specific without
  threading pass identity into the Action framework.
- The ActionRestartGroup restart count is degenerate (maxrestarts = 1 in
  coreaction.cc's "universal" group), so a restart-count budget is useless.
- "Stop data_flow early" means returning a coarser result (skip alias
  analysis) -- the bypass/coarser-mode semantics this doc defers to #35-4,
  not flow_analysis's artificial-HALT truncation.
- No deterministic datatest fixture exists yet; one must force many rule
  applications and assert a stable partial-result header.

Documentation only; no code or behaviour change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@CryptoJones CryptoJones merged commit c66ebcc into master Jun 1, 2026
10 checks passed
@CryptoJones CryptoJones deleted the docs/rec35-sequencing-dataflow-constraints branch June 1, 2026 15:26
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.

Rec 35: refine sequencing + scope the data_flow yield point (#35-3d)

1 participant