[HarfBuzz] harfbuzz-ng progress report

Behdad Esfahbod behdad at behdad.org
Sun May 24 11:50:56 PDT 2009

Hi Nicolas,

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.

   - Profit!


More information about the HarfBuzz mailing list