Port xetex_layout to Rust - #1138
Conversation
|
Ooh, very exciting! |
3e2484f to
456507d
Compare
|
I am so baffled by the linking errors on everything - they aren't happening locally, which makes them pretty hard to diagnose. |
|
Yep, I saw |
|
The icu/unicode stuff is probably because the library does symbol versioning, which you only disable normally on say system installs. I probably, somehow, am locally getting some system installed version pulled in which is providing the symbols. This is... kind of annoying, but I can fix it. |
|
Found a solution but it will require updates to |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #1138 +/- ##
==========================================
+ Coverage 28.59% 28.84% +0.24%
==========================================
Files 272 273 +1
Lines 203632 203491 -141
Branches 203632 203491 -141
==========================================
+ Hits 58236 58701 +465
- Misses 64049 64159 +110
+ Partials 81347 80631 -716
☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
I should look into whether there's an existing |
|
There's https://github.com/servo/core-foundation-rs ... the crates don't seem as popular as I'd have thought, but a Servo project is probably going to be trustworthy? |
2fa361f to
cb24a3f
Compare
|
@pkgw What's your take on dropping support for MacOS < 10.7, OSX Lion? It's more than 10 years old, and some quick googling says the number of mac users on it should be basically negligible. It would allow some minor simplification. |
|
Related note - the core-foundation-rs crate and similar from servo target 10.7 and above, so it would allow using them. |
|
@CraftSpider Dropping support for the older macOS seems fine to me. It generally becomes intractable to support the older OSes without paying for your own custom CI setup, anyway. It looks like conda-forge is currently targeting >=10.9, and I'd generally lean towards copying them. |
f5ad6d0 to
ee6af21
Compare
|
This is a big change - if desired, I can split it out into the primary change to Rust, then the individual library wrappers as follow-ups to the big change, as I made sure to get tests passing between each major change. |
f8dacb6 to
d8a9393
Compare
c5cb2ff to
8e12e55
Compare
|
Obviously I'm biased, but I'm tempted to pull in my crate |
ec9e1d4 to
5d3570a
Compare
dd08855 to
5582878
Compare
2535bba to
27a044b
Compare
|
Did a last pass over the code to clean up privacy, and improve readability/quality of a couple minor spots. This should now be ready to merge, soon as ToA approves it. |
|
Alright, after just about a year and a half, I'm going to merge this. It passes ToA and all tests, contains fairly idiomatic Rust in a lot of places, and generally should be a notable improvement on the C/C++ code it replaces in terms of both maintainability and leak safety (I'm pretty sure this patch fixes 1-2 leaks already). |
Been poking this on and off for a while, finally reached the point where it's... not done, but should pass most tests on Windows and hopefully Linux. Mac will require a bit more love before it works. Opening to see what CI has to say so far.
Merge Readiness: