Skip to content

Releases: harfbuzz/harfbuzz

8.4.0

29 Mar 14:33
8.4.0
Compare
Choose a tag to compare

What's Changed

  • Add /bigobj to MSVC compiler flags in meson build, to fix building hb-subset.cc
  • Specify minimum versions of various dependencies in meson and autotools build.
  • When subsetting, place variation store at the end of โ€œGDEFโ€ table to fix shaping issues with some versions of Adobe InDesign.
  • Various build fixes.
  • New API:
    +hb_buffer_set_random_state()
    +hb_buffer_get_random_state()

New Contributors

Full Changelog: 8.3.1...8.4.0

8.3.1

17 Mar 05:58
8.3.1
Compare
Choose a tag to compare

What's Changed

  • hb_blob_create_from_file_or_fail() on Windows will now try to interpret the file name as UTF-8 first, and as system code page if it is not valid UTF-8.
  • Fix hb_style_get_value() in fonts with โ€œSTATโ€ table.
  • Properly handle negative offsets in CFF table.
  • Update IANA Language Subtag Registry to 2024-03-07.
  • Subsetter now supports subsetting โ€œBASEโ€ table.
  • Subsetter will update โ€œhheaโ€ font metrics in sync with โ€œOS/2โ€ ones.
  • โ€œ--variationsโ€ option of โ€œhb-subsetโ€ now supports leaving out values that should be unchanged, e.g. โ€œwght=:500:โ€ will change the default and keep max and min unchanged. It also supports โ€œ*=dropโ€ to to pin all axes to default location.
  • Fix hb_ot_math_get_glyph_kerning() to match updated โ€œMATHโ€ table spec.
  • Support legacy MacRoman encoding in โ€œcmapโ€ table.
  • Various build fixes.
  • Various subsetting and instancing fixes.

New Contributors

Full Changelog: 8.3.0...8.3.1

8.3.0

11 Nov 14:10
8.3.0
Compare
Choose a tag to compare

What's Changed

  • Improve memory barrier to fix potential segfaults.

  • Various build fixes.

  • Various subsetting and instancing fixes.

  • Rename โ€œhb-subsetโ€ option โ€œ--instanceโ€ to โ€œ--variationsโ€ to match the other
    tools. Old option is kept as an alias.

  • New API:
    HB_AAT_LAYOUT_FEATURE_TYPE_CURSIVE_CONNECTION

  • Deprecated API:
    HB_AAT_LAYOUT_FEATURE_TYPE_CURISVE_CONNECTION

New Contributors

Full Changelog: 8.2.2...8.3.0

8.2.2

17 Oct 22:20
8.2.2
Compare
Choose a tag to compare

What's Changed

  • Fix regression from 8.1.0 in shaping fonts with duplicate feature tags.
  • Fix regression from 8.2.0 in parsing CSS-style feature strings.
  • Variable fonts instanciation now handles more tables.
  • Various CMake build improvements.
  • various fixes to build without errors with gcc 4.9.2.

New Contributors

Full Changelog: 8.2.1...8.2.2

8.2.1

18 Sep 18:20
8.2.1
Compare
Choose a tag to compare

What's Changed

Unicode 15.1 support.

Full Changelog: 8.2.0...8.2.1

8.2.0

08 Sep 19:05
8.2.0
Compare
Choose a tag to compare

What's Changed

  • Various build and fuzzing fixes

  • Improvements to COLRv1 painting.

  • New API:
    +hb_paint_color_glyph_func_t
    +hb_paint_funcs_set_color_glyph_func
    +hb_paint_color_glyph

New Contributors

Full Changelog: 8.1.1...8.2.0

8.1.1

02 Aug 20:49
8.1.1
Compare
Choose a tag to compare
  • Fix shaping of contextual rules at the end of string, introduced in 8.1.0
  • Fix stack-overflow in repacker with malicious fonts.
  • 30% speed up loading Noto Duployan font.

Full Changelog: 8.1.0...8.1.1

8.1.0

31 Jul 22:01
8.1.0
Compare
Choose a tag to compare

What's Changed

  • Fix long-standing build issue with the AIX compiler and older Apple clang.

  • Revert optimization that could cause timeout during subsetting with malicious fonts.

  • More optimization work:

    • 45% speed up in shaping Noto Duployan font.
    • 10% speed up in subsetting Noto Duployan font.
    • Another 8% speed up in shaping Gulzar.
    • 5% speed up in loading Roboto.
  • New API:
    +hb_ot_layout_collect_features_map()

New Contributors

Full Changelog: 8.0.1...8.1.0

8.0.1

12 Jul 05:28
8.0.1
Compare
Choose a tag to compare

What's Changed

  • Build fix on 32-bit ARM.

  • More speed optimizations:

    • 60% speed up in retain-gid (used for IFT) subsetting of SourceHanSans-VF.
    • 16% speed up in retain-gid (used for IFT) subsetting of NotoSansCJKkr.
    • 38% speed up in subsetting (beyond-64k) mega-merged Noto.

Full Changelog: 8.0.0...8.0.1

8.0.0

09 Jul 00:21
8.0.0
Compare
Choose a tag to compare

What's Changed

  • New, experimental, WebAssembly (WASM) shaper, that provides greater flexibility over OpenType/AAT/Graphite shaping, using WebAssembly embedded inside the font file. Currently WASM shaper is disabled by default and needs
    to be enabled at build time. For details, see:

    https://github.com/harfbuzz/harfbuzz/blob/main/docs/wasm-shaper.md

    For example fonts making use of the WASM shaper, see:

    https://github.com/harfbuzz/harfbuzz-wasm-examples

  • Improvements to Experimental features introduced in earlier releases:

  • Many big speed optimizations:

    • Up to 89% speedup loading variable fonts for shaping.
    • Up to 88% speedup in small subsets of large (eg. CJK) fonts (both TTF and OTF), essential for Incremental Font Transfer (IFT).
    • Over 50% speedup in loading Roboto font for shaping.
    • Up to 40% speed up in loading (sanitizing) complex fonts.
    • 30% speed up in shaping Gulzar font.
    • Over 25% speedup in glyph loading Roboto font.
    • 10% speed up loading glyph shapes in VarComposite Hangul font.
    • hb-hashmap optimizations & hashing improvements.
  • New macro HB_ALWAYS_INLINE. HarfBuzz now inlines functions more aggressively, which results in some speedup at the expense of bigger code size. To disable this feature define the macro to just inline.

  • New API:
    +HB_CODEPOINT_INVALID
    +hb_ot_layout_get_baseline2()
    +hb_ot_layout_get_baseline_with_fallback2()
    +hb_ot_layout_get_font_extents()
    +hb_ot_layout_get_font_extents2()
    +hb_subset_input_set_axis_range()

New Contributors

Full Changelog: 7.3.0...8.0.0