[HarfBuzz] harfbuzz-ng progress report
behdad at behdad.org
Sun May 24 11:50:56 PDT 2009
As promised, here's a more detailed report. CC'ing HarfBuzz list actually.
In April, I talked to my managers and they agreed to put me back on working on
HarfBuzz for a while. I started getting back to the code and continuing my
layout engine rewrite.
At LGM Jonathan and I sat down and checked the code together, we then reviewed
Pango's shaper APIs, current HarfBuzz shaping API, and expressed our designs,
needs, and concerns (for Pango, Mozilla, XeTeX, etc). We believe we have a
great design in mind in term of APIs which I'll start putting together soon
and Jonathan will join me in filling in the bits.
In the mean time, I finished my layout engine rewrite. A few minutes ago, I
removed the old code. It's all in pango's git repo in the harfbuzz-ng branch.
Gone is 16k lines of code which parsed the OpenType tables in memory.
Replacement is 6k lines that uses mmap()ed fonts. Sanitization is still not
implemented, so there's a bit more to do. But the code already does more than
the old one. And IranNastaliq and other complex fonts I tested render correctly.
Plans forward is:
- Next week: I'll finish the layout rewrite. Adding sanity-checking code.
May add stubs for BASE and JSTF tables too.
- June: I'll start building the highlevel HarfBuzz API and prototyping the
implementation, with Latin and Arabic only initially. Jonathan will hopefully
join me in bringing Indic shapers together and filling in the rest of the shapers.
- July first half: I'll be at GUADEC, talking about this and minor hacking.
- July second half and August: I'll be pulling things together to ship next
Pango stable version with an internal copy of the new HarfBuzz. Hopefully
making the release stable and push out as a separate shared library early 2010.
More information about the HarfBuzz