Lines Matching +full:05 +full:- +full:instancing

4 - Fix the sign of fallback vertical glyph advance (used when font has no
6 - Increase maximum “CFF” operands limit 20 times to support more complex fonts.
7 - Add “--face-loader” option to command line utilities.
8 - Support “COLR” v0 table in hb_font_get_glyph_extents().
9 - Add support for font functions that use Core Text APIs, similar to FreeType
12 - Update IANA and OT language registries, as well ase USE data files.
13 - Fix build with ICU 76.
14 - Various compiler warnings and build fixes.
15 - Various subsetter fixes.
17 - New API:
27 - Relax sanitization checks for “morx” subtables to fix broken AAT shaping of
34 - Unicode 16.0.0 support.
35 - Various documentation fixes.
36 - Various build fixes.
37 - Add API to allow HarfBuzz client to set what glyph to use when a Unicode
40 - Add a callback to for “hb_face_t” for getting the list of table tags. This is
43 - CGJ and Mongolian Variation Selectors are now ignored during glyph
46 - Support cairo script as an output format for “hb-view” command line tool.
47 - Drop an optimization that would cause HarfBuzz not apply pair positioning
50 - Subsetting will now fail if source font has no glyphs, so feeding the subsetter
52 - If after partially instancing a font no variation data is left (the instance
54 - Workaround a Firefox bug in displaying SVGs generated be “hb-view” command
56 - Fix bug in macroman mapping for “cmap” table.
57 - Fix difference shaping output when HarfBuzz is built with with
59 - Various subsetting and instancing fixes.
60 - Various fuzzing fixes.
61 - Add “with_libstdcxx” meson build option.
64 - New API:
81 - HarfBuzz now the supports the proposed new OpenType “VARC” table. This
85 https://github.com/harfbuzz/boring-expansion-spec/blob/main/VARC.md
86 - Autotools build system have been dropped. Meson is the only supported build
88 - Speed up “AAT” shaping for short words by up to 4%.
89 - Ignore unknown “CFF” operators.
90 - “hb_subset_input_keep_everything()” now keeps also non-unicode “name” table
92 - Update the IANA and OpenType language tag registries.
93 - Support composite glyphs with very large number of points in hb-draw API.
94 - Various build fixes.
100 - API for partial instancing is now stable and have been promoted out of
102 - Support instancing “BASE” table.
103 - Speedup AAT shaping by 13–30%.
104 - Various build fixes.
105 - Various subsetter and instancer fixes.
107 - New API:
115 - Add /bigobj to MSVC compiler flags in meson build, to fix building hb-subset.cc
116 - Specify minimum versions of various dependencies in meson and autotools build.
117 - When subsetting, place variation store at the end of “GDEF” table to fix
119 - Various build fixes.
121 - New API:
128 - hb_blob_create_from_file_or_fail() on Windows will now try to interpret the
129 file name as UTF-8 first, and as system code page if it is not valid UTF-8.
130 - Fix hb_style_get_value() in fonts with “STAT” table.
131 - Properly handle negative offsets in CFF table.
132 - Update IANA Language Subtag Registry to 2024-03-07.
133 - Subsetter now supports subsetting “BASE” table.
134 - Subsetter will update “hhea” font metrics in sync with “OS/2” ones.
135 ---variations” option of “hb-subset” now supports leaving out values that
139 - Fix hb_ot_math_get_glyph_kerning() to match updated “MATH” table spec.
140 - Support legacy MacRoman encoding in “cmap” table.
141 - Various build fixes.
142 - Various subsetting and instancing fixes.
144 - New API:
150 - Improve memory barrier to fix potential segfaults.
151 - Various build fixes.
152 - Various subsetting and instancing fixes.
153 - Rename “hb-subset” option “--instance” to “--variations” to match the other
156 - New API:
159 - Deprecated API:
166 - Fix regression from 8.1.0 in shaping fonts with duplicate feature tags.
167 - Fix regression from 8.2.0 in parsing CSS-style feature strings.
168 - Variable fonts instanciation now handles more tables.
169 - Various CMake build improvements.
170 - various fixes to build without errors with gcc 4.9.2.
176 - Unicode 15.1 support.
182 - Various build and fuzzing fixes
183 - Improvements to COLRv1 painting.
185 - New API:
194 - Fix shaping of contextual rules at the end of string, introduced in 8.1.0
195 - Fix stack-overflow in repacker with malicious fonts.
196 - 30% speed up loading Noto Duployan font.
202 - Fix long-standing build issue with the AIX compiler and older Apple clang.
204 - Revert optimization that could cause timeout during subsetting with malicious fonts.
206 - More optimization work:
207 - 45% speed up in shaping Noto Duployan font.
208 - 10% speed up in subsetting Noto Duployan font.
209 - Another 8% speed up in shaping Gulzar.
210 - 5% speed up in loading Roboto.
212 - New API:
219 - Build fix on 32-bit ARM.
221 - More speed optimizations:
222 - 60% speed up in retain-gid (used for IFT) subsetting of SourceHanSans-VF.
223 - 16% speed up in retain-gid (used for IFT) subsetting of NotoSansCJKkr.
224 - 38% speed up in subsetting (beyond-64k) mega-merged Noto.
230 - New, experimental, WebAssembly (WASM) shaper, that provides greater
235 https://github.com/harfbuzz/harfbuzz/blob/main/docs/wasm-shaper.md
239 https://github.com/harfbuzz/harfbuzz-wasm-examples
241 - Improvements to Experimental features introduced in earlier releases:
242 - Support for subsetting beyond-64k and VarComposites fonts.
243 - Support for instancing variable fonts with cubic “glyf” table.
245 - Many big speed optimizations:
246 - Up to 89% speedup loading variable fonts for shaping.
247 - Up to 88% speedup in small subsets of large (eg. CJK) fonts (both TTF and
249 - Over 50% speedup in loading Roboto font for shaping.
250 - Up to 40% speed up in loading (sanitizing) complex fonts.
251 - 30% speed up in shaping Gulzar font.
252 - Over 25% speedup in glyph loading Roboto font.
253 - 10% speed up loading glyph shapes in VarComposite Hangul font.
254 - hb-hashmap optimizations & hashing improvements.
256 - New macro HB_ALWAYS_INLINE. HarfBuzz now inlines functions more aggressively,
260 - New API:
272 - Speedup applying glyph variation in VarComposites fonts (over 40% speedup).
274 - Speedup instancing some fonts (over 20% speedup in instancing RobotoFlex).
276 - Speedup shaping some fonts (over 30% speedup in shaping Roboto).
278 - Support subsetting VarComposites and beyond-64k fonts. (Behdad Esfahbod)
279 - New configuration macro HB_MINIMIZE_MEMORY_USAGE to favor optimizing memory
281 - Supporting setting the mapping between old and new glyph indices during
283 - Various fixes and improvements.
286 - New API:
293 - Add Tifinagh to the list of scripts that can natively be either right-to-left
294 or left-to-right, to improve handling of its glyph positioning.
296 - Return also single substitution from hb_ot_layout_lookup_get_glyph_alternates()
298 - Fix 4.2.0 regression in applying across syllables in syllabic scripts.
300 - Add flag to avoid glyph substitution closure during subsetting, and the
301 corresponding “--no-layout-closure” option to “hb-subset” command line tool.
303 - Support instancing COLRv1 table. (Qunxin Liu)
304 - Don’t drop used user-defined name table entries during subsetting.
306 - Optimize handling of “gvar” table. (Behdad Esfahbod)
307 - Various subsetter bug fixes and improvements. (Garret Rieger, Qunxin Liu)
308 - Various documentation improvements. (Behdad Esfahbod, Josef Friedrich)
310 - New API:
314 - Deprecated API:
321 - New experimental hb_shape_justify() API that uses font variations to expand
323 - Various build and bug fixes. (Behdad Esfahbod, Garret Rieger, Qunxin Liu)
325 - New API:
332 - Various build and bug fixes.
338 - New hb-paint API that is designed mainly to paint “COLRv1” glyphs, but can be
342 - New hb-cairo API for integrating with cairo graphics library. This is provided
343 as a separate harfbuzz-cairo library. (Behdad Esfahbod, Matthias Clasen)
344 - Support for instancing “CFF2” table. (Behdad Esfahbod)
345 - Support font emboldening. (Behdad Esfahbod)
346 - Support feature ranges with AAT shaping. (Behdad Esfahbod)
347 - Experimental support to cubic curves in “glyf” table, see
348 https://github.com/harfbuzz/boring-expansion-spec/blob/main/glyf1-cubicOutlines.md
350 - Various subsetter improvements. (Garret Rieger, Qunxin Liu, Behdad Esfahbod)
351 - Various documentation improvements.
353 - Significantly reduced memory use during shaping. (Behdad Esfahbod)
354 - Greatly reduced memory use during subsetting “CFF” table. (Behdad Esfahbod)
355 - New command line utility, hb-info, for querying various font information.
357 - New hb-shape/hb-view options: --glyphs, --color-palette, --font-bold,
358 --font-grade, and --named-instance. (Behdad Esfahbod)
359 - Miscellaneous fixes and improvements.
360 (Amir Masoud Abdol, Andres Salomon, Behdad Esfahbod, Chun-wei Fan,
364 - New API:
459 - Deprecated API:
468 - A new API have been added to pre-process the face and speed up future
473 https://github.com/harfbuzz/harfbuzz/blob/main/docs/subset-preprocessing.md
477 - Shaping have been speedup by skipping entire lookups when the buffer contents
481 - A new experimental feature, “Variable Composites” (enabled by passing
482 -Dexperimental_api=true to meson), is also featured in this release.
488 https://github.com/harfbuzz/boring-expansion-spec/blob/glyf1/glyf1.md
490 A test variable-font with ~7160 Hangul syllables derived from the
491 NotoSerifKR-VF font has been built, with existing OpenType technology, as
500 $ hb-view butchered-hangul-serif-smarties-variable.ttf -u AE01 --variations=wght=700
504 - The HarfBuzz subsetter can now drop axes by pinning them to specific values
505 (also referred to as instancing). There are a couple of restrictions
508 - Only works with TrueType (“glyf”) based fonts. “CFF2” fonts are not yet
510 - Only supports the case where all axes in a font are pinned.
514 - Miscellaneous fixes and improvements.
521 - New API
530 - Subsetter repacker fixes. (Garret Rieger)
531 - Adjust Grapheme clusters for Katakana voiced sound marks. (Behdad Esfahbod)
532 - New “hb-subset” option “--preprocess-face”. (Garret Rieger)
539 - Don’t add glyphs from dropped MATH or COLR tables to the subset glyphs.
541 - Map “rlig” to appropriate AAT feature selectors. (Jonathan Kew)
542 - Update USE data files to latest version. (David Corbett)
543 - Check “CBDT” extents first before outline tables, to help with fonts that
545 - More work towards variable font instancing in the subsetter. (Qunxin Liu)
546 - Subsetter repacker improvements. (Garret Rieger)
547 - New API:
555 - Fix regressions in hb-ft font functions for FT_Face’s with transformation
557 - The experimental hb-repacker API now supports splitting several GPOS subtable
559 - The HarfBuzz extensions to OpenType font format are now opt-in behind
560 build-time flags. (Behdad Esfahbod)
561 - The experimental hb-subset variable fonts instantiation API can now
563 - Unicode 15 support. (David Corbett)
564 - Various documentation improvements. (Behdad Esfahbod, Matthias Clasen)
565 - The hb-view command line tool now detects WezTerm inline images support.
567 - Fix FreeType and ICU dependency lookup with meson. (Xavier Claessens)
569 - New API:
577 - More extensive buffer tracing messages. (Behdad Esfahbod)
578 - Fix hb-ft regression in bitmap fonts rendering. (Behdad Esfahbod)
579 - Support extension promotion of lookups in hb-subset-repacker. (Garret Rieger)
580 - A new HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL for scripts that use elongation
583 - Add “--safe-to-insert-tatweel” to “hb-shape” tool. (Behdad Esfahbod)
585 - New API
593 - Fix version 2 “avar” table with hb-ft. (Behdad Esfahbod)
599 - Support fonts with more than 65535 glyphs in “GDEF”, “GSUB”, and “GPOS”
600 tables. This is part of https://github.com/be-fonts/boring-expansion-spec to
601 extend OpenType in a backward-compatible way.
603 - Complete support for more than 65535 glyphs in “glyf” table that started in
604 4.0.0 release. Part of boring-expansion-spec. (Behdad Esfahbod)
605 - Support version 2 of “avar” table. Part of boring-expansion-spec.
607 - Fix mark attachment on multiple substitutions in some cases.
609 - Fix application of “calt”, “rclt”, and “ccmp” features to better match
611 - Improvement to interaction between multiple cursive attachments.
613 - Improve multiple mark interactions in Hebrew. (Behdad Esfahbod)
614 - Implement language-specific forms in AAT shaping. (Behdad Esfahbod)
615 - Fix variation of “VORG” table. (Behdad Esfahbod)
616 - Support for specific script tags to be retained in the subsetter, and add
617--layout-scripts” option to “hb-subset” tool. (Garret Rieger)
618 - Accept space as delimiter for --features/--variations in command line tools.
619 - Improve subsetting of “COLR” table. (Qunxin Liu)
620 - Improved fuzzing coverage for ot-math API. (Frédéric Wang)
621 - Fix “kern” table version 2 (AAT) sanitization on 32-bit systems.
623 - Allow negative glyph advances from “graphite2” shaper. (Stephan Bergmann)
624 - Implement loading (color) bitmap fonts with hb-ft. (Behdad Esfahbod)
625 - Fix regression in hb-ft when changing font size. (Behdad Esfahbod)
626 - Fix build on GCC < 7. (Kleis Auke Wolthuizen)
627 - Dynamically load dwrite.dll on windows if “directwrite” shaper is enabled.
629 - Provide a single-file harfbuzz-subset.cc file for easier alternate building
630 of hb-subset library, similar to harfbuzz.cc. (Khaled Hosny)
632 - New API
640 - Fix test failure with some compilers.
641 - Fix Telugu and Kannada kerning regression.
647 - Caching of variable fonts shaping, in particular when using HarfBuzz’s own
649 with non-variable fonts shaping. (Behdad Esfahbod)
650 - Caching of format 2 “Contextual Substitution” and “Chained Contexts
651 Substitution” lookups. Resulting in up to 20% speedup of lookup-heavy fonts
653 - Improved ANSI output from hb-view. (Behdad Esfahbod)
654 - Support for shaping legacy, pre-OpenType Windows 3.1-era, Arabic fonts that
656 - Sinhala script is now shaped by the USE shaper instead of “indic” one.
658 - Thai shaper improvements. (David Corbett)
659 - hb-ot-name API supports approximate BCP-47 language matching, for example
662 - Optimized TrueType glyph shape loading. (Behdad Esfahbod)
663 - Fix subsetting of HarfBuzz faces created via hb_face_create_for_tables().
665 - Add 32 bit var store support to the subsetter. (Garret Rieger)
667 - New API
681 - Major speed up in loading and subsetting fonts, especially in
684 - Speed up blending CFF2 table. (Behdad Esfahbod)
685 - Speed up hb_ot_tags_from_language(). (Behdad Esfahbod, David Corbett)
686 - Fix USE classification of U+10A38 to fix multiple marks on single Kharoshthi
688 - Fix parsing of empty CFF Index. (Behdad Esfahbod)
689 - Fix subsetting CPAL table with partial palette overlaps. (Garret Rieger)
691 - New API
698 - Make sure hb_blob_create_from_file_or_fail() always returns nullptr in case
700 - Add --passthrough-tables option to hb-subset. (Cosimo Lupo)
701 - Reinstate a pause after basic features in Khmer shaper, fixing a regression
703 - Better handling of Regional_Indicator when shaped with RTL-native scripts,
710 - Source code reorganization, splitting large hb-ot-layout files into smaller,
711 per-subtable ones under OT/Layout/*. Code for more tables will follow suit in
713 - Revert Indic shaper change in previous release that broke some fonts and
714 instead make per-syllable restriction of “GSUB” application limited to
715 script-specific Indic features, while applying them and discretionary
717 - Fix decoding of private in gvar table. (Behdad Esfahbod)
718 - Fix handling of contextual lookups that delete too many glyphs. (Behdad Esfahbod)
719 - Make “morx” deleted glyphs don’t block “GPOS” application. (Behdad Esfahbod)
720 - Various build fixes. (Chun-wei Fan, Khaled Hosny)
722 - New API
729 - Various OSS-Fuzz fixes. (Behdad Esfahbod)
730 - Make fallback vertical-origin match FreeType’s. (Behdad Esfahbod)
731 - Treat visible viramas like dependent vowels in USE shaper. (David Corbett)
732 - Apply presentation forms features and discretionary features in one go in
735 - Various bug fixes.
737 - New API
744 - Update OpenType to AAT mappings for “hist” and “vrtr” features.
746 - Update IANA Language Subtag Registry to 2022-03-02. (David Corbett)
747 - Update USE shaper to allow any non-numeric tail in a symbol cluster, and
749 - Fix handling of baseline variations to return correctly scaled values.
751 - A new experimental hb_subset_repack_or_fail() to repack an array of objects,
755 - New experimental API
764 - New public API to create subset plan and gather information on things like
767 - Draw API for extracting glyph shapes have been extended and finalized and is
771 previous, non-public, experimental API. (Behdad Esfahbod)
772 - The hb-view tool will use HarfBuzz draw API to render the glyphs instead of
773 cairo-ft when compiled with Cairo 1.17.5 or newer, setting HB_DRAW
776 - The hb-shape and hb-view tools now default to using HarfBuzz’s own font
778 option, --font-slant, to apply synthetic slant to the font. (Behdad Esfahbod)
779 - HarfBuzz now supports more than 65535 (the OpenType limit) glyph shapes and
780 metrics. See https://github.com/be-fonts/boring-expansion-spec/issues/6 and
781 https://github.com/be-fonts/boring-expansion-spec/issues/7 for details.
783 - New API to get the dominant horizontal baseline tag for a given script.
785 - New API to get the baseline positions from the font, and synthesize missing
788 - Improvements to finding dependencies on Windows when building with Visual
789 Studio. (Chun-wei Fan)
790 - New buffer flag, HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT, that must be set
794 - Documentation improvements. (Matthias Clasen)
796 - New API
797 - General:
801 - Draw:
829 - OpenType layout
835 - Metrics:
838 - Subset:
854 - Perform sanity checks on shaping results is now part of “harfbuzz” library
857 - Arabic Mark Transient Reordering Algorithm have been updated to revision 6.
859 - ISO 15924 code for mathematical notation, ‘Zmth’, now maps to the OpenType
861 - It is now possible to get at once all math kerning values for a given glyph
863 - Fix locale_t portability issues on systems the typedef’s it to a void
866 - New API:
873 - Deprecated API
880 - Revert splitting of pair positioning values introduced in 3.3.0 as it proved
887 - Fix heap-use-after-free in harfbuzz-subset introduced in previous release.
894 - Improved documentation. (Matthias Clasen)
895 - Internal code cleanup, using C++ standard library more. (Behdad Esfahbod)
896 - The low 16-bits of face index will be used by hb_face_create() to select a
897 face inside a font collection file format, while the high 16-bits will be
899 - Glyph positions and other font metrics now apply synthetic slant set by
902 - Fixed unintentional locale dependency in hb_variation_to_string() for decimal
904 - When applying pair positioning (kerning) the positioning value is split
907 - Introduced new HB_GLYPH_FLAG_UNSAFE_TO_CONCAT, to be used in conjunction
908 with HB_GLYPH_FLAG_UNSAFE_TO_BREAK for optimizing re-shaping during line
910 - Improved handling of macrolanguages when mapping BCP 47 codes to OpenType
913 - New API:
926 - Fixed shaping of Apple Color Emoji flags in right-to-left context. (Behdad Esfahbod)
927 - Fixed positioning of CFF fonts in HB_TINY profile. (Behdad Esfahbod)
928 - OpenType 1.9 language tags update. (David Corbett)
929 - Add HB_NO_VERTICAL config option.
930 - Add HB_CONFIG_OVERRIDE_H for easier configuration. (Behdad Esfahbod)
932 “harfbuzz-subset” library improvements:
933 - Improved packing of cmap, loca, and Ligature tables. (Garret Rieger)
934 - Significantly improved overflow-resolution strategy in the repacker. (Garret Rieger)
940 - hb-shape / hb-view: revert treating text on the commandline as single
941 paragraph (was introduced in 3.0.0); add new --single-par to do that.
943 - Subsetter bug fixes. (Garret Rieger, Qunxin Liu, Behdad Esfahbod)
949 - Work around GCC cast-align error/warning on some platforms. (Behdad Esfahbod)
950 - Documentation improvements. (Matthias Clasen)
956 - Better offset-overflow handling in the subsetter library. (Garret Rieger)
957 - Improved Unicode 14 properties in the USE shaper, and various other USE
959 - MATH and COLR v1 tables subsetting support, and various other subsetter fixes.
961 - Support for Pwo Karen / Ason Chin medial la. (Simon Cozens)
962 - Apply GPOS positioning when substituting with morx table, if kerx is missing.
964 - Apply calt and clig features across syllable boundaries in Indic shaper.
966 - meson option for enabling Graphite 2 has been renamed to graphite2.
967 - Build and documentation fixes.
969 - New API:
977 - Unicode 14.0 support (David Corbett).
978 - The hb-subset API and the harfbuzz-subset library's ABI are now declared
979 stable. The harfbuzz-subset library would not have been possible without the
982 - The hb-style API is now stable and no longer experimental.
984 - New API:
1002 - Removed old unstable harfbuzz-subset API:
1003 -hb_subset_input_nameid_set()
1004 -hb_subset_input_namelangid_set()
1005 -hb_subset_input_layout_features_set()
1006 -hb_subset_input_no_subset_tables_set()
1007 -hb_subset_input_drop_tables_set()
1008 -hb_subset_input_set_drop_hints()
1009 -hb_subset_input_get_drop_hints()
1010 -hb_subset_input_set_desubroutinize()
1011 -hb_subset_input_get_desubroutinize()
1012 -hb_subset_input_set_retain_gids()
1013 -hb_subset_input_get_retain_gids()
1014 -hb_subset_input_set_name_legacy()
1015 -hb_subset_input_get_name_legacy()
1016 -hb_subset_input_set_overlaps_flag()
1017 -hb_subset_input_get_overlaps_flag()
1018 -hb_subset_input_set_notdef_outline()
1019 -hb_subset_input_get_notdef_outline()
1020 -hb_subset_input_set_no_prune_unicode_ranges()
1021 -hb_subset_input_get_no_prune_unicode_ranges()
1022 -hb_subset()
1028 - Final subset API is in place and if no issues are discovered, it will be the
1031 - Various fuzzer-found bug fixes.
1032 - hb_buffer_append() now handles the pre- and post-context which previously
1034 - hb-view / hb-shape now accept following new arguments:
1035 o --unicodes-before/after: takes a list of hex numbers that represent Unicode
1037 - Undeprecated API:
1045 - Subsetter API is being stabilized, with the first stable API to happen in
1047 - Support multiple variation axes with same tag, aka HOI.
1048 - The “coretext” testing shaper now passes font variations to CoreText.
1049 - hb-shape/hb-view does not break line at new lines unless text is read from
1051 - hb-view and hb-subset has a --batch now, similar to hb-shape.
1052 - The --batch mode now uses ; as argument separator instead of : used previously.
1053 - The --batch in hb-shape does not expect 0th argument anymore. That is, the
1055 - The --batch option has been undocumented. We are ready to document it; send
1057 - hb-subset got arguments revamps. Added much-requested --gids-file, --glyphs,
1058 --glyphs-file, --unicodes-file, supporting ranges in --unicodes.
1059 - Various bug fixes.
1065 - Shaping LTR digits for RTL scripts now makes the native direction of the
1068 - Subsetting COLR v1 and CPAL tables is now supported. (Garret Rieger, Qunxin Liu)
1069 - Various fixes and improvements to the subsetter. (Garret Rieger, Qunxin Liu, Behdad)
1070 - When applying morx table, mark glyph widths should not be zeroed. (Jonathan Kew)
1071 - GPOS is preferred over kerx, if GSUB was applied. (Behdad)
1072 - Regional_Indicator pairs are grouped together when clustering. (Behdad)
1073 - New API:
1082 - Subsetter now fully supports GSUB/GPOS/GDEF tables (including variations); as
1084 - Build scripts no longer check for FontConfig as HarfBuzz does not use it.
1085 - hb-view supports iTerm2 and kitty inline image protocols (Khaled Hosny),
1091 - Shape joining scripts other than Arabic/Syriac using the Universal Shaping Engine.
1093 - Fix regression in shaping of U+0B55 ORIYA SIGN OVERLINE. (David Corbett)
1094 - Update language tags. (David Corbett)
1095 - Variations: reduce error: do not round each interpolated delta. (Just van Rossum)
1096 - Documentation improvements. (Khaled Hosny, Nathan Willis)
1097 - Subsetter improvements: subsets most, if not all, lookup types now. (Garret Rieger, Qunxin Liu)
1098 - Fuzzer-found fixes and other improvements when memory failures happen. (Behdad)
1099 - Removed most atomic implementations now that we have C++11 atomic impl. (Behdad)
1100 - General codebase upkeep; using more C++11 features: constexpr constructors, etc. (Behdad)
1106 - Fix missing --enable-introspection configure option from previous release
1108 - Documentation updates.
1114 - Update USE shaper to 2020-08-13 specification, and other improvements.
1115 - Don’t disable liga feature in myanmar shaper, to match Uniscribe.
1116 - Improvements to language and script tags handling.
1117 - Update language system tag registry to OpenType 1.8.4
1118 - Support for serializing and deserializing Unicode buffers. Serialized buffers
1121 - Increase buffer work limits to handle fonts with many complex lookups.
1122 - Handle more shaping operations in trace output.
1123 - Memory access fixes.
1124 - More OOM fixes.
1125 - Improved documentation.
1126 - Build system improvements.
1127 - New API:
1137 - Fix a regression in the previous release that caused a crash with Kaithi.
1138 - More OOM fixes.
1144 - ot-funcs now handles variable empty glyphs better when hvar/vvar isn't present.
1145 - Reverted a GDEF processing regression.
1146 - A couple of fixes to handle OOM better.
1152 - Use an implementation for round that always rounds up, some minor fluctuations
1153 are expected on var font specially when hb-ot callback is used.
1154 - Fix an AAT's `kerx` issue on broken rendering of Devanagari Sangam MN.
1155 - Remove AAT's `lcar` table support from _get_ligature_carets API, not even much
1158 - Minor memory fixes to handle OOM better specially in hb-ft.
1159 - Minor .so files versioning scheme change and remove stable/unstable scheme
1161 - We are now suggesting careful packaging of the library using meson,
1162 https://github.com/harfbuzz/harfbuzz/wiki/Notes-on-migration-to-meson
1164 - Distribution package URL is changed, either use GitHub generated tarballs,
1173 - New API to fetch glyph alternates from GSUB table.
1174 - hb-coretext build fix for macOS < 10.10.
1175 - Meson build fixes, cmake port removal is postponed but please prepare for
1179 - New API:
1186 - Update to Unicode 13.0.0.
1187 - Fix hb_ot_layout_get_ligature_carets for fonts without lcar table, it was
1189 - As a part of our migration to meson, this release will be the last one
1198 - A fix in AAT kerning for Geeza Pro.
1199 - Better support for resource fork fonts on macOS.
1205 - Add experimental meson build system. Autotools is still the primary
1207 - AAT is now always preferred for horizontal scripts when both AAT and OT
1209 - Subsetter improvements.
1210 - New API:
1218 - Small bug fix.
1219 - Build fixes.
1225 - Misc small fixes, mostly to build-related issues.
1226 - New API:
1233 - Misc small fixes, mostly to build-related issues.
1239 - Fix regression with hb_font_create_sub_font scaling introduced in 2.6.0.
1240 - Change interpretation of font PTEM size / CoreText font size handling.
1242 - hb-ot-font: Prefer symbol cmap subtable if present.
1243 - Apply 'dist'/'abvm'/'blwm' features to all scripts.
1244 - Drop experimental DirectWrite API.
1250 - New OpenType metrics, baseline, and metadata table access APIs.
1251 - New API to set font variations to a named-instance.
1252 - New hb-gdi.h header and API for creating hb_face_t from HFONT.
1253 - Amalgam: Provide a single-file harfbuzz.cc file for easier alternate building.
1254 - More size-reduction configurable options, enabled by HB_TINY.
1255 - New API:
1273 - Fix UCD script data for Unicode 10+ scripts. This was broken since 2.5.0.
1274 - More optimizations for HB_TINY.
1280 - More hb-config.hh facilities to shrink library size, namely when built as
1282 - New documentation of custom configurations in CONFIG.md.
1283 - Fix build on gcc 4.8. That's supported again.
1284 - Universal Shaping Engine improvements thanks to David Corbett.
1285 - API Changes: Undeprecate some horizontal-kerning API and re-enable in hb-ft,
1292 - Fix build with various versions of Visual Studio.
1293 - Improved documentation, thanks to Nathan Willis.
1294 - Bugfix in subsetting glyf table.
1295 - Improved scripts for cross-compiling for Windows using mingw.
1296 - Rename HB_MATH_GLYPH_PART_FLAG_EXTENDER to HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER.
1297 A deprecated macro is added for backwards-compatibility.
1303 - This release does not include much functional changes, but includes major internal
1304 code-base changes. We now require C++11. Support for gcc 4.8 and earlier has been
1306 - New hb-config.hh facility for compiling smaller library for embedded and web usecases.
1307 - New Unicode Character Database implementation that is half the size of previously-used
1309 - Subsetter improvements.
1310 - Improved documentation, thanks to Nathan Willis.
1311 - Misc shaping fixes.
1317 - Unicode 12.
1318 - Misc fixes.
1319 - Subsetter improvements.
1320 - New API:
1328 - AAT bug fixes.
1329 - Misc internal housekeeping cleanup.
1335 - Fix regression on big-endian architectures. Ouch!
1336 - Misc bug and build fixes.
1337 - Fix subsetting of simple GSUB/GDEF.
1338 - Merge CFF / CFF2 support contributed by Adobe. This mostly involves
1341 New API in hb-aat.h:
1350 - Misc shaping bug fixes.
1351 - Add font variations named-instance API.
1352 - Deprecate font variations axis enumeration API and add replacement.
1353 - AAT shaping improvements:
1385 - Fix AAT 'mort' shaping, which was broken in 2.1.2
1391 - Various internal changes.
1392 - AAT shaping improvements:
1393 o Implement kern table Format 1 state-machine-based kerning.
1394 o Implement cross-stream kerning (cursive positioning, etc).
1399 -Overview of changes leading to 2.1.1
1402 - AAT improvements:
1410 - AAT shaping improvements:
1413 o Implement tuple-kerns in 'kerx'; Fixes kerning with Apple default
1415 - Support for color fonts:
1419 - New 'name' table API.
1420 - hb-ot-font now uses 'VORG' table to correctly position CFF glyphs
1422 - Various fuzzer-found bug fixes.
1428 hb_name_id_t -> hb_ot_name_id_t
1429 HB_NAME_ID_INVALID -> HB_OT_NAME_ID_INVALID
1491 - Fix two minor memory access issues in AAT tables.
1497 - Fix hb-version.h reported release version that went wrong (1.8.0)
1499 - Fix extrapolation in 'trak' table.
1500 - Fix hb-font infinite-recursion issue with some font funcs and
1502 - Implement variation-kerning format in kerx table, although without
1504 - Fix return value of hb_map_is_empty().
1510 - Added AAT shaping support (morx/kerx/trak).
1514 - Apply TrueType kern table internally, instead of relying on
1516 - Khmer shaper significantly rewritten to better match Uniscribe.
1517 - Indic3 tags ('dev3', etc) are passed to USE shaper.
1518 - .dfont Mac font containers implemented.
1519 - Script- and language-mapping revamped to better use BCP 47.
1520 - Misc USE and Indic fixes.
1521 - Misc everything fixes.
1522 - Too many things to list. Biggest release since 0.9.1, with
1525 - hb-ft now locks underlying FT_Face during use.
1529 - Newly-created hb_font_t's now have our internal "hb-ot-font"
1536 - New hb_font_funcs_set_nominal_glyphs_func() allows speeding
1556 -hb_font_funcs_set_glyph_func()
1557 -hb_unicode_eastasian_width_func_t
1558 -hb_unicode_funcs_set_eastasian_width_func()
1559 -hb_unicode_eastasian_width()
1560 -hb_unicode_decompose_compatibility_func_t
1561 -HB_UNICODE_MAX_DECOMPOSITION_LEN
1562 -hb_unicode_funcs_set_decompose_compatibility_func()
1563 -hb_unicode_decompose_compatibility()
1564 -hb_font_funcs_set_glyph_h_kerning_func()
1565 -hb_font_funcs_set_glyph_v_kerning_func()
1566 -hb_font_get_glyph_h_kerning()
1567 -hb_font_get_glyph_v_kerning()
1568 -hb_font_get_glyph_kerning_for_direction()
1569 -hb_ot_layout_table_choose_script()
1570 -hb_ot_layout_script_find_language()
1571 -hb_ot_tags_from_script()
1572 -hb_ot_tag_from_language()
1578 - Added 'cmap' API to hb_face_t.
1579 - Face-builder API.
1580 - hb-ot-font re-creation should be much leaner now, as the
1582 - Internal source header file name changes:
1583 hb-*-private.hh is renamed to hb-*.hh.
1597 - Fix hb-icu crash on architectures where compare_exchange_weak() can
1600 - More internal refactoring of atomic operations and singletons.
1601 - API changes:
1615 - Fix assertion failure with GDEF-blacklisted fonts.
1621 - Internal code shuffling.
1622 - New API to speed up getting advance widths for implementations
1636 - Major Khmer shaper improvements to better match Microsoft.
1637 - Indic bug fixes.
1638 - Internal improvements to atomic operations.
1644 - Fix build on non-C++11.
1645 - Use C++-style GCC atomics and C++11 atomics.
1651 - A couple of Indic / USE bug fixes.
1652 - Disable vectorization, as it was causing unaligned access bus error on
1659 - Fix infinite loop in Khmer shaper.
1660 - Improve hb_blob_create_from_file() for streams.
1666 - Fix hb-version.h file generation; last two releases went out with wrong ones.
1667 - Add correctness bug in hb_set_t operations, introduced in 1.7.7.
1668 - Remove HB_SUBSET_BUILTIN build option. Not necessary.
1674 - Update to Unicode 11.0.0.
1680 - Lots of internal changes, but not yet exposed externally.
1681 - All HarfBuzz objects are significantly smaller in size now.
1682 - Sinhala: Position repha on top of post-consonant, not base.
1685 - New build options:
1688 - Significant libharfbuzz-subset changes. API subject to change.
1689 - New API in libharfbuzz:
1695 +hb-map.h
1718 - Fix to hb_set_t binary operations. Ouch.
1719 - New experimental harfbuzz-subset library. All of hb-subset.h
1722 - New API:
1733 - Separate Khmer shaper from Indic.
1734 - First stab at AAT morx. Not hooked up.
1735 - Misc bug fixes.
1742 - Fix collect_glyphs() regression caused by hb_set_t changes.
1749 - hb_set_t performance tuning and optimizations.
1750 - Speed up collect_glyphs() and reject garbage data.
1751 - In hb_coretext_font_create() set font point-size (ptem).
1752 - Misc fixes.
1759 - Optimize hb_set_add_range().
1760 - Misc fixes.
1761 - New API:
1769 - Fix atexit object destruction regression.
1770 - Fix minor integer-overflow.
1777 - Minor Indic fixes.
1778 - Implement kerning and glyph names in hb-ot-font.
1779 - Various DSO optimization re .data and .bss sizes.
1780 - Make C++11 optional; build fixes.
1781 - Mark all other backends "unsafe-to-break".
1782 - Graphite fix.
1789 - Fix hb_set_t some more. Should be solid now.
1790 - Implement get_glyph_name() for hb-ot-font.
1791 - Misc fixes.
1798 - Yesterday's release had a bad crasher; don't use it. That's what
1801 - Build fixes for FreeBSD and Chrome Android.
1808 - Don't skip over COMBINING GRAPHEME JOINER when ligating, etc.
1810 - Faster hb_set_t implementation.
1811 - Don't use deprecated ICU API.
1812 - Fix undefined-behavior in Myanmar shaper, introduced in 1.6.0
1813 - Deprecated API:
1821 - Update to Unicode 10.
1823 - Various Indic and Universal Shaping Engine fixes as a result of
1828 - Implement Unicode Arabic Mark Ordering Algorithm UTR#53.
1830 - Implement optical sizing / tracking in CoreText backend, using
1833 - Allow notifying hb_font_t that underlying FT_Face changed sizing,
1836 - More Graphite backend RTL fixes.
1838 - Fix caching of variable font shaping plans.
1840 - hb-view / hb-shape now accept following new arguments:
1842 o --unicodes: takes a list of hex numbers that represent Unicode
1856 - Fix "unsafe-to-break" in fallback shaping and other corner cases.
1857 All our tests pass with --verify now, meaning unsafe-to-break API
1859 - Add --unicodes to hb-view / hb-shape.
1860 - [indic] Treat Consonant_With_Stacker as consonant. This will need
1862 - hb_buffer_diff() tweaks.
1869 - Misc new API, for appending a buffer to another, and for comparing
1872 - New "unsafe-to-break" API. Can be used to speed up reshaping
1873 in line-breaking situations. Essentially, after shaping, it returns
1879 hb-view and hb-shape and hb-shape now take --verify, which verifies
1885 - New API:
1913 - Major fix to avar table handling.
1914 - Rename hb-shape --show-message to --trace.
1915 - Build fixes.
1922 - Multiple Indic, Tibetan, and Cham fixes.
1923 - CoreText: Allow disabling kerning.
1924 - Adjust Arabic feature order again.
1925 - Misc build fixes.
1932 - Graphite2: Fix RTL positioning issue.
1933 - Backlist GDEF of more versions of Padauk and Tahoma.
1934 - New, experimental, cmake alternative build system.
1941 - Revert "Fix Context lookup application when moving back after a glyph..."
1949 - Fix Context lookup application when moving back after a glyph deletion.
1950 - Fix buffer-overrun in Bengali.
1957 - Route Adlam script to Arabic shaper.
1958 - Misc fixes.
1959 - New API:
1961 - Deprecate API:
1969 - Implement OpenType Font Variation tables avar/fvar/HVAR/VVAR.
1970 - hb-shape and hb-view now accept --variations.
1971 - New API:
1981 hb-ot-var.h:
1990 - MVAR to be implemented later. Access to named instances to be
1993 - Misc fixes.
2000 - Always build and use UCDN for Unicode data by default.
2010 - Merged "OpenType GX" branch which adds core of support for
2032 HVAR/VVAR/MVAR support will also be added to hb-ot-font in the
2035 - Fix regression in GDEF glyph class processing.
2036 - Add decompositions for Chakma, Limbu, and Balinese in USE shaper.
2037 - Misc fixes.
2044 - Fix vertical glyph origin in hb-ot-font.
2045 - Implement CBDT/CBLC color font glyph extents in hb-ot-font.
2052 - Implement parsing of OpenType MATH table.
2076 - Fix build of hb-coretext on older OS X versions.
2083 - Blacklist bad GDEF of more fonts (Padauk).
2084 - More CoreText backend crash fixes with OS X 10.9.5.
2085 - Misc fixes.
2092 - Update to Unicode 9.0.0
2093 - Move Javanese from Indic shaper to Universal Shaping Engine.
2094 - Allow MultipleSubst to delete a glyph (matching Windows engine).
2095 - Update Universal Shaping Engine to latest draft from Microsoft.
2096 - DirectWrite backend improvements. Note: this backend is for testing ONLY.
2097 - CoreText backend improvements with unreachable fonts.
2098 - Implement symbol fonts (cmap 3.0.0) in hb-ft and hb-ot-font.
2099 - Blacklist bad GDEF of more fonts (Tahoma & others).
2100 - Misc fixes.
2107 - Blacklist another version of Times New Roman (Bold) Italic from Windows 7.
2108 - Fix Mongolian Free Variation Selectors shaping with certain fonts.
2109 - Fix Tibetan shorthand contractions shaping.
2110 - Improved list of language tag mappings.
2111 - Unbreak build on Windows CE.
2112 - Make 'glyf' table loading lazy in hb-ot-font.
2119 - Blacklist GDEF table of another set of Times New Roman (Bold) Italic.
2120 - DirectWrite backend improvements. Note: DirectWrite backend is
2129 - Fix GDEF mark-filtering-set, which was broken in 1.2.3.
2136 - Synthesize GDEF glyph class for any glyph that does not have one in GDEF.
2139 - Misc build and other minor fixes.
2140 - API changes:
2141 - Added HB_NDEBUG. It's fine for production systems to define this to
2142 disable high-overhead debugging checks. However, I also reduced the
2143 overhead of those checks, so it's a non-issue right now. You can
2151 - Blacklist GDEF table of certain versions of Times New Roman (Bold) Italic,
2152 due to bug in glyph class of ASCII double-quote character. This should
2157 - hb-ot-font's get_glyph() implementation saw some optimizations. Though,
2158 might be really hard to measure in real-world situations.
2160 - Also, two rather small API changes:
2162 We now disable some time-consuming internal bookkeeping if built with NDEBUG
2170 - hb_font_get_nominal_glyph_func_t
2171 - hb_font_get_variation_glyph_func_t
2172 - hb_font_funcs_set_nominal_glyph_func()
2173 - hb_font_funcs_set_variation_glyph_func()
2174 - hb_font_get_nominal_glyph()
2175 - hb_font_get_variation_glyph()
2178 - hb_font_get_glyph_func_t
2179 - hb_font_funcs_set_glyph_func()
2181 Clients that implement their own font-funcs are encouraged to replace
2193 - Fix regression with mark positioning with fonts that have
2194 non-zero mark advances. This was introduced in 1.2.0 while
2205 - CoreText: Fix bug with wrong scale if font scale was changed later.
2207 - CoreText: Drastically speed up font initialization.
2208 - CoreText: Fix tiny leak.
2209 - Group ZWJ/ZWNJ with previous syllable under cluster-level=0.
2211 - Add test/shaping/README.md about how to add tests to the suite.
2218 - Fix various issues (hangs mostly) in case of memory allocation failure.
2219 - Change mark zeroing types of most shapers from BY_UNICODE_LATE to
2221 - Change mark zeroing of USE shaper from NONE to BY_GDEF_EARLY. That's
2223 - Allow GPOS cursive connection on marks, and fix the interaction with
2228 - Graphite2 shaper: improved negative advance handling (eg. Nastaliq).
2229 - Add nmake-based build system for Windows.
2230 - Minor speedup.
2231 - Misc. improvements.
2238 - Ported Indic shaper to Unicode 8.0 data.
2239 - Universal Shaping Engine fixes.
2240 - Speed up CoreText shaper when font fallback happens in CoreText.
2241 - Documentation improvements, thanks to Khaled Hosny.
2242 - Very rough directwrite shaper for testing, thanks to Ebrahim Byagowi.
2243 - Misc bug fixes.
2244 - New API:
2267 - Fix badly-broken fallback shaper that affected terminology.
2269 - Fix y_scaling in Graphite shaper.
2270 - API changes:
2271 * An unset glyph_h_origin() function in font-funcs now (sensibly)
2282 - Build fixes, specially for hb-coretext.
2289 - Implement 'stch' stretch feature for Syriac Abbreviation Mark.
2291 - Disable use of decompose_compatibility() callback.
2292 - Implement "shaping" of various Unicode space characters, even
2295 - If font does not support U+2011 NO-BREAK HYPHEN, fallback to
2297 - Changes resulting from libFuzzer continuous fuzzing:
2300 * Fix assertions and other issues at OOM / buffer max-growth.
2301 - Misc fixes and optimizations.
2302 - API changes:
2311 - Reduce max nesting level in OT lookups from 8 to 6.
2313 - Fix memory access issue in ot-font.
2314 - Revert default load-flags of fonts created using hb_ft_font_create()
2324 - Fix multiple memory access bugs discovered using libFuzzer.
2329 - Misc fixes.
2331 - New API:
2338 - API changes:
2339 * Fonts now default to units-per-EM as their scale, instead of 0.
2348 - Fix minor out-of-bounds read error.
2355 - Start of user documentation, from Simon Cozens!
2356 - Implement glyph_extents() for TrueType fonts in hb-ot-font.
2357 - Improve GPOS cursive attachments with conflicting lookups.
2358 - More fixes for cluster-level = 1.
2359 - Uniscribe positioning fix.
2366 - Fix shaping with cluster-level > 0.
2367 - Fix Uniscribe backend font-size scaling.
2368 - Declare dependencies in harfbuzz.pc.
2369 FreeType is not declared though, to avoid bugs in pkg-config
2371 - Slightly improved debug infrastructure. More to come later.
2372 - Misc build fixes.
2379 - Fix out-of-bounds access in USE shaper.
2386 - Implement Universal Shaping Engine:
2388 http://blogs.windows.com/bloggingwindows/2015/02/23/windows-shapes-the-worlds-languages/
2389 - Bump version to 1.0.0. The soname was NOT bumped.
2396 - New API to allow for retrieving finer-grained cluster
2399 - Fix cluster merging when removing default-ignorables.
2400 - Update to Unicode 8.0
2401 - hb-graphite2 fixes.
2402 - Misc fixes.
2403 - Removed HB_NO_MERGE_CLUSTERS hack.
2404 - New API:
2408 hb-shape / hb-view --cluster-level
2415 - Fix hb-coretext with trailing whitespace in right-to-left.
2416 - New API: hb_buffer_reverse_range().
2417 - Allow implementing atomic ops in config.h.
2418 - Fix hb_language_t in language bindings.
2419 - Misc fixes.
2426 - Another hb-coretext crasher fix. Ouch!
2427 - Happy Norouz!
2434 - Critical hb-coretext fixes.
2435 - Optimizations and refactoring; no functional change
2437 - Misc build fixes.
2444 - Fix minor out-of-bounds access in Indic shaper.
2445 - Change New Tai Lue shaping engine from South-East Asian to default,
2447 - Add hb-shape --font-size. Can take up to two numbers for separate
2449 - Fix CoreText and FreeType scale issues with negative scales.
2450 - Reject blobs larger than 2GB. This might break some icu-le-hb clients
2452 http://www.icu-project.org/trac/ticket/11450
2453 - Avoid accessing font tables during face destruction, in casce rogue
2455 - Fix up gobject-introspection a bit. Python bindings kinda working.
2457 - Misc fixes.
2458 - API additions:
2467 - Fix out-of-bounds access in Context lookup format 3.
2468 - Indic: Allow ZWJ/ZWNJ before syllable modifiers.
2475 - First time that three months went by without a release since
2477 - Fix performance bug in hb_ot_collect_glyphs():
2479 - Add basic vertical-text support to hb-ot-font.
2480 - Misc build fixes.
2487 - Fix major shape-plan caching bug when more than one shaper were
2489 http://www.mail-archive.com/debian-bugs-[email protected]/msg1246370.html
2490 - Fix Arabic fallback shaping regression. This was broken in 0.9.32.
2491 - Major hb-coretext fixes. That backend is complete now, including
2493 - Build fixes for Windows CE. Should build fine now.
2494 - Misc fixes:
2499 - API changes:
2516 - hb_feature_from_string() now accepts CSS font-feature-settings format.
2517 - As a result, hb-shape / hb-view --features also accept CSS-style strings.
2519 - Add old-spec Myanmar shaper:
2521 - Don't apply 'calt' in Hangul shaper.
2522 - Fix mark advance zeroing for Hebrew shaper:
2524 - Implement Windows-1256 custom Arabic shaping. Only built on Windows,
2527 - Disable 'liga' in vertical text.
2528 - Build fixes.
2529 - API changes:
2557 of the paragraph. Clients that only pass item-at-a-time to HarfBuzz
2560 Another way to put it is: if there's pre-context text in the buffer,
2561 HarfBuzz ignores the BOT flag. If there's post-context, it ignores
2569 - Turn off ARabic 'cswh' feature that was accidentally turned on.
2570 - Add HB_TAG_MAX_SIGNED.
2571 - Make hb_face_make_immutable() really make face immutable!
2572 - Windows build fixes.
2579 - Apply Arabic shaping features in spec order exactly.
2580 - Another fix for Mongolian free variation selectors.
2581 - For non-Arabic scripts in Arabic shaper apply 'rlig' and 'calt'
2583 - Minor adjustment to U+FFFD logic.
2584 - Fix hb-coretext build.
2591 - Only accept valid UTF-8/16/32; we missed many cases before.
2592 - Better shaping of invalid UTF-8/16/32. Falls back to
2594 - With all changes in this release, the buffer will contain fully
2597 - Fix Mongolian Variation Selectors for fonts without GDEF.
2598 - Fix minor invalid buffer access.
2599 - Accept zh-Hant and zh-Hans language tags. hb_ot_tag_to_language()
2601 - Build fixes.
2602 - New API:
2610 we detected broken input, we replaced that with (hb_codepoint_t)-1.
2619 - Update to Unicode 7.0.0:
2624 - Minor Indic improvements.
2625 - Fix graphite2 backend cluster mapping [crasher!]
2626 - API changes:
2629 - Build fixes.
2636 - Implement cmap in hb-ot-font.h. No variation-selectors yet.
2637 - Myanmar: Allow MedialYa+Asat.
2638 - Various Indic fixes:
2642 - Build fixes.
2649 - Unbreak old-spec Indic shaping. (bug 76705)
2650 - Fix shaping of U+17DD and U+0FC6.
2651 - Add HB_NO_MERGE_CLUSTERS build option. NOT to be enabled by default
2654 public run-time API for the functionality.
2655 - Build fixes.
2662 - Don't use "register" storage class specifier
2663 - Wrap definition of free_langs() with HAVE_ATEXIT
2664 - Add coretext_aat shaper and hb_coretext_face_create() constructor
2665 - If HAVE_ICU_BUILTIN is defined, use hb-icu Unicode callbacks
2666 - Add Myanmar test case from OpenType Myanmar spec
2667 - Only do fallback Hebrew composition if no GPOS 'mark' available
2668 - Allow bootstrapping without gtk-doc
2669 - Use AM_MISSING_PROG for ragel and git
2670 - Typo in ucdn's Makefile.am
2671 - Improve MemoryBarrier() implementation
2678 - Misc fixes.
2679 - Fix application of 'rtlm' feature.
2680 - Automatically apply frac/numr/dnom around U+2044 FRACTION SLASH.
2681 - New header: hb-ot-shape.h
2682 - Uniscribe: fix scratch-buffer accounting.
2683 - Reorder Tai Tham SAKOT to after tone-marks.
2684 - Add Hangul shaper.
2685 - New files:
2686 hb-ot-shape-complex-hangul.cc
2687 hb-ot-shape-complex-hebrew.cc
2688 hb-ot-shape-complex-tibetan.cc
2689 - Disable 'cswh' feature in Arabic shaper.
2690 - Coretext: better handle surrogate pairs.
2691 - Add HB_TAG_MAX and _HB_SCRIPT_MAX_VALUE.
2698 - Myanmar shaper improvements.
2699 - Avoid font fallback in CoreText backend.
2700 - Additional OpenType language tag mappiongs.
2701 - More aggressive shape-plan caching.
2702 - Build with / require automake 1.13.
2703 - Build with libtool 2.4.2.418 alpha to support ppc64le.
2710 - Misc compiler warning fixes with clang.
2711 - No functional changes.
2718 - "Udupi HarfBuzz Hackfest", Paris, October 14..18 2013.
2719 - Fix (Chain)Context recursion with non-monotone lookup positions.
2720 - Misc Indic bug fixes.
2721 - New Javanese / Buginese shaping, similar to Windows 8.1.
2728 - Fix use-after-end-of-scope in hb_language_from_string().
2729 - Fix hiding of default_ignorables if font doesn't have space glyph.
2730 - Protect against out-of-range lookup indices.
2732 - API Changes:
2741 - Rename gobject-introspection library name from harfbuzz to HarfBuzz.
2742 - Remove (long disabled) hb-old and hb-icu-le test shapers.
2743 - Misc gtk-doc and gobject-introspection annotations.
2744 - Misc fixes.
2745 - API changes:
2754 - Misc substitute_closure() fixes.
2755 - Build fixes.
2758 - gtk-doc boilerplate integrated. Docs are built now, but
2760 some content in. Enable using --enable-gtk-doc.
2763 - Added harfbuzz-gobject library (hb-gobject.h) that has type
2765 --with-gobject.
2766 - Added gobject-introspection boilerplate. Nothing useful
2768 --with-gobject is used. Override with --disable-introspection.
2771 - Apply 'mark' in Myanmar shaper.
2772 - Don't apply 'dlig' by default.
2775 - Support user features.
2776 - Fix loading of fonts that are also installed on the system.
2777 - Fix shaping of Arabic Presentation Forms.
2778 - Fix build with wide chars.
2781 - Support user features.
2784 - hb_face_t code moved to hb-face.h / hb-face.cc.
2785 - Added hb-deprecated.h.
2788 - Added HB_DISABLE_DEPRECATED.
2789 - Deprecated HB_SCRIPT_CANADIAN_ABORIGINAL; replaced by
2791 - Deprecated HB_BUFFER_FLAGS_DEFAULT; replaced by
2793 - Deprecated HB_BUFFER_SERIALIZE_FLAGS_DEFAULT; replaced by
2801 - Build fixes.
2802 - Better handling of multiple variation selectors in a row.
2803 - Pass on variation selector to GSUB if not consumed by cmap.
2804 - Fix undefined memory access.
2805 - Add Javanese config to Indic shaper.
2806 - Misc bug fixes.
2814 - All unneeded code is all disabled by default,
2816 - Uniscribe and CoreText shapers can be enabled with their --with options,
2818 - icu_le and old shapers cannot be enabled for now,
2820 - glib, freetype, and cairo will be detected automatically.
2821 They can be force on/off'ed with their --with options,
2823 - icu and graphite2 are default off, can be enabled with their --with
2827 libharfbuzz-icu.so, and a new harfbuzz-icu.pc is shipped for it.
2831 For distros I recommend that they make sure they are building --with-glib
2832 --with-freetype --with-cairo, --with-icu, and optionally --with-graphite2;
2833 And package harfbuzz and harfbuzz-icu separately.
2840 - Build fixes.
2841 - Fix bug in hb_set_get_min().
2842 - Fix regression with Arabic mark positioning / width-zeroing.
2848 - Major speedup in OpenType lookup processing. With the Amiri
2852 - New --num-iterations option for hb-shape / hb-view; useful for
2856 Friday, April 05, 2013
2859 - Build fixes.
2860 - Fix crasher in graphite2 shaper.
2861 - Fix Arabic mark width zeroing regression.
2862 - Don't compose Hangul jamo into Unicode syllables.
2869 - Build fixes.
2870 - Fix time-consuming sanitize with malicious fonts.
2871 - Implement hb_buffer_deserialize_glyphs() for both json and text.
2872 - Do not ignore Hangul filler characters.
2873 - Indic fixes:
2874 * Fix Malayalam pre-base reordering interaction with post-forms.
2883 - Build fixes.
2884 - Ngapi HarfBuzz Hackfest in London (February 2013):
2886 * New Win8-style Myanmar shaper,
2887 * New South-East Asian shaper for Tai Tham, Cham, and New Tai Lue,
2890 * Fix 'Phags-Pa U+A872 shaping,
2891 * Fix partial disabling of default-on features,
2893 - Fix possible crasher with broken fonts with overlapping tables.
2894 - Removed generated files from git again. So, one needs ragel to
2898 - hb_shape() and related APIs now abort if buffer direction is
2904 - hb_blob_create_sub_blob() always creates sub-blob with
2912 - Build fixes for Sun compiler.
2913 - Minor bug fix.
2919 - Build fixes.
2920 - Fix GPOS mark attachment with null Anchor offsets.
2921 - [Indic] Fix old-spec reordering of viramas if sequence ends in one.
2922 - Fix multi-threaded shaper data creation crash.
2923 - Add atomic ops for Solaris.
2926 - Rename hb_buffer_clear() to hb_buffer_clear_contents().
2933 - [Indic] Fixed rendering of Malayalam dot-reph
2934 - Updated OT language tags.
2935 - Updated graphite2 backend.
2936 - Improved hb_ot_layout_get_size_params() logic.
2937 - Improve hb-shape/hb-view help output.
2938 - Fixed hb-set.h implementation to not crash.
2939 - Fixed various issues with hb_ot_layout_collect_lookups().
2940 - Various build fixes.
2957 - Fix build on Windows.
2958 - Minor improvements.
2966 - Actually implement hb_shape_plan_get_shaper ().
2967 - Make UCDB data tables const.
2968 - Lots of internal refactoring in OTLayout tables.
2969 - Flesh out hb_ot_layout_lookup_collect_glyphs().
2982 HarfBuzz "All-You-Can-Eat-Sushi" (aka Vancouver) Hackfest and follow-on fixes.
2984 - Fix Arabic contextual joining using pre-context text.
2985 - Fix Sinhala "split matra" mess.
2986 - Fix Khmer shaping with broken fonts.
2987 - Implement Thai "PUA" shaping for old fonts.
2988 - Do NOT route Kharoshthi script through the Indic shaper.
2989 - Disable fallback positioning for Indic and Thai shapers.
2990 - Misc fixes.
2993 hb-shape / hb-view changes:
2995 - Add --text-before and --text-after
2996 - Add --bot / --eot / --preserve-default-ignorables
2997 - hb-shape --output-format=json
3054 - Remove "mask" parameter from hb_buffer_add().
3055 - Rename hb_ot_layout_would_substitute_lookup() and hb_ot_layout_substitute_closure_lookup().
3056 - hb-set.h API const correction.
3057 - Renamed hb_set_min/max() to hb_set_get_min/max().
3058 - Rename hb_ot_layout_feature_get_lookup_indexes() to hb_ot_layout_feature_get_lookups().
3059 - Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties().
3067 - Don't clear pre-context text if no new context is provided.
3068 - Fix ReverseChainingSubstLookup, which was totally borked.
3069 - Adjust output format of hb-shape a bit.
3070 - Include config.h.in in-tree. Makes it easier for alternate build systems.
3071 - Fix hb_buffer_set_length(buffer, 0) invalid memory allocation.
3072 - Use ICU LayoutEngine's C API instead of C++. Avoids much headache.
3073 - Drop glyphs for all of Unicode Default_Ignorable characters.
3074 - Misc build fixes.
3077 - Enable 'dlig' and 'mset' features in Arabic shaper.
3078 - Implement 'Phags-pa shaping, improve Mongolian.
3081 - Decompose Sinhala split matras the way old HarfBuzz / Pango did.
3082 - Initial support for Consonant Medials.
3083 - Start adding new-style Myanmar shaping.
3084 - Make reph and 'pref' logic introspect the font.
3085 - Route Meetei-Mayek through the Indic shaper.
3086 - Don't apply 'liga' in Indic shaper.
3087 - Improve Malayalam pre-base reordering Ra interaction with Chillus.
3095 - Synthetic-GSUB Arabic fallback shaping.
3097 - Misc Indic improvements.
3099 - Add build system support for pthread.
3101 - Imported UCDN for in-tree Unicode callbacks implementation.
3103 - Context-aware Arabic joining.
3105 - Misc other fixes.
3107 - New API:
3109 hb_feature_to/from-string()
3118 - Indic improvements with old-spec Malayalam.
3120 - Better fallback glyph positioning, specially with Thai / Lao marks.
3122 - Implement dotted-circle insertion.
3124 - Better Arabic fallback shaping / ligation.
3126 - Added ICU LayoutEngine backend for testing. Call it by the 'icu_le' name.
3128 - Misc fixes.
3136 - Fixed fallback mark positioning for left-to-right text.
3138 - Improve mark positioning for the remaining combining classes.
3140 - Unbreak Thai and fallback Arabic shaping.
3142 - Port Arabic shaper to shape-plan caching.
3144 - Use new ICU normalizer functions.
3152 - Over a thousand commits! This is the first major release of HarfBuzz.
3154 - HarfBuzz is feature-complete now! It should be in par, or better, than
3157 - New Indic shaper, supporting main Indic scripts, Sinhala, and Khmer.
3159 - Improved Arabic shaper, with fallback Arabic shaping, supporting Arabic,
3162 - New Thai / Lao shaper.
3164 - Tibetan / Hangul support in the generic shaper.
3166 - Synthetic GDEF support for fonts without a GDEF table.
3168 - Fallback mark positioning for fonts without a GPOS table.
3170 - Unicode normalization shaping heuristic during glyph mapping.
3172 - New experimental Graphite2 backend.
3174 - New Uniscribe backend (primarily for testing).
3176 - New CoreText backend (primarily for testing).
3178 - Major optimization and speedup.
3180 - Test suites and testing infrastructure (work in progress).
3182 - Greatly improved hb-view cmdline tool.
3184 - hb-shape cmdline tool.
3186 - Unicode 6.1 support.
3192 - Users are expected to only include main header files now (ie. hb.h,
3193 hb-glib.h, hb-ft.h, ...)
3195 - All struct tag names had their initial underscore removed.
3198 - All set_user_data() functions now take a "replace" boolean parameter.
3200 - hb_buffer_create() takes zero arguments now.
3201 Use hb_buffer_pre_allocate() to pre-allocate.
3203 - hb_buffer_add_utf*() now accept -1 for length parameters,
3204 meaning "nul-terminated".
3206 - hb_direction_t enum values changed.
3208 - All *_from_string() APIs now take a length parameter to allow for
3209 non-nul-terminated strings. A -1 length means "nul-terminated".
3211 - Typedef for hb_language_t changed.
3213 - hb_get_table_func_t renamed to hb_reference_table_func_t.
3215 - hb_ot_layout_table_choose_script()
3217 - Various renames in hb-unicode.h.
3221 - hb_buffer_guess_properties()
3224 - hb_buffer_normalize_glyphs()
3226 - hb_tag_from_string()
3228 - hb-coretext.h
3230 - hb-uniscribe.h
3232 - hb_face_reference_blob()
3233 - hb_face_[sg]et_index()
3234 - hb_face_set_upem()
3236 - hb_font_get_glyph_name_func_t
3245 - hb_font_set_funcs_data()
3247 - hb_ft_font_set_funcs()
3248 - hb_ft_font_get_face()
3250 - hb-gobject.h (work in progress)
3252 - hb_ot_shape_glyphs_closure()
3255 - hb-set.h
3257 - hb_shape_full()
3259 - hb_unicode_combining_class_t
3261 - hb_unicode_compose_func_t
3273 - hb_ft_get_font_funcs()
3275 - hb_ot_layout_substitute_start()
3288 - Vertical text support in GPOS
3289 - Almost all API entries have unit tests now, under test/
3290 - All thread-safety issues are fixed
3506 o The following higher-leve API added for convenience: