Skip to content

integration: compiler queue (#602, #604, #629, #630) - #648

Merged
GoKubar merged 10 commits into
mainfrom
agent/kabir-claude/integration-cmp2
Sep 15, 2026
Merged

GoKubar merged 10 commits into
mainfrom
agent/kabir-claude/integration-cmp2

Conversation

@GoKubar

@GoKubar GoKubar commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

One integration branch carrying four open compiler PRs so they land as a unit, each merged with --no-ff to preserve the contributors' commits and authorship. Merging this PR lands all of them:

Not carried: #577, #592, #601 — their branch heads are all ancestors of #610's merged head (a9f311e5), so their entire content already landed on main via #610 (merged 2026-09-15T15:35Z, bd1cbc6). They should be closed as landed-via-integration, not re-merged: their heads carry older versions of the fuzz tooling that would regress main.

Verification (combined head 0507f49)

  1. cargo test --release -p flashtex-compiler --no-run — compiles clean (run first, separately).
  2. Full compiler suite: 888 passed, 0 failed (main baseline ~876; the delta is the PRs' own new tests). tex-expansion suite: 92 passed, 0 failed.
  3. cargo build --release --locked — compiler, tex-expansion, bridge all clean.
  4. apps/mac/scripts/sync-supported-latex.sh --check — bundled copy byte-identical (d90c57699b56).

🤖 Generated with Claude Code

https://claude.ai/code/session_01Xd5Hmwh5GHNTiAmHUJ1MZu

d-q222 and others added 10 commits September 15, 2026 02:29
…, texttrademark

Same rendering path as textcopyright: four TEXT_SYMBOLS rows, parser
BUILT_INS + dispatch arms, vocabulary unlists textbullet/textperiodcentered.
OT1 reaches each through its kernel default (OMS, textcircled,
textsuperscript{TM}); T1 resolves directly. All four glyphs are
representable in the base-14 export path (WinAnsi 0x95/0x99, Latin-1
0xB7/0xAE); U+00B7 reuses the existing cdot font-resource path.

Implementation-Agent: muse-spark-1.3-contributor
$\mathrm{a-b}$ fused into one Text run, setting a text hyphen (-- an
en dash) instead of TeX's mathcode"2200 Bin cmsy minus. Split hyphen
runs out into one Symbol("-") atom per hyphen between the alphabet's
own runs (mathrm/mathit/mathsf/mathtt/mathbf/textbf/mathfrak),
mirroring plain $a-b$ exactly. Letter/digit runs are untouched.

Implementation-Agent: muse-spark-1.3-contributor
Commit-Executor: muse-spark-1.3-contributor
What changed:
- Mark parsed \\frac as Ord while keeping infix \\over Inner.
- Correct the fraction-class documentation and add a native-spacing regression test.

What was run:
- /Library/TeX/texbin/pdflatex spacing probe (TeX Live 2026).
- CARGO_TARGET_DIR=/Users/dqi26/flashtex/target-cleanups CARGO_BUILD_JOBS=4 cargo test --manifest-path crates/compiler/Cargo.toml --lib spacing_tests

Next step:
- Align the conditional and group nesting guards.

Implementation-Agent: codex gpt-5.6-luna (max)
Commit-Executor: codex (this session)
Lane-Owner: daniel-parent (mac-m5pro-dq222)
What changed:
- Reject the next conditional when the configured depth is already N.
- Add off-by-one tests proving exactly N conditionals and groups are allowed.
- Keep both default limits at 10,000.

What was run:
- /Library/TeX/texbin/pdftex native nested conditional/group probe.
- CARGO_TARGET_DIR=/Users/dqi26/flashtex/target-cleanups CARGO_BUILD_JOBS=4 cargo test --manifest-path crates/tex-expansion/Cargo.toml --test expand_tests depth_limit

Next step:
- Audit compiler and tex-expansion TeX behavior comments and diagnostics.

Implementation-Agent: codex gpt-5.6-luna (max)
Commit-Executor: codex (this session)
Lane-Owner: daniel-parent (mac-m5pro-dq222)
What changed:
- Document that the recovery lexer drops invalid characters without a diagnostic.
- Keep the native TeX invalid-character behavior documented separately.

What was run:
- /Library/TeX/texbin/pdftex invalid-character probe (TeX Live 2026).
- git diff --check.

Next step:
- Run the required full compiler and tex-expansion test suites.

Implementation-Agent: codex gpt-5.6-luna (max)
Commit-Executor: codex (this session)
Lane-Owner: daniel-parent (mac-m5pro-dq222)
TeX-engine errors for \setlist[itemize]{leftmargin=\mylen}: a bare
\newlength register in the options reached the stomach as a register
assignment, whose dimension scan reported 'Missing number, treated as
zero.' + 'Illegal unit of measure (pt inserted).' on the following
token (real enumitem stores keyval text unexecuted, where the bare
register is a complete <internal dimen> needing no unit).

\setlist now routes through flashtexsetlist, which absorbs the star,
[<names>] and {<options>} with one expansion pass but no execution and
splices dimen/skip register references to their current \the text, so
leftmargin=\mylen behaves exactly like leftmargin=\the\mylen. A
<factor> before the register (2\mylen) is left for the main loop, which
reports it as before. Shared by every dimension key (leftmargin,
itemsep, topsep, ...).

Tests: setlist_register_lengths (exact repro with zero diagnostics;
register vs literal vs \the equivalence for leftmargin/itemsep/topsep).

Implementation-Agent: muse-spark-1.3-contributor
…inus

Conflicts in crates/compiler/src/math.rs against main's TextPiece text
groups (#470 and stacked work):

- \mathrm arm: keep main's required_text_group_string (the String
  flattening of the TextPiece group), keep the PR's hyphen-run comment
  and split_hyphen_runs/first_queued flow.
- \mathbf|\textbf arm: main gained styled TextPiece groups with a
  TextRun nucleus for mixed text/math arguments; the PR splits plain
  arguments at `-` into Bin minus atoms. Combined: plain-text pieces go
  through split_hyphen_runs with the bold constructor, mixed pieces
  keep main's Nucleus::TextRun.

Implementation-Agent: fable-integration-cmp2
Commit-Executor: fable-integration-cmp2 (direct; Cursor usage limit)
…xttrademark

Conflicts:
- crates/compiler/src/parser.rs: git spliced the PR's text-symbol arm
  (written against the old monolithic match) into main's refactored
  vertical_command family. Kept main's columnbreak/newcolumn arm (with
  the outside-multicols error) intact and added the four new names to
  the text-symbol arm of the family dispatch instead.
- docs/user/compiler.md: generated file, regenerated with
  crates/compiler/scripts/render_supported_latex.sh; mac bundled copy
  synced and verified byte-identical (sync-supported-latex.sh --check).

Implementation-Agent: fable-integration-cmp2
Commit-Executor: fable-integration-cmp2 (direct; Cursor usage limit)
Conflicts (append-shaped, both sides kept):
- crates/compiler/src/expansion.rs: HOST_PRELUDE doc comment gained
  main's \AtBeginDocument paragraph and the PR's \setlist paragraph;
  configure() keeps main's declare_host_assignment for
  flashtexsetlength/flashtexaddtolength (the PR still had the older
  declare_host_command spelling) and adds the PR's
  flashtexsetlistdone host command.
- crates/tex-expansion/src/expand.rs: main's shown_name/body_spells/
  body_display helpers and the PR's push_absorbed/
  setlist_factor_before helpers both kept.

Implementation-Agent: fable-integration-cmp2
Commit-Executor: fable-integration-cmp2 (direct; Cursor usage limit)
Conflict in crates/tex-expansion/src/expand.rs do_conditional: main
(via the #610 stack) reports the conditional nesting limit once per
flood through conditional_limit_reported; the PR tightens the depth
comparison from > to >= so the limit is exact. Kept main's once-only
reporting structure with the PR's >= comparison.

Implementation-Agent: fable-integration-cmp2
Commit-Executor: fable-integration-cmp2 (direct; Cursor usage limit)
@GoKubar
GoKubar merged commit da1d151 into main Sep 15, 2026
11 of 22 checks passed
GoKubar added a commit that referenced this pull request Sep 15, 2026
…ntegration queue)

- protocol.rs: #651's size-first envelope refusal kept whole; this
  branch's contribution grafted in — the refusal's capability echo also
  filters -only and -window, since nothing sibling-shaped was accepted.
- memsize.rs / memprofile.rs: this branch's window-aware versions are
  supersets of the #232 versions main landed; kept ours.
- typeset.rs: comment-only (derived-carets note on the math assembly).

Implementation-Agent: fable-ft070
Commit-Executor: fable-ft070 (direct; Cursor usage limit)
GoKubar added a commit that referenced this pull request Sep 15, 2026
…ted-latex docs

Only conflict was docs/user/compiler.md (generated); resolved by
re-running crates/compiler/scripts/render_supported_latex.sh, never
hand-merged. apps/mac/scripts/sync-supported-latex.sh reports the
bundled copy current.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xd5Hmwh5GHNTiAmHUJ1MZu
GoKubar added a commit that referenced this pull request Sep 15, 2026
@GoKubar
GoKubar deleted the agent/kabir-claude/integration-cmp2 branch September 16, 2026 04:17
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