Skip to content

skera: apply glyph-map selections in command-line order - #2314

Closed
behdad wants to merge 16 commits into
skera-varc-instance-input-tablesfrom
skera-cli-glyph-map-order
Closed

behdad wants to merge 16 commits into
skera-varc-instance-input-tablesfrom
skera-cli-glyph-map-order

Conversation

@behdad

@behdad behdad commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

--gid-map=1:5 --gids=2 previously included glyph 1 again after parsing all selectors, producing a larger subset than HarfBuzz. Apply each mapping's glyph inclusion at its command-line position so later replacements/removals take effect.

Allow repeated mappings, accumulating pairs with the last request for each original glyph taking precedence. Mapping lists also accept whitespace separators and trailing separators like HarfBuzz. The existing monotone-order validation still applies to the final retained mapping.

Validation: 12 CLI selection tests, glyph-mapping, keep-everything, and VARC integration tests, all-feature Clippy, rustfmt, and the CI typos version pass. Regressions cover replacements/removals after maps, repeated maps and aliases, whitespace, empty additions, preset resets, and selector files.

Final validation: 424 tests pass with all features, 409 pass without default features, and the 8 slow/repacker tests pass. A 522-case comparison against current HarfBuzz found no glyph, metric, outline, name, axis, or shaping discrepancies in these CLI selections.

Stacked on #2313.

Readers use read-fonts directly. write-fonts handles font assembly and owned table rebuilding; Skera retains its direct serializers and repacker. There is no separate generated Skera table tree.

@behdad
behdad force-pushed the skera-cli-glyph-map-order branch from fc221bf to cab970c Compare October 14, 2026 23:11
behdad added 13 commits October 15, 2026 14:53
Propagate reviewed fixes and repaired ancestry through #2314.

Assisted-by: OpenAI Codex
This tree is unchanged; the replacement evaluator already handles missing
variation rows. Preserve the repaired parent ancestry.

Assisted-by: OpenAI Codex
Preserve reviewed parent ancestry and each PR's existing feature changes.

Assisted-by: OpenAI Codex
Preserve the independently validated TrueType changes and all feature code.

Assisted-by: OpenAI Codex
Keep empty record counts and allocation bounds at each PR boundary.

Assisted-by: OpenAI Codex
Move the existing #2338 correction into the width-reduction PR.

Assisted-by: OpenAI Codex
Reject unsupported versions and oversized arrays before ownership.
Keep current HarfBuzz references with complete feature parameters.

Assisted-by: OpenAI Codex
Preserve zero float32 products and reject subnormal condition pinning.

Assisted-by: OpenAI Codex
Bound pairwise work after deduplication, avoid temporary pair vectors,
and keep the corrected HarfBuzz column order at introduction.

Assisted-by: OpenAI Codex
@behdad

behdad commented Oct 28, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by the rebuilt, consolidated instancing stack in #2416–#2423. MATH and name-table overrides remain separately covered by #2415 and #2411.

@behdad behdad closed this Oct 28, 2026
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