Log

Author Commit Date CI Message
Behdad Esfahbod 5e816ef7 2025-09-15T18:43:22 [iup] Reuse vectors
Behdad Esfahbod a64ab6c6 2025-09-15T17:47:07 [iup] Reduce hb_set_t allocs
Behdad Esfahbod 5928a3c7 2025-09-15T17:17:15 [iup] Reduce vector allocs
Behdad Esfahbod df18518f 2025-09-15T17:14:31 [iup] Don't sqrt
Behdad Esfahbod db86e546 2025-09-15T16:41:31 [instancer/gvar] Combine peak_coords mallocs into one chunk
Behdad Esfahbod 26cc7355 2025-09-15T15:49:36 [vector] Remove a comment
safocl 9d004544 2025-09-16T00:16:30 Fix invalid reinterpret_cast (#5558) * Fix invalid reinterpret_cast reinterpret_cast from non-atomic object to atomic object is not valid. https://eel.is/c++draft/atomics.types.generic#general-3 >[Note 2: The representation of an atomic specialization >need not have the same size and alignment requirement as >its corresponding argument type. — end note] https://eel.is/c++draft/basic.compound#5 >5 Two objects a and b are pointer-interconvertible if >(5.1) they are the same object, or >(5.2) one is a union object and the other is a non-static >data member of that object ([class.union]), or >(5.3) one is a standard-layout class object and the other >is the first non-static data member of that object or any >base class subobject of that object ([class.mem]), or >(5.4) there exists an object c such that a and c are >pointer-interconvertible, and c and b are pointer-interconvertible. >If two objects are pointer-interconvertible, then they have >the same address, and it is possible to obtain a pointer >to one from a pointer to the other via a reinterpret_cast >([expr.reinterpret.cast]). objects of types `int` and `std::atomic<int>` are not pointer-interconvertible (an object of type `int` is not first non-static data member of `std::atomic<int>`) https://eel.is/c++draft/basic.lval#11 >11 An object of dynamic type T-obj is type-accessible through >a glvalue of type T-ref if T-ref is similar ([conv.qual]) to: >(11.1) T-obj, >(11.2) a type that is the signed or unsigned type corresponding >to T-obj, or >(11.3) a char, unsigned char, or std::byte type. >If a program attempts to access ([defns.access]) the stored >value of an object through a glvalue through which it is not >type-accessible, the behavior is undefined The original code resulted in undefined behavior. * revert code formatting * fix const qualifier in type for atomic operation. * implement copy and move ctors (assignment-operators) and swap functions. * swap-functions replaced as frendly members, common header includes returned. * add HB_ prefix to defined macro. * some formatting.
safocl 43284d1f 2025-09-15T20:11:36 fix clang-format repeated flags (#5559) * fix clang-format repeated flags some flags were listed twice with opposite meanings * Change AfterStruct formatting option to true --------- Co-authored-by: Behdad Esfahbod <behdad@behdad.org>
Behdad Esfahbod b33f6fd2 2025-09-15T01:11:30 Merge pull request #5555 from harfbuzz/instancer-gvar-micro-opts Instancer gvar micro opts
Behdad Esfahbod e310f811 2025-09-15T00:58:07 [instancer/gvar] Speed up hash lookup-set
Behdad Esfahbod 7a57c3c1 2025-09-15T00:52:50 [instancer/gvar] Simplify sorting
Behdad Esfahbod b51ea436 2025-09-15T00:44:49 [gvar] Micro-opt instancing
Behdad Esfahbod 08fddebe 2025-09-14T20:43:31 Merge pull request #5554 from harfbuzz/lazy-interms Lazy interms
Behdad Esfahbod 4d590199 2025-09-14T18:04:51 [instancer/tuplevar] Allocate intermediates array on demand
Behdad Esfahbod 35212ba3 2025-09-14T17:46:13 [gvar] Change a storage type No functional change.
Behdad Esfahbod 4974f5eb 2025-09-14T16:39:29 Merge pull request #5553 from harfbuzz/instancer-tuplevars-hashmap-opt Instancer tuplevars hashmap opt
Behdad Esfahbod 20457df5 2025-09-14T16:05:29 [map] Tune for small maps
Behdad Esfahbod 323901f8 2025-09-14T13:47:32 [instancer/tuplevars] Reduce work by combining two loops
Behdad Esfahbod eb6de664 2025-09-14T13:13:22 [instancer/tuplevars] Reduce work
Behdad Esfahbod ebcc20d0 2025-09-14T00:03:51 Merge pull request #5552 from harfbuzz/speedup-map-copy Speedup map copy
Behdad Esfahbod 90ea408e 2025-09-13T18:18:08 [map] Speed up copying of trivially-assignable types
Behdad Esfahbod fd282dcf 2025-09-13T17:56:34 [map] Speed up operator= for trivial item types
Behdad Esfahbod 78e5920d 2025-09-13T17:43:30 Merge pull request #5551 from harfbuzz/instancer-micro-opts Instancer micro opts
Behdad Esfahbod 1f936e23 2025-09-13T16:58:45 [instancer] Try to move instead of copy some tuples
Behdad Esfahbod 2319d763 2025-09-13T16:21:34 [TupleValues] Micro-optimize encoding Also, a check for 32bit values in the word-encoding function was missing. Ouch.
Behdad Esfahbod f2c4ab45 2025-09-13T16:14:55 [instancer/varstore] Micro-optimize
Behdad Esfahbod 051d97b1 2025-09-13T16:09:53 [RELEASING] Update
Behdad Esfahbod b97369bb 2025-09-13T14:10:20 Merge pull request #5549 from harfbuzz/instancer-varstore-optimize-compromise [instancer/varstore] Only optimize instanced varstore incrementally
Behdad Esfahbod cf6c9d8a 2025-09-13T13:49:56 [instancer/varstore] Put back sort again In testing with GoogleSansFlex, this produces slightly smaller result.
Behdad Esfahbod d6343fa3 2025-09-13T13:38:47 [instancer/varstore] Update test expectations
Behdad Esfahbod c7e46ab2 2025-09-13T12:54:18 [instancer/varstore] Avoid copies in loops
Behdad Esfahbod 7a430de3 2025-09-13T00:08:10 Add -Wpessimizing-move warning Part of https://github.com/harfbuzz/harfbuzz/issues/5550
Behdad Esfahbod a4a50892 2025-09-12T23:41:40 [instancer/varstore] Speed up encoding merging Don't recalculate chars from all row data.
Behdad Esfahbod f0a1289a 2025-09-12T19:25:57 [instancer/varstore] Massage optimizer a bit
Behdad Esfahbod a878dca0 2025-09-12T19:19:07 [instancer/varstore] Remove sorting from the optimizer Just work with incoming order.
Behdad Esfahbod e16be515 2025-09-12T17:42:57 [instancer/varstore] Only optimize instanced varstore incrementally See comments. This basically wipes of the varstore optimization costs out of the profiles, which saves eg. 25% total time in GoogleSansFlex instantiation, with practically no file size downside.
Behdad Esfahbod a4087e7f 2025-09-12T15:48:26 [instancer/varlib] Minor non-functional change
Behdad Esfahbod d8c1bce2 2025-09-12T14:39:38 [instancer/varstore] Mark a function HOT
Garret Rieger aa58b43d 2025-09-12T14:24:41 [subset] Introduce HB_SUBSET_FLAGS_RETAIN_NUM_GLYPHS. (#5547) Used in conjunction with retain gids, when set the num glyphs from the input font will be preserved. Empty glyphs will be inserted as necessary to maintain the num glyphs value. Put under experimental for now.
Behdad Esfahbod bf8929fb 2025-09-12T13:32:38 11.5.0
Behdad Esfahbod 74c31861 2025-09-12T13:31:29 [rust] Update to HarfRust 0.3.0 (#5548)
Behdad Esfahbod 3965e9a6 2025-09-12T13:12:05 [instancer/varstore] Change sort key (#5540) See https://github.com/harfbuzz/harfbuzz/pull/5540
Behdad Esfahbod c9480db9 2025-09-12T12:22:17 [instancer/varstore] Add a heuristic to speed up optimization
Garret Rieger 6dadd846 2025-09-12T18:37:30 Re-disable fonttools comparison for update_def_wght.tests
David Corbett dce73766 2025-09-12T13:56:01 [Unicode 17] Update the script direction list
Behdad Esfahbod 0f1dab0f 2025-09-12T11:43:21 [instancer/varstore] More gain_from_merging optimization (#5543) * [instancer/varstore] More gain_from_merging optimization * [tests] Re-enable a test that was disabled until an issue fixed See comment.
Behdad Esfahbod e4957b0c 2025-09-12T10:57:49 [varLib/instancer] Simplify gain encoding
Behdad Esfahbod 20d7ef5f 2025-09-12T10:45:08 [instancer/varstore] Change gain encoding gain can be high in theory.
Behdad Esfahbod 3200a075 2025-09-12T04:07:45 Merge pull request #5542 from harfbuzz/instancer-varstore-gain-compare-opt [instancer/varstore] Optimize gain comparisons
Behdad Esfahbod ca9a8aba 2025-09-12T03:50:46 Revert "[instancer/varstore] Micro-optimize" This reverts commit 7484eb5807d6127bea6b888a7d8fdad1b73a8c0b.
Behdad Esfahbod f12be45c 2025-09-12T03:42:49 [instancer/varstore] Optimize gain comparisons
Behdad Esfahbod 7484eb58 2025-09-12T03:16:59 [instancer/varstore] Micro-optimize
Behdad Esfahbod 92ec75f8 2025-09-12T03:13:25 [instancer/varstore] Micro-optimize
Behdad Esfahbod 14e7d5b2 2025-09-12T03:04:59 [instancer/varstore] Speed up gain_from_merging 10% speedup instancing GoogleSansFlex.
Behdad Esfahbod 006ec160 2025-09-12T02:52:29 [instancer/varstore] Minor refactor in anticipation of next change
Behdad Esfahbod c6a15cd6 2025-09-12T01:20:50 Merge pull request #5539 from harfbuzz/instancer-optimize-more [instancer] optimize more
Behdad Esfahbod aba798dd 2025-09-12T00:52:40 [instancer/varstore] Use heapify() instead of inserts()
Behdad Esfahbod 12c46237 2025-09-12T00:05:37 Revert "[instancer/varstore] Change chars_t storage scheme" This reverts commit aaeea5729b97813eb71b1d809212534a77436ca2.
Behdad Esfahbod aaeea572 2025-09-11T23:52:44 [instancer/varstore] Change chars_t storage scheme Slows down. Gonna revert. Apparently builtin popcount is not fast unless built for archs that support it.
Behdad Esfahbod 3dc5e3d6 2025-09-11T23:27:51 [instancer/varstore] Consolidate chars_t logic
Behdad Esfahbod fe6c9a0f 2025-09-11T23:23:41 [instancer/varstore] Fix a logic bug combined_chars was moved already. Also, see comment.
Behdad Esfahbod 9d971169 2025-09-11T23:10:50 [instancer/varstore] Add a chars_t type
Behdad Esfahbod 1a6c6d78 2025-09-11T21:59:41 [instancer] Micro-optimize a couple of hot comparisons
Behdad Esfahbod c938e8ce 2025-09-11T21:57:14 [instancer] Micro-optimize by using bit-set directly
Behdad Esfahbod 266e1c24 2025-09-11T20:12:39 [instancer] Short-circuit some work in gain_from_merging
Behdad Esfahbod a34f8b31 2025-09-11T19:10:05 [instancer] Use bitset instead of vector for VarStore optimizer columns ~30% faster on GoogleSansFlex.
Behdad Esfahbod b2dcb8f1 2025-09-11T18:51:51 Merge pull request #5538 from harfbuzz/subset-robotoflex-opts [instancer] Optimize mallocs
Behdad Esfahbod 2e86070e 2025-09-11T18:15:19 [instancer] Don't clear a couple of resize allocations Not needed.
Behdad Esfahbod 01fd17d6 2025-09-11T17:05:03 [instancer] Reduce mallocs in create_from_tuple_var_data
Behdad Esfahbod 23e40cd7 2025-09-11T16:53:44 [instancer] Reduce mallocs in gain_from_merging
Behdad Esfahbod 3225bd73 2025-09-11T16:44:24 [instancer] Minor default construction simplify
Behdad Esfahbod 3df6e510 2025-09-11T16:33:10 [instancer] Reduce mallocs in merge_tuple_variations
Behdad Esfahbod 6d82b40a 2025-09-11T16:09:13 [instancer] Remove unnecessary vector fini
Behdad Esfahbod 87c36992 2025-09-11T15:42:59 [instancer] Reduce mallocs in calc_inferred_deltas
Behdad Esfahbod 740cbf1c 2025-09-11T15:30:30 [vector] Add malloc debug facility
Behdad Esfahbod 67bddf15 2025-09-11T15:16:30 [instancer] Reduce mallocs in change_tuple_var_axis_limit
Behdad Esfahbod 17aa37ab 2025-09-11T15:13:51 [instancer] Reduce mallocs in rebase-tent
David Corbett 0fbbf749 2025-09-10T21:11:44 [ot-tags] Update IANA subtags to 2025-08-25 (#5537)
Behdad Esfahbod ce75945c 2025-09-10T10:19:04 Merge pull request #5534 from harfbuzz/unicode-17 Update to Unicode 17.0.0
David Corbett bc2c60e4 2025-09-10T11:43:01 [Unicode 17] Add tests
David Corbett 13c8ffa0 2025-09-10T11:35:54 [Unicode 17] Send the new scripts to USE
David Corbett f59d532b 2025-09-10T11:34:07 [Unicode 17] Update the USE table
David Corbett 5b6409f0 2025-09-10T11:22:02 [Unicode 17] Update the vowel constraint table
David Corbett 7c611a2b 2025-09-10T11:21:36 [Unicode 17] Update the Indic table
David Corbett e189b34e 2025-09-10T11:19:14 [Unicode 17] Update the emoji table & cluster test
David Corbett e0e0a757 2025-09-10T11:18:07 [Unicode 17] Update the Arabic joining script list
David Corbett 5b72f304 2025-09-10T11:17:25 [Unicode 17] Update the Arabic table
David Corbett 147db69b 2025-09-10T11:15:30 [Unicode 17] Update the UCD table
David Corbett d08a72dd 2025-09-10T11:12:37 [Unicode 17] Add new `hb_script_t` values
dependabot[bot] d59f62ac 2025-09-08T10:29:50 Bump fonttools from 4.59.1 to 4.59.2 in /.ci Bumps [fonttools](https://github.com/fonttools/fonttools) from 4.59.1 to 4.59.2. - [Release notes](https://github.com/fonttools/fonttools/releases) - [Changelog](https://github.com/fonttools/fonttools/blob/main/NEWS.rst) - [Commits](https://github.com/fonttools/fonttools/compare/4.59.1...4.59.2) --- updated-dependencies: - dependency-name: fonttools dependency-version: 4.59.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] 5c7ae655 2025-09-08T10:26:44 Bump github/codeql-action from 3.29.11 to 3.30.1 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.29.11 to 3.30.1. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/3c3833e0f8c1c83d449a7478aa59c036a9165498...f1f6e5f6af878fb37288ce1c627459e94dbf7d01) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 3.30.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] fb7af519 2025-09-08T10:25:13 Bump actions/setup-python from 5.6.0 to 6.0.0 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.6.0 to 6.0.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/a26af69be951a213d495a4c3e4e4022e16d87065...e797f83bcb11b83ae66e0230d6156d7c80228e7c) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Behdad Esfahbod dd291f48 2025-09-07T23:46:27 Short-circuit ASCII more (#5528)
Khaled Hosny 49ac0df6 2025-09-06T15:35:38 [meson] Add graphite2 wrap file
Khaled Hosny da17d4fd 2025-09-06T15:34:46 [meson] Remove "allow_fallback: true" from icu dependency We don’t do this for any other dependency.
Khaled Hosny 09204699 2025-09-06T15:27:40 [meson] Simplify freetype dependency handling Drop support for CMake-built FreeType which complicates things and makes freetype dependency behave differently (it does not respect --wrap-mode, for instance). We don’t want to care about CMake-build dependencies, if they behave differently that is on them.
Benjamin Gilbert 01d4fff1 2025-09-03T17:33:31 [meson] Add ICU wrap
Benjamin Gilbert 8a92b8f2 2025-08-31T11:38:54 [meson] Drop CMake-built ICU support, fixing fallback to wrap >= 77.1-3 The WrapDB ICU wrap switched from the transitional "icu-uc = icuuc_dep" syntax to the recommended "dependency_names = icu-uc", which apparently broke our fallback path because we passed a components: argument to dependency() for CMake (mesonbuild/meson#14979). Per review guidance, drop support for CMake-built ICU.
Behdad Esfahbod d94851e5 2025-09-03T11:52:51 [rust] Use inherited codegen-units=1 in debugoptimized build It makes significant (30% in Nastaliq benchmark) difference.
Qunxin Liu cb4548d3 2025-09-02T14:58:00 [subset] always generate AdvMap (#5524)