-
Notifications
You must be signed in to change notification settings - Fork 179
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
Move CanonicalCombiningClass type out of icu_properties #5121
Comments
Hmm, optimizing for crates compiling in parallel isn't something I think we've looked at closely. |
...and this is harder than it first appears, since we support named access of property data for the benefit of regular expression engines, and canonical combining class is one of the properties for which access by name is supported. I think it's bad to have the data in two places, but having the data only normalizer and having named access in properties would break build parallelism due to an opposite dependency. This implies putting named access in a separate crate. The current build parallelism issue could be addressed by moving the type to a third crate while keeping two instances of the data. Kinda weird to have a one-off crate just for CanonicalCombiningClass. Potentially excessive to have a separate crate for all the property types. |
(Not sure if the meeting minutes on this issue ended up on GitHub somewhere.) It occurred to me that the approach discussed in the meeting of making the default features of To not make it too easy to break build parallelism, it seems like a typed getter for canonical combining class should be a non-default feature (which would go against the current ICU4X design approach of not having to enable features for getting API surface). |
June 27
Consensus:
|
I'm fine making it be a non-default feature. |
Me too |
Though in that case we need to make the change now |
@robertbastian Do you agree with the above conclusion? |
Note: When doing this, we should test the effect on the special cases in the Pernosco debugger. If this breaks them, we should make the feature gate for |
sgtm |
The data for CanonicalCombiningClass is available both via icu_properties and via icu_normalizer. To have the same type in both cases,
icu_normalizer
depends onicu_properties
. This prevents the two from being compiled in parallel. See servo/rust-url#939We should break the dependency. The obvious thing to do is to move the type to
icu_normalizer
and not make the data available viaicu_properties
at all. If we really wanted to have two ways of providing the data, the type should go into a third crate, but there isn't a candidate destination that wouldn't be weird.The text was updated successfully, but these errors were encountered: