From steven.loomis at oracle.com Fri Jul 26 12:02:23 2013 From: steven.loomis at oracle.com (Steven Loomis) Date: Fri, 26 Jul 2013 12:02:23 -0700 (PDT) Subject: CFV and Project Proposal: HarfBuzz Integration Project (#2) Message-ID: CFV and Project Proposal: HarfBuzz Integration Project (#2) PROPOSAL I hereby propose the creation of the HarfBuzz Integration Project with Steven R. Loomis as the Lead and 2d-dev at openjdk.java.net as the sponsoring Group(s). I am the maintainer of the ICU Layout Engine, which is used for complex text rendering since Java 1.2 ([1]). This package has not been actively developed in quite some time, as is evidenced by recent performance, stability, and security issues that have been corrected. Although it is used in a number of other projects (both open source and otherwise), it has been a long standing dream of many (or at least, several) to have a single open source layout engine building on the legacy of FreeType, Qt, Pango and ICU?s layout engines. This has been realized by the HarfBuzz [2] project. WHY SHOULD OPENJDK SWITCH TO HARFBUZZ? * Significantly faster. Khaled Hosny reports 10x for his Amiri font, and LibreOffice agrees. * More compatible with Uniscribe. Extensively tested with a wide variety of fonts and data. * Much better script coverage. Including new-spec Indic and others. * Actively maintained, active development community. * Written from the ground up to be secure. * Rapidly becoming the standard reusable OpenType layout engine. If a project isn?t using an in-house engine such as Microsoft?s Uniscribe, or those by Apple, Adobe, etc., it is probably using or will use HarfBuzz. * I, the maintainer of the ICU Layout Engine currently in the OpenJDK (srl) recommend it. I?m also already involved in the HarfBuzz project and so can make sure that OpenJDK?s use is well supported moving forward. * Independently tested by Mozilla, Android, ChromeOS. * In use by Android 4.3 (released this week), Qt, Pango (GNOME), Firefox, Chromium, LibreOffice, XeTeX and others. * HarfBuzz has an ICU compatibility library which will make it easier to switch back and forth between ICU and HarfBuzz. It involves dropping in different headers and recompiling/relinking. * HarfBuzz has licenses compatible with both OpenJDK and commercial uses ("HarfBuzz is licensed under the so-called "Old MIT" license. ") SCOPE OF PROJECT AND ROADMAP 1. The first step is to add configure switches which allow HarfBuzz?s ICU compatibility layer to be chosen instead of ICU at build time. This can be done as a prototype against JDK 8. 2. This would allow side-by-side comparisons of HB vs. ICU behavior from functional, performance, and platform compatibility perspectives. 3. Next, we would integrate this into mainstream (building against HarfBuzz by default) in JDK 9. 3. Future work could include HarfBuzz-specific code optimizations, including calling into HarfBuzz directly instead of via the ICU wrapper. 4. Also to be explored would be any new API and features in the JDK which might be possible because of the HarfBuzz engine. Note: there are some issues right now with dropping in different ICU versions - see the ?libicu? discussion currently on 2d-dev for details. WHO WOULD BE INVOLVED IN THIS PROJECT? Initial authors: Steven R. Loomis, Omair Majid, Phil Race Initial reviewers: Phil Race Votes are due by: Thu Aug 1 12:00 GMT 2013. Only current OpenJDK Members [3] are eligible to vote on this motion. Votes must be cast in the open on the discuss list. Replying to this message is sufficient if your mail program honors the Reply-To header, by replying to to this mailing list. For Lazy Consensus voting instructions, see [4]. Steven R. Loomis (IBM) REFERENCES [1]https://ssl.icu-project.org/docs/papers/international_text_in_jdk_1.2/ (1997) [2]http://www.freedesktop.org/wiki/Software/HarfBuzz/ [3]http://openjdk.java.net/census#members [4]http://openjdk.java.net/projects/#new-project-vote