Log

Author Commit Date CI Message
Behdad Esfahbod 0cd98ebb 2025-02-25T18:53:04 [vector] Add a missing fast-path
Behdad Esfahbod 41626401 2025-02-25T18:48:34 [vector] Add faster extend() for array types
Behdad Esfahbod aaf5c06d 2025-02-25T18:45:38 [vector] Rewrite copy_array() to extend vector
Behdad Esfahbod 40c77a1c 2025-02-25T18:37:20 Remove a redundant method
Behdad Esfahbod 81339256 2025-02-25T17:59:58 [gvar] Rename two variables
Behdad Esfahbod 87830b62 2025-02-25T17:59:24 [gvar] Remove unused method
Behdad Esfahbod 7614320a 2025-02-25T16:59:37 [glyf] Reduce malloc pressure Benchmark 15% faster for draw.
Behdad Esfahbod 882d3288 2025-02-25T16:34:55 [glyf] Port to decycler for composite glyphs 5% speed up drawing Roboto-Regular.ttf.
Behdad Esfahbod ffee85d6 2025-02-25T16:20:42 [VARC] Minor simplify pointer math
Behdad Esfahbod dcb80ecb 2025-02-25T15:58:37 [gvar] Use a method
Behdad Esfahbod 23937e8c 2025-02-25T15:48:23 [gvar] Combine two loops
Behdad Esfahbod 9b451f20 2025-02-25T15:16:09 [gvar] Minor remove a variable
Behdad Esfahbod 7222c1e5 2025-02-25T15:13:20 [path-builder] Add a constexpr
Behdad Esfahbod e450552d 2025-02-25T14:54:37 [coord-setter] Fix memory access in case of malloc failure Fixes https://oss-fuzz.com/testcase-detail/5383702943432704
Behdad Esfahbod b12612f5 2025-02-25T13:47:06 Fix compiler warnings
Behdad Esfahbod 8280ef7d 2025-02-25T12:18:43 Merge pull request #5089 from harfbuzz/vector-explicit [vector] Disallow accidental creation of transient vectors
Garret Rieger ea1434b8 2025-02-25T19:00:29 Split iup glyf partial instance tests into a separate set which ignores due to IUP rounding differences fonttools.
Behdad Esfahbod aaecaa4c 2025-02-24T22:03:00 [vector] Disallow accidental creation of transient vectors Fix sites that were doing this under our feet. This lowers precision of some instancing operations from double to float, which modifies a few results by rounding error. TODO: Update tests.
Behdad Esfahbod f71faf5f 2025-02-25T11:35:21 [VARC] Fix buffer scratch borrowing
Behdad Esfahbod e76b689f 2025-02-25T11:23:48 [VARC] Fix resource leak
Behdad Esfahbod 827be1b2 2025-02-25T10:23:10 Revert "[MultiVarStore] Micro-optimize" This reverts commit 13d98f1ded00d025b85816ceee056da6f121d555. This broke bots. I don't fully understand why tests pass locally.
Behdad Esfahbod 13d98f1d 2025-02-25T01:40:19 [MultiVarStore] Micro-optimize
Behdad Esfahbod 9a0cf8d6 2025-02-25T00:19:25 [test/subset/cff-japanese] Shrink test Was taking too long.
Behdad Esfahbod 084fb3ab 2025-02-25T00:16:27 [test/subset/cmap] Shrink test Was taking more than the rest of the test suite combined.
Behdad Esfahbod 51d8ef48 2025-02-25T00:09:28 [gvar] Cache shared_indices as well
Behdad Esfahbod 47124e63 2025-02-24T23:25:02 [VARC] Avoid creating cache if there's no VARC table
Behdad Esfahbod d5d199fb 2025-02-24T23:20:12 [VARC] Reduce malloc pressure By caching one hb_glyf_scratch_t on the VARC accelerator.
Behdad Esfahbod 2c5ab14a 2025-02-24T22:50:42 [coord-setter] Increase static array size
Behdad Esfahbod a058a1f2 2025-02-24T21:53:17 [TupleValues] Unroll a loop
Behdad Esfahbod 13ee8edf 2025-02-24T21:17:58 [vector] Speed up extend()
Behdad Esfahbod 46485124 2025-02-24T21:04:34 [vector] Simplify a method
Behdad Esfahbod 6fe55030 2025-02-24T20:57:30 [TupleValues] Don't overshadow end() method
Behdad Esfahbod 97a5c52a 2025-02-24T20:53:19 [VARC/MultiVarStore] Reduce malloc pressure more
Behdad Esfahbod 6938ee03 2025-02-24T20:40:26 [VARC] More nuanced caching
Behdad Esfahbod 74bb7c52 2025-02-24T20:21:38 Fix a compiler warning
Behdad Esfahbod 081fcbdf 2025-02-24T20:15:24 [VARC] Minor move variable closer to use
Behdad Esfahbod 0a1b26b8 2025-02-24T20:07:59 [coord-setter] Reduce malloc pressure ~15% speedup benchmark-font draw of varc-hanzi.ttf
Behdad Esfahbod 76c3beaf 2025-02-24T19:50:51 [VARC] Reduce malloc overhead
Behdad Esfahbod 2099db37 2025-02-24T15:13:08 [TupleValues] Optimize decoding
Behdad Esfahbod 043980a6 2025-02-24T10:58:03 [TupleValues] Micro-optimize
dependabot[bot] 474c6e43 2025-02-24T10:59:13 Bump github/codeql-action from 3.28.9 to 3.28.10 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.9 to 3.28.10. - [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/9e8d0789d4a0fa9ceb6b1738f7e269594bdd67f0...b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] 22e5469c 2025-02-24T10:59:16 Bump ossf/scorecard-action from 2.4.0 to 2.4.1 Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.4.0 to 2.4.1. - [Release notes](https://github.com/ossf/scorecard-action/releases) - [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md) - [Commits](https://github.com/ossf/scorecard-action/compare/62b2cac7ed8198b15735ed49ab1e5cf35480ba46...f49aabe0b5af0936a0987cfb85d86b75731b0186) --- updated-dependencies: - dependency-name: ossf/scorecard-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] 5f23b976 2025-02-24T10:59:19 Bump actions/upload-artifact from 4.6.0 to 4.6.1 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.0 to 4.6.1. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08...4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Behdad Esfahbod 1ba90720 2025-02-23T21:34:54 [VARC] Speed up MultiVarData::get_delta
Khaled Hosny e41dc20c 2025-02-21T10:20:11 [directwrite] Fix -Wcast-align warning https://github.com/harfbuzz/harfbuzz/pull/5079#issuecomment-2673805310
Khaled Hosny 694ffa87 2025-02-20T23:56:59 10.3.0
Khaled Hosny 03cf1565 2025-02-20T21:56:56 [directwrite] Rename font_get_font to font_get_dw_font https://github.com/harfbuzz/harfbuzz/pull/5079#pullrequestreview-2627407692
Khaled Hosny f012442f 2025-02-20T21:36:02 Annotate printf functions with gnu_printf format under MingW Fixes https://github.com/harfbuzz/harfbuzz/issues/5080
Khaled Hosny a8fd2971 2025-02-13T17:16:20 [directwrite] Add hb_directwrite_font_create()/font_get_font() Uses hb_directwrite_face_create() under the hood, but copies variations from directwrite to hb-font.
Behdad Esfahbod 7cf63429 2025-02-20T12:05:17 [ot-layout] Use a variable Doesn't make a diff in the generated code I believe, but is nice.
Khaled Hosny e28bcf58 2025-02-20T20:58:15 Typo [ci skip]
Behdad Esfahbod a2ea5d28 2025-02-18T21:43:39 [benchmark-font] Report draw times in ms, not us
Behdad Esfahbod 2032da01 2025-02-18T20:54:56 [ot-font] Centralize painting an outline glyph
Behdad Esfahbod 01f02f55 2025-02-18T20:28:48 [COLR] Optimize NoVariation codepath
Behdad Esfahbod 4c263ecd 2025-02-18T20:08:19 Merge pull request #5074 from harfbuzz/tortoise-hare [decycler] Implement an efficient graph cycle detector
Behdad Esfahbod f26d9514 2025-02-18T20:07:25 [COLR] Fix HB_LEAN build
Behdad Esfahbod bedc8d93 2025-02-16T12:30:18 [decycler] Document algorithm
Behdad Esfahbod 2bdf9850 2025-02-16T12:14:42 [decycler] Add alternative way of using it to tests
Behdad Esfahbod 3cb49717 2025-02-16T10:54:11 [decycler] Add some documentation
Behdad Esfahbod 0667ceae 2025-02-16T10:37:21 [VARC] Reduce stack use
Behdad Esfahbod 4335e49a 2025-02-16T10:33:49 [VARC] Port to hb-decycler-t 5% faster on varc-hanzi test case.
Behdad Esfahbod a0f83e78 2025-02-16T09:55:12 [decycler] Reduce stack use 48bytes -> 40bytes per node.
Behdad Esfahbod d5faabe7 2025-02-16T09:47:58 [decycler] Add test
Behdad Esfahbod 0aa400b1 2025-02-15T23:19:44 [decycler] Implement an efficient graph cycle detector This is an algorithm I came up with, based on the Floyd's Tortoise-Hare constant-memory linear-time linked-list cycle-detection algorithm. https://en.wikipedia.org/wiki/Cycle_detection#Floyd's_tortoise_and_hare It is linear-time and malloc-free. It *eventually* detects cycles, not immediately. The main different with Floyd's algorithm is that this algorithm detects cycles when one is traversing down a graph, not just a linked list. Our existing cycle-detection algorithms use a set-of-integers, either hb_set_t, or more efficient in this case, hb_map_t. Those include at least one malloc, and as such show up on profiles. Port hb-ot-font COLRv1 to use the decycler instead of previous hb_map_t usage for cycle detection. benchmark-font paint_glyph on NotoColorEmoji-Regular.ttf: Before: 8ms; After: 5.5ms. No cycle detection: 5.5ms. FT COLRv1 API is so slow (174ms) it's not worth porting to this. Other graphs (VARC, etc) to be ported. Test and documentation to be added.
Behdad Esfahbod 0bb72eee 2025-02-18T00:44:29 [decycler] Turn off compiler warning ../src/OT/Var/VARC/../../../hb-decycler.hh:108:25: warning: storing the address of local variable ‘node’ in ‘*&c_15(D)->layers_decycler.hb_decycler_t::tortoise’ [-Wdangling-pointer=]
Behdad Esfahbod c84e9b95 2025-02-17T15:08:03 [decycler] Change value type from unsigned to uintptr_t Since the node struct is gonna be 3*sizeof(void*) bytes anyway, change value type to use the full space available.
Behdad Esfahbod 1c18646d 2025-02-17T15:06:27 [decycler] Reduce stack use, kinda Move the bool to the decycler from the node. The value can now become a full pointer size (next commit).
Behdad Esfahbod fb0e181a 2025-02-17T14:57:20 [decycler] Reduce stack use further Down to three pointers. Exercise for the reader to prove this is optimal.
Behdad Esfahbod 646da80c 2025-02-17T14:49:06 [decycler] Reduce stack use Down from 5 pointers to 4.
Behdad Esfahbod 5aea89b5 2025-02-17T14:32:23 [decycler] Don't leave a dangling pointer around Even if it was never accessed.
Behdad Esfahbod c7fc03a3 2025-02-16T14:43:09 [ft-colr] Use hb_decycler_t
Behdad Esfahbod ed76c855 2025-02-18T20:01:36 [COLR] Optimize palette access
Behdad Esfahbod 016e78b6 2025-02-18T19:49:48 [COLR] Micro-optimize
Behdad Esfahbod e6eec3cc 2025-02-18T00:48:37 [test] Silence compiler warning
Jim-Wang b97ef6c7 2025-02-13T07:19:04 add dep
Behdad Esfahbod 215c8de3 2025-02-15T21:07:47 [ft-colr] Fix cycle-detection accounting Fixes https://github.com/harfbuzz/harfbuzz/issues/5073
Khaled Hosny ff3aaece 2025-02-10T14:25:58 [test/shape-plan] Add another test and some comments
Khaled Hosny cf336f17 2025-02-10T14:15:25 [shape-plan] Rename hb_ot_shape_plan_get_features to get_feature_tags Simplify the API by returning only feature tags. The users of this API would be interested only in feature enabled by default and whether the feature is globally or partially enabled wouldn’t be of much interest in that case. For user features, the user of the API already have full access to them.
Khaled Hosny a7d7715f 2025-02-02T23:06:11 [shape-plan] Add hb_ot_shape_plan_get_features This should get the features on a shape plan after executing it. Initially I wanted to return an array of tags, but then there can be user features that are not enabled globally, so I thought returning hb_feature_t with value and range would be better. There is a TODO since I couldn’t figure out how to get the value and range from the feature mask. But also it may be overkill and a simple boolean indicating wither it is a global feature or not would be enough. I wounder also what should happen to non-user features that are applied selectively, like init or medi, does ot make sense to indicate whether they are global or not? This is inspired by the discussion in: https://github.com/fontforge/fontforge/pull/5522#pullrequestreview-2574321449, but it might be useful to other HarfBuzz users.
Khaled Hosny bcd5aa36 2025-02-13T14:00:31 [docs/coretext] Fix hb_coretext_font_set_funcs() documentation Remove the note that fonts created with hb_coretext_font_create() have these font functions configured for them, which is not true. hb_coretext_font_create() documents this correctly.
Behdad Esfahbod d2a88fbd 2025-02-12T21:48:22 [vector] Add alloc_exact()
Khaled Hosny 94584d14 2025-02-12T13:33:57 [coretext] Use vector instead of malloc/free a C-array
Khaled Hosny 1bc87dfe 2025-02-12T13:09:02 [coretext] Handle allocation failures
Khaled Hosny 8c561733 2025-02-12T12:37:10 [test/coretext] Add a test for copying variations
Khaled Hosny c07b2233 2025-02-12T12:36:21 [coretext] Fix copying of variations when creating hb-font
Behdad Esfahbod 778acfc6 2025-02-11T23:12:23 [coretext] Don't assume that a normalized-coord 0 mins design-coords at default
Behdad Esfahbod 27a25f2d 2025-02-11T23:10:43 [coretext] Copy variations when creating hb-font https://github.com/harfbuzz/harfbuzz/issues/3159#issuecomment-2652262262
Khaled Hosny 33b31771 2025-02-12T00:18:48 [ci] Stop generating test coverage data It is failing on Linux CI after upgrading to Ubuntu 24.04, and macOS upload to codecov was also silently failing for a while now. We don’t do much with the coverage data anyway.
Khaled Hosny d46c0ca2 2025-02-11T23:55:11 [ci] Don’t use system Python on Linux We are already installing one using actions/setup-python.
Khaled Hosny 467b08ba 2025-02-11T23:41:34 [ci] Update Ubuntu 20.04 images to 24.04 GitHub actions will start failing jobs using Ubuntu 20.04 images, so switch to 24.04. Switch also on CircleCI while at it.
Behdad Esfahbod a69842a8 2025-02-12T11:23:28 [shape-plan] Minor check for invalid direction
Behdad Esfahbod e9c2d78d 2025-02-12T10:44:34 [buffer] Clean up some small mess
Behdad Esfahbod 6d95c128 2025-02-12T10:36:49 [buffer] Remove unused includes
Behdad Esfahbod 34464657 2025-02-06T12:03:18 [set] Tweak allocation Allocation 2-page sets as exact count as well. Don't do the same for the page_map.
dependabot[bot] 8f1c31c0 2025-02-10T11:00:28 Bump hendrikmuhs/ccache-action from 1.2.16 to 1.2.17 Bumps [hendrikmuhs/ccache-action](https://github.com/hendrikmuhs/ccache-action) from 1.2.16 to 1.2.17. - [Release notes](https://github.com/hendrikmuhs/ccache-action/releases) - [Commits](https://github.com/hendrikmuhs/ccache-action/compare/53911442209d5c18de8a31615e0923161e435875...a1209f81afb8c005c13b4296c32e363431bffea5) --- updated-dependencies: - dependency-name: hendrikmuhs/ccache-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] 11b71418 2025-02-10T11:00:25 Bump github/codeql-action from 3.28.8 to 3.28.9 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.8 to 3.28.9. - [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/dd746615b3b9d728a6a37ca2045b68ca76d4841a...9e8d0789d4a0fa9ceb6b1738f7e269594bdd67f0) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] 63cee529 2025-02-10T10:16:27 Bump fonttools from 4.55.8 to 4.56.0 in /.ci Bumps [fonttools](https://github.com/fonttools/fonttools) from 4.55.8 to 4.56.0. - [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.55.8...4.56.0) --- updated-dependencies: - dependency-name: fonttools dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Behdad Esfahbod 39fec7b1 2025-02-09T17:54:46 Merge pull request #5062 from harfbuzz/test-fuzzer-one-go [test/fuzzing] Run each fuzzer on all fonts in one process
Behdad Esfahbod abdd60ac 2025-02-09T17:54:07 Merge pull request #5063 from harfbuzz/disable-google-benchmark-tests [test] Exclude google-benchmark tests by default if meson "recent" an…
Behdad Esfahbod b540c37c 2025-02-09T09:47:18 Update meson.build Co-authored-by: خالد حسني (Khaled Hosny) <khaled@aliftype.com>