wordcraft/crates
Brandon Thomas 62bc097fab layout: make Myanmar fallback tests deterministic
tests_complex::myanmar_syllables_are_single_clusters and
myanmar_in_a_latin_font_falls_back_to_a_regular_myanmar_face failed about
1 run in 4 of the full layout suite (cluster starts [0, 3, 6, 12, 18], "one
face for the word") but passed alone.

Root cause: a race in FontDb's system font fallback, not the tests. Tests
share FontDb::global(), and layout asks for a fallback per character from
several threads. A search marks a preferred family ("Padauk" for Myanmar) as
tried before loading it; a second search racing it skipped the family as
already tried, fell through to the coverage index, and loaded the first
cataloged file in path order that maps the character (Padauk-Bold.ttf on
its own). Characters of one syllable then fell back to different faces, so
the shaper split the syllable and the word's faces differed. Separately, a
search's answer was cached under the face count read after the search, so
an answer chosen before another thread's load could be cached as current.

Fix (crates/fonts):
- System fallback searches run one at a time (a `searching` lock). A search
  that waited re-checks the loaded faces first, so it uses the family the
  previous search loaded instead of loading another file.
- The fallback cache keys an answer by the face count it was chosen from,
  and doesn't cache an answer from before a concurrent load.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 00:15:01 -04:00
..
control-key Control port: require a per-window key (split from #54) (#124) 2026-10-10 06:56:41 -04:00
doc Security: pictures travel in the reply, exported links keep only safe targets (#678, #679) (#681) 2026-10-11 23:57:08 -04:00
docbin Chinese documents: character-unit indents, .doc indents and line spacing, floating tables, blank pages (#534) (#550) 2026-10-11 21:49:25 -04:00
docx #611: DOCX diagrams: theme-styled shapes and connectors, VML lines (#671) 2026-10-11 23:15:28 -04:00
engine Print Markup: comments in PDF, print, images and text copies (#589) (#667) 2026-10-11 23:38:29 -04:00
fonts layout: make Myanmar fallback tests deterministic 2026-10-12 00:15:01 -04:00
formats Security: pictures travel in the reply, exported links keep only safe targets (#678, #679) (#681) 2026-10-11 23:57:08 -04:00
geom Free rotation and flips for pictures, shapes and text boxes (#332) (#340) 2026-10-10 17:10:09 -04:00
layout Print Markup: comments in PDF, print, images and text copies (#589) (#667) 2026-10-11 23:38:29 -04:00
mcp Security: pictures travel in the reply, exported links keep only safe targets (#678, #679) (#681) 2026-10-11 23:57:08 -04:00
metafile Pictures: draw WMF and EMF pictures instead of a grey box (#293) 2026-10-10 14:35:32 -04:00
pdf Print Markup: comments in PDF, print, images and text copies (#589) (#667) 2026-10-11 23:38:29 -04:00
proof File › Options: Word's panes with working settings (#485) (#492) 2026-10-11 19:17:50 -04:00
render Print Markup: comments in PDF, print, images and text copies (#589) (#667) 2026-10-11 23:38:29 -04:00
ui-egui Security: pictures travel in the reply, exported links keep only safe targets (#678, #679) (#681) 2026-10-11 23:57:08 -04:00
zotero Zotero: a note with a picture stays when its citation moves to body text (#469) (#581) 2026-10-11 22:23:54 -04:00