Skip to content

ieee: the preprint draft-stage mirror + post-#515 pins - #83

Merged
ronaldtse merged 1 commit into
mainfrom
nesc-preprint-mirror
Oct 10, 2026
Merged

ronaldtse merged 1 commit into
mainfrom
nesc-preprint-mirror

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

The pubid-ts mirror of the preprint draft-stage wave (pubid#515, testsuite#41, grammar#31/#32 — all merged).

Ruling: Preprint is a draft stage of the C2 code (the NESC's own term for its pre-edition drafts), not a variant marker.

  • Model (src/flavors/ieee/model.ts): NescPreprintClass (kind: "nesc-preprint", codeColumns, renders IEEE Std C2.YYYY.Preprint); the URN generator gains a trailing preprint component (urn:ieee:ieee:C2:2012:preprint) so a preprint cannot share the published edition's URN.
  • Grammar (src/flavors/ieee/grammar.ts): nesc_c2_preprint (dotted / dash / catalogue slash-tail spellings) and nesc_preprint_proposal (verbose Preprint Proposal(s) for the YYYY Edition of …, longest-literal-first) slot into nesc_identifier before the C2-standard forms; nesc_delegation now consumes the optional IEEE Std prefix BEFORE its lookahead guard (a guard anchored at position 0 rejected every prefixed catalogue spelling) — the same fix the PARG grammar took.
  • Builder (src/flavors/ieee/index.ts): buildNesc routes on the preprint capture before the draft/variant/code checks (the C2-led preprint tree also carries code).
  • Preprocessor (src/flavors/ieee/preprocessor.ts): the /Preprint strip is removed — it was data loss, collapsing distinct documents onto their published editions (the same line the Ruby parser dropped in #515).
  • Pins: TESTSUITE_REF → testsuite#41 (358665808c4249cf0d22fec57dedb54f8f6b6c84, the preprint corpus round); PARG_GRAMMAR_REF → grammar#31 (d182eb9eaa2199663bfaec8b889cbf6339bdc2a0).

All 5 new nesc_preprint corpus cases pass through the hand grammar (parse, render, URN, aliases); the pend ledger is unchanged at 477 with 0 satisfied.

URN-parity fixture (test/fixtures/urn-parity.json.gz): regenerated against pubid#515 — the corpus grew by the #215-era adoption rows the stale fixture never covered. That exposed 26 pre-existing ieee parseUrn divergences (ISO/IEC/IEEE adoption faces the ts grammar rejects in the IEEE-face reconstruction, the reference's own garbage draft.D= renders, separator variants like 1076.CONC vs 1076-CONC); ieee joins nist in the counted KNOWN-DIVERGENT set (9,476/9,502 clean) until the parseUrn parity port lands. None of the 26 involve preprint.

Preprint is a draft stage of the C2 code (ruled), not a variant — the
ts mirror of gem#515 with testsuite#41/#42 and grammar#31/#32 merged.

- model: NescPreprintClass (nesc-preprint, codeColumns, renders
  'IEEE Std C2.YYYY.Preprint'); the URN generator gains a trailing
  'preprint' component so a preprint cannot share the edition's URN
- grammar: nesc_c2_preprint (dotted / dash / catalogue slash-tail) +
  nesc_preprint_proposal (verbose, longest-literal-first) slot into
  nesc_identifier before the C2-standard forms; nesc_delegation
  consumes the optional 'IEEE Std ' prefix BEFORE its lookahead guard
  (present() on the whole chain is zero-width and would not consume)
- builder: buildNesc routes on the preprint capture before
  draft/variant/code (the C2-led tree carries code too)
- preprocessor: the /Preprint strip removed (data loss, as in the gem)
- pins: TESTSUITE_REF -> 7373940 (#42), PARG_GRAMMAR_REF -> d182eb9e (#31)
- urn-parity fixture regenerated against post-#515 main: the corpus
  grew by the #215-era adoption rows the stale fixture never covered,
  exposing 26 pre-existing ieee parseUrn divergences (adoption IEEE
  faces, the reference's own draft.D= garbage renders, separator
  variants, zero involving preprint) — ieee joins nist in the counted
  KNOWN-DIVERGENT set (9,476/9,502 clean) until the parseUrn port
@ronaldtse
ronaldtse merged commit 518fb85 into main Oct 10, 2026
5 checks passed
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