Skip to content

feat(fixtures): survey FlashInfer as an authored-HIR corpus - #125

Draft
zhen8838 wants to merge 1 commit into
tile-ai:mainfrom
zhen8838:feat/hir-frontend
Draft

feat(fixtures): survey FlashInfer as an authored-HIR corpus#125
zhen8838 wants to merge 1 commit into
tile-ai:mainfrom
zhen8838:feat/hir-frontend

Conversation

@zhen8838

Copy link
Copy Markdown
Collaborator

WIP. Opened to park the corpus and its tooling; not ready to merge.

Why

  • The authored HIR surface had no external corpus. What it can and cannot
    express was known only from the tests written alongside each feature, which
    is the sample most likely to agree with it.

What

  • 89 FlashInfer kernels rewritten as authored HIR under tests/fixtures/flashinfer/.
    35 parse and analyze; 54 carry a .blocked.py suffix and record the refusal
    they hit in their docstring, so a gap is a file rather than a memory.
  • scripts/survey_flashinfer.py produces them from an upstream revision;
    scripts/summarize_blocked.py groups the blocked ones by root cause.
  • tests/fixtures/test_corpus.py runs the unblocked ones through the authored
    command boundary and reads each blocked file's recorded reason.
  • cli/source.py resolves a sibling module by its base stem, so .blocked.py
    names load and packaging leaves them out.

Contract

  • No source or spec behavior changes. tests/fixtures/flashinfer/ joins the
    directories the documentation lint leaves alone, because a fixture docstring
    is a parsed key/value record rather than prose.

Risk

  • The blocked set concentrates in a few causes: 27 await a primitive rewrite
    probe, 11 need an nvfp4 dtype, 10 name ops the surface does not have, 3
    declare no Module. None of them is triaged into a decision yet.
  • No upstream source is vendored; each fixture is a rewrite, so it can drift
    from the revision its docstring names.
  • The lint exemption is a stopgap. The generator should reflow its header
    instead, which needs the record format to survive wrapping.

WIP. Collects 89 FlashInfer kernels rewritten as authored HIR, plus the two
scripts that produced and triaged them. 35 parse and analyze; 54 carry a
`.blocked.py` suffix and record in their docstring the refusal they hit, so the
corpus states what the surface cannot express yet rather than hiding it.

The suffix is what keeps a blocked fixture out of packaging, and the source
loader now resolves a sibling by its base stem so the rest still import.

A fixture docstring is a parsed key/value record rather than prose, so the
corpus joins the directories the documentation lint leaves alone.
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.

1 participant