Closed eddyb closed 1 year ago
Hi! I genuinely do not remember why I have chosen unicode-general-category
. It was 3 years ago.
And yes, rustybuzz
has an absurd amount of low-hanging fruits. I simply have no time working on it and it's semi-abandoned.
As long as tests are passing - I'm fine with it.
Sadly, there are no alternatives (yes, I know about swash) and I hope someone else would keep maintaining it. Which is unlikely, because the domain is so absurdly complex and niche.
Which leads me to believe the use of an yeslogic crate wasn't intentional but rather accidental/incidental (as it looked like the only option, and it didn't have a prefix that would make it seem out of place).
No, I knew it was by yeslogic.
Maybe at that time, early 2020, there were no stand-alone Unicode general category crates. And I did not wanted to blow up the binary size by including the whole Unicode table data.
The current rustybuzz
status is: thanks God it finally works... It took 8 months to port, so I was fine with any solutions to get it to the finish line.
Btw, filed https://github.com/unicode-rs/unicode-properties/issues/1 about the names of the enums
It's now published, sorry for the delay
It's now published, sorry for the delay
@Manishearth no worries, I lost track of this as well, thanks for publishing!
@RazrFalcon should be good to go (and the PR is trivial now, thanks to the renaming).
Thanks!
What prompted me to look at
unicode-general-category
was these build timings:While
ttf-parser
preventsrustybuzz
from starting its compilation earlier anyway, it still seemed weird that only one of severalunicode-*
deps was so much more involved than the others. (And within a large build, it is possible that such a serial dependency would have an impact)The description of
unicode-general-category
seemed to suggest it was used for performance reasons, and I spent some time optimizing away some low-hanging fruit (it wastes over half a second just on not using buffered IO, but also it generates Rust source code instead of binary blobs, and there's a few more things like that).But then I noticed something: the
yeslogic
org has a bunch ofunicode-*
crates, but most of them are prefixed withyeslogic-
oncrates.io
(since they're alternatives to e.g.unicode-rs
crates).And there's no any other obvious choice of a crate for querying "general category", not on
crates.io
. Which leads me to believe the use of anyeslogic
crate wasn't intentional but rather accidental/incidental (as it looked like the only option, and it didn't have a prefix that would make it seem out of place).There are two blockers for this PR:
the replacement I use (unicode-rs
'unicode-properties
crate) is not published oncrates.io
yet, for some reason (cc @crlf0710 @manishearth)I had to replace all the variant uses, because of the different naming convention at playifyeslogic
is not responsible for its convention (and instead it comes from e.g.ucd-generate
), it may be worth havingunicode-properties
use that one too, requiring no changes torustybuzz
at use sites