Merged
Conversation
Micro benchmark shows a 20x speed-up; binary size also decrease from 18KB to 12KB
Micro benchmark shows a 2x speed-up; binary size is roughly the same
…able Micro benchmark some speed-up, with binary size reduction: around 8 * 32 KB. to 15KB
Micro benchmark shows a 2x speed-up and binary size reduction.
Micro benchmark shows around 4x speed-up and 30% binary size reduction.
Micro benchmark shows around 5x speed-up and 3x binary size reduction.
Micro benchmark shows around 7x speed-up and 2x binary size reduction.
Micro benchmark shows around 27x speed-up (!) and almost 2x binary size reduction.
Micro benchmark shows a 20x speed-up; binary size also decrease from 11KB to 2KB
Micro benchmark shows arouns 1.5x speed-up and binary size reduction.
Closed
whereswaldon
approved these changes
Feb 25, 2026
Member
whereswaldon
left a comment
There was a problem hiding this comment.
My only concern is the commented benchmarks, and it's minor. Looks like a hefty batch of improvements in both binary size and performance. Thanks very much for putting this together!
Contributor
Author
|
Merging since there is no API change. |
3ace
pushed a commit
to unidoc/typesetting
that referenced
this pull request
Apr 2, 2026
* [unicode] use smarter storage for unicode general category. Micro benchmark shows a 20x speed-up; binary size also decrease from 18KB to 12KB * more compact name * remove unused file * minor fix in generated tables * [unicode] use smarter storage for unicode mirroring characters Micro benchmark shows a 2x speed-up; binary size is roughly the same * move script tests into package language * [unicode] use smarter storage for unicode composition/decomposition table Micro benchmark some speed-up, with binary size reduction: around 8 * 32 KB. to 15KB * enforce deterministic order * [unicode] use smarter storage for unicode emojis table Micro benchmark shows a 2x speed-up and binary size reduction. * [harfbuzz/unicode] use more compact storage for USE categories * [font] simplify pua remap generation * remove unused code * remove unused file * [unicode] use smarter storage for unicode Indic Conjunct Break table Micro benchmark shows around 4x speed-up and 30% binary size reduction. * [unicode] use smarter storage for unicode Grapheme Break table Micro benchmark shows around 5x speed-up and 3x binary size reduction. * upgrade to Unicode 17 * [unicode] use smarter storage for unicode Word Break table Micro benchmark shows around 7x speed-up and 2x binary size reduction. * [unicode] use smarter storage for unicode Line Break table Micro benchmark shows around 27x speed-up (!) and almost 2x binary size reduction. * [unicode] be more coherent with names * [segmenter] optimize comparison with flag unions * [segmenter] add benchmark * [segmenter] more caching for speed up * [segmenter] optimize by returning early instead of always applying ALL the rules * remove tmp benchmark * [harfbuzz] simplify code * [unicode] use smarter storage for unicode combining category Micro benchmark shows a 20x speed-up; binary size also decrease from 11KB to 2KB * [unicode] use smarter storage for unicode East Asian Width table Micro benchmark shows arouns 1.5x speed-up and binary size reduction.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Supersede #227