Update Harfbuzz implementation; upgrade to Unicode 17#225
Update Harfbuzz implementation; upgrade to Unicode 17#225benoitkugler merged 29 commits intomainfrom
Conversation
|
Wow, this is huge - any tips on how to review? |
Yes.. I'm sorry about that. I've ported all Harfbuzz changes in a go, so the diff is very large. In the future, I'll try to update more often. Anyway, you can start by the changes in |
|
Friendly ping @andydotxyz and @whereswaldon. Is there any chance you could have a look at this work ? The changeset is large but mostly internal to |
There was a problem hiding this comment.
There is no API change
I could be wrong but it looks like there are some public API changes - in the tables packages it looks like a number of exported functions were removed (GetDelta/Evaluate).
The API change you mention:
- func (f *Face) GlyphVOrigin(glyph GID) (x, y int32, found bool) {
+ func (f *Face) GlyphVOrigin(glyph GID) (x, y float32) {is a public API and not internal only. Should much of this have been in an internal package, or are they APIs useful publicly as well?
You're right. I initially thought our The situation is a bit delicate because the |
Also note that this method is not used outside ouf our module, as indicated by https://github.com/search?q=language%3Ago+GlyphVOrigin&type=code |
whereswaldon
left a comment
There was a problem hiding this comment.
Ultimately, I cannot intelligently review all of this. I have tried to review the non-generated code changes, and I see nothing that concerns me. However, the magnitude of these changes makes careful review impossible. I would really prefer to avoid PRs like this in the future.
I understand your point. Mixing Unicode changes with other Harfbuzz stuff was a bad idea. I'm sorry for that. If it is important to you, I can still try and split this PR in several smaller ones. |
|
While splitting the PR into several smaller ones would make reviewing it easier, it would still be several multi-thousand line PRs. I trust you and your tests for this section of the codebase, and I doubt that the cost/benefit ratio of splitting this PR will be worthwhile after the fact. In the future, I'd love to pick up fixes from upstream harfbuzz one-per-PR. That would make it easy to understand the intent of each fix. |
|
@andydotxyz Considering |
I guess it's fine and we can continue the discussion on #230 |
This PR ports the latest changes in the Harfbuzz C++ implementation (roughly v12.3.0).
It also bumps our Unicode version to 17, and upgrades our Unicode Line Breaking implementation (in the segmenter package).
There is no API change, expect for a change in the method
Face.GlyphVOriginwhose signature is nowGlyphVOrigin(glyph GID) (x, y float32). This method is used internally in Harfbuzz, and this change should not affect end users.