Manually cherry-pick fix for normalize_path()#2751
Conversation
normalize_path()
|
Hi @SomeTiramisu , Please, add the test to exclude the possible regression for that. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2751 +/- ##
==========================================
+ Coverage 74.18% 74.32% +0.14%
==========================================
Files 71 71
Lines 40491 40709 +218
==========================================
+ Hits 30037 30258 +221
+ Misses 10454 10451 -3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
I'm new with the rust toolchain, so far I haven't found what obscure test triggered the What I can do is testing the improved accuracy of Curiously, |
|
It's whether I'm on the right track or completely lost. I fear going too deep for what looks like an edge case optimisation (allow preprocessor cache when include path contain a No more warning is a thing, but does this really improve performance? I still have to benchmark this (I will use mpc like in #2510 (comment)) |
21ea439 to
854292f
Compare
|
This now looks like a two in one PR. On one hand Benchmark on over optimistic scenario (full clean rebuild, same code) with sccache, on a meson project (GIMP in my case) shows improvement on build time (because preprocessor cache is now working) at the cost of a bit slower caching. |
d831f14 to
2e6ff15
Compare
`normalize_path()` is a no-op when path start with `..`, canonicalize. This should help to resolve `../whatever.h` include to an absolute path. is this really what we want here?
|
Rebase on main, CI is happy, I'm now confident enought to make it a genuine PR I still find the tests a bit too verbose for my taste |
As discussed in #2510 (comment)
normalize_path()was copied from Cargo before commitrust-lang/cargo@7a6eaf9
which had an issue with ..s in processor output path (at least). This prevent
meson, or any exotic build environment to cache preprocessed objects.
This PR manually cherry pick the fix, but lack any associated test (yet)