michael-jabbour-sonarsource wrote:

Hi @tristanlabelle and thanks for your response,

> 1. Code pervasively access files through canonicalized paths rather than 
> using canonicalized paths only for identity comparisons. The two usages are 
> often conflated and can't be teased apart easily.

I understand that there are possibly many cases where retrieving the canonical 
path is not strictly needed, yet the code does it anyway. However, changing the 
way canonical path for everyone feels a bit drastic to me, as it can also break 
proper code that uses the canonical path for identity comparisons (especially 
with the current implementation limitations I listed earlier in mind). Could 
you elaborate more about the impact of this problem? Does its severity justify 
such a drastic change?

> 2. Hitting the Windows MAX_PATH limitation is a showstopper (broken builds or 
> tests)

I also understand that without this change the `MAX_PATH` limitation can cause 
problems running the tests on certain environments. However, as I mentioned 
earlier, this change breaks the development environments for other environments 
(see [here](https://reviews.llvm.org/D154130#4647550)).

Furthermore, the change doesn't only fix the tests, but also alters the 
behavior in production. [The following 
comment](https://reviews.llvm.org/D154130#4515403) on phabricator caught my 
attention:

> Update clang path canonicalization to avoid resolving substitute drives (ie 
> resolving to a path under a different root). This requires much less change 
> to tests.

Maybe there is actually another way that relies on changing tests only? Do you 
happen to remember the context here? :smile:

I would also appreciate any other opinions on this.

https://github.com/llvm/llvm-project/pull/139739
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to