src


Log

Author Commit Date CI Message
Behdad Esfahbod 5b04b40d 2025-09-16T16:52:53 [instancer/tuplevars] Allocate compiled_deltas from alloc pool
Behdad Esfahbod ea9b7de4 2025-09-16T16:45:02 [instancer/tuplevars] Allocate compiled_tuple_headers from alloc pool
Behdad Esfahbod bdac0aec 2025-09-16T16:42:32 [vector] Make shrink() useful in un-owned vectors
Behdad Esfahbod c2f21215 2025-09-16T16:29:23 [vector] Simplify allocate_from_pool / set_storage
Behdad Esfahbod fb0ef230 2025-09-16T11:16:30 Revert "[tuplevars] Allocate from pool" This reverts commit 94d78de954ab22f3717cc399920670f877616567. Slowed things down.
Behdad Esfahbod 94d78de9 2025-09-16T11:13:19 [tuplevars] Allocate from pool
Behdad Esfahbod f7e2d9a0 2025-09-16T11:10:49 [alloc-pool] Tweak
Behdad Esfahbod f5fdf426 2025-09-16T02:28:29 [tuplevar] Use pool for duplicating
Behdad Esfahbod f9cd59ae 2025-09-16T01:45:36 [tuplevar] More use of pool
Behdad Esfahbod 12ce710f 2025-09-16T01:44:47 [tuplevar] Use alloc-pool instead of custom pool
Behdad Esfahbod 43e017f8 2025-09-16T01:31:21 [tupledelta] Micro optimize
Behdad Esfahbod ebdeb2e3 2025-09-16T01:09:46 [tuplevalues] Speed up encoding
Behdad Esfahbod 755ed109 2025-09-16T00:40:28 Add hb-alloc-pool and use in gvar instancer
Behdad Esfahbod d6b08019 2025-09-15T23:56:25 Rename hb-pool to hb-free-pool
Behdad Esfahbod 82370913 2025-09-15T20:16:52 [vector] Simplify resize()
Behdad Esfahbod c56ef9ed 2025-09-15T20:10:54 [instancer] Reuse more allocations These allocs are scratched. Don't free them, so we reuse.
Behdad Esfahbod 8e3e8c66 2025-09-15T19:49:11 [iup] Reuse more allocations
Behdad Esfahbod bac2a67c 2025-09-15T19:30:46 Merge pull request #5563 from harfbuzz/instancer-gvar-consolidate-mallocs Instancer gvar consolidate mallocs
Behdad Esfahbod 82ca73a2 2025-09-15T19:12:40 [iup] Reuse more vector allocs
Behdad Esfahbod e42714cf 2025-09-15T19:05:38 [iup] Reuse bit-set allocs
Behdad Esfahbod 54ac33cc 2025-09-15T19:00:34 [iup] Reuse more mallocs
Behdad Esfahbod 045bd691 2025-09-15T18:56:55 [iup] Use bit-set instead of set
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
Garret Rieger 54ab8f0d 2025-09-15T18:20:59 [repacker] make repacker object ids stable. Prior to this change the object id for a vertex in the repacker graph is it's position in the topological ordering. As a result after each sorting the object ids change. This decouples the topological sorting from the object id assignments. A separate ordering list is retained. This simplifies handling around object ids which no longer needs to account for them shifting, and improves performance by eliminating the step of reassigned link object ids after each sort.
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.
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 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 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 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 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 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 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
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 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 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 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)
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
Behdad Esfahbod dd291f48 2025-09-07T23:46:27 Short-circuit ASCII more (#5528)
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.