Skip to content
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

Migrate remaining data structs to fully borrowed #856

Closed
Tracked by #873
sffc opened this issue Jul 13, 2021 · 12 comments
Closed
Tracked by #873

Migrate remaining data structs to fully borrowed #856

sffc opened this issue Jul 13, 2021 · 12 comments
Assignees
Labels
C-data-infra Component: provider, datagen, fallback, adapters S-epic Size: Major project (create smaller child issues) T-core Type: Required functionality tracking This issue tracks a ticket in another project

Comments

@sffc
Copy link
Member

sffc commented Jul 13, 2021

Some data structs are capable of zero-copy deserialization. We should migrate all data structs to be this way. This means removing #[yoke(cloning_zcf)] where possible (from #847).

Separate issues to track each component:

Before closing this issue, the code should be audited to ensure there are no remaining instances of #[yoke(cloning_zcf)], and then this meta-issue can be closed.

@sffc sffc added T-core Type: Required functionality C-data-infra Component: provider, datagen, fallback, adapters S-small Size: One afternoon (small bug fix or enhancement) labels Jul 13, 2021
@Manishearth
Copy link
Member

For some structs this will be dependent on #844

@sffc sffc added this to the ICU4X 0.4 milestone Jul 15, 2021
@sffc sffc added help wanted Issue needs an assignee good first issue Good for newcomers labels Jul 15, 2021
@sffc sffc removed the good first issue Good for newcomers label Aug 12, 2021
@sffc sffc self-assigned this Aug 12, 2021
@sffc sffc removed the help wanted Issue needs an assignee label Aug 12, 2021
@sffc sffc added the tracking This issue tracks a ticket in another project label Sep 1, 2021
@sffc sffc added S-epic Size: Major project (create smaller child issues) and removed S-small Size: One afternoon (small bug fix or enhancement) labels Sep 1, 2021
@sffc
Copy link
Member Author

sffc commented Nov 2, 2021

ICU4X 0.4 is shipped. This got done in some crates but not others. Punting to 0.5.

@robertbastian
Copy link
Member

In addition to the issues above there are also #[yoke(cloning_zcf)]s on UnicodeSet (fixing in #1604) and in experimental/segmenter_lstm. Should we file an issue for the latter?

@Manishearth
Copy link
Member

We can also just add it as a list entry there without filing an issue, either works

@sffc
Copy link
Member Author

sffc commented Feb 12, 2022

Segmenter LSTM data is tracked by #905. That issue is assigned to Ting-yu and scheduled for Sprint C. I added it to the list in the OP.

@robertbastian
Copy link
Member

Should be #1426 actually

@Manishearth
Copy link
Member

#1676

@Manishearth
Copy link
Member

Manishearth commented Mar 8, 2022

Here's the current list of non-zc keys:

    "datetime/skeletons@1",
    "list/and@1",
    "list/or@1",
    "list/unit@1",
    "locale_canonicalizer/aliases@1",
    "locale_canonicalizer/likelysubtags@1",

The first one is rather tricky, I plan to file an issue about it (#1678). The next three are experimental, the last two are #1034 and need LocaleStr (#831)

@Manishearth
Copy link
Member

list_formatter: #1680

@sffc sffc modified the milestones: ICU4X 0.6, ICU4X 1.0 (Features) May 25, 2022
@sffc
Copy link
Member Author

sffc commented Jun 8, 2022

All data structs are now zero-copy except for skeletons. LSTM is not yet plugged into the data provider. I'm going to close this issue as completed, since the objective is complete, but ongoing work can be tracked in:

@sffc sffc closed this as completed Jun 8, 2022
@robertbastian
Copy link
Member

Actually #1678 is the leaf, I think we can close #876 as well, we're not tracking anything there either.

@sffc
Copy link
Member Author

sffc commented Jun 15, 2022

#876 should stay open until the skeletons / components bag is actually zero-copy (no ZeroFrom hacks).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-data-infra Component: provider, datagen, fallback, adapters S-epic Size: Major project (create smaller child issues) T-core Type: Required functionality tracking This issue tracks a ticket in another project
Projects
None yet
Development

No branches or pull requests

3 participants