Skip to content

Provide glue code for HarfBuzz #2514

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
hsivonen opened this issue Sep 5, 2022 · 5 comments · Fixed by #3240
Closed

Provide glue code for HarfBuzz #2514

hsivonen opened this issue Sep 5, 2022 · 5 comments · Fixed by #3240
Assignees
Labels
C-collator Component: Collation, normalization C-unicode Component: Props, sets, tries S-small Size: One afternoon (small bug fix or enhancement) U-gecko User: Gecko

Comments

@hsivonen
Copy link
Member

hsivonen commented Sep 5, 2022

icu_normalizer::properties has API surface whose purpose is to cater to HarfBuzz. Additionally, icu_properties has functionality required by HarfBuzz.

hb-unicode.h defines the callbacks that need implementations. These are C-linkage function pointers, so makes sense to provide these functions manually in Rust without C++ and Diplomat as a layer in between.

Since any app using ICU4X with HarfBuzz will need the same thing, we should provide manually-written Rust code that takes an ICU4X data provider and sets up the callbacks defined in hb-unicode.h with routing to the appropriate ICU4X facilities using that data provider.

@hsivonen hsivonen added S-small Size: One afternoon (small bug fix or enhancement) C-collator Component: Collation, normalization C-unicode Component: Props, sets, tries labels Sep 5, 2022
@hsivonen
Copy link
Member Author

hsivonen commented Sep 5, 2022

If I'm reading the sources right, the semantics of the decomposition callback appear to be that singleton decomposition reports the second character of a decomposition as U+0000.

@sffc
Copy link
Member

sffc commented Oct 17, 2022

@hsivonen Can you set an assignee (or "help wanted") and a milestone (or "backlog")?

@hsivonen hsivonen self-assigned this Oct 18, 2022
@hsivonen hsivonen added this to the ICU4X 1.1 milestone Oct 18, 2022
@hsivonen
Copy link
Member Author

I intend to write a draft for this and then move this to help wanted for end-to-end polish.

@hsivonen
Copy link
Member Author

Previously, I didn't read the HarfBuzz API carefully enough. This is blocked on #2833 and #2832, both of which are thematically close to what ICU4X already has but, upon closer look, not exactly.

hsivonen added a commit to hsivonen/icu4x that referenced this issue Nov 22, 2022
hsivonen added a commit to hsivonen/icu4x that referenced this issue Nov 22, 2022
@hsivonen hsivonen removed their assignment Nov 22, 2022
@hsivonen
Copy link
Member Author

I intend to write a draft for this and then move this to help wanted for end-to-end polish.

Unassigning from self to signal that it's OK for others to continue after #2839.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-collator Component: Collation, normalization C-unicode Component: Props, sets, tries S-small Size: One afternoon (small bug fix or enhancement) U-gecko User: Gecko
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants