NoQ added a comment.

In D105167#2949521 <https://reviews.llvm.org/D105167#2949521>, @ASDenysPetrov 
wrote:

> Nice work! Unfortunately I'm not able to run tests on my Windows env, but 
> I've run you tests files manually. It works for me.
>
> P.S. BTW, is there any workarounds to make current tests supported on 
> Windows? I know there is //REQUIRES// instruction 
> (https://llvm.org/docs/TestingGuide.html#constraining-test-execution) but I 
> didn't find any sufficient description of it.

Yes, you can always remove the `REQUIRES:` directive. The problem with 
generally enabling these tests on Windows is that scan-build is written in Perl 
and the Perl interpreter isn't shipped with Windows by default. Nothing else in 
LLVM is written in Perl so requiring a Perl installation to run LLVM tests just 
for this single use case is counter-productive.



================
Comment at: clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp:286-287
+  // but the stable report filename is still more verbose.
+  // We should rename the option ("verbose" filename?) but it will break
+  // people's workflows.
+  if (DiagOpts.ShouldWriteStableReportFilename) {
----------------
ASDenysPetrov wrote:
> vsavchenko wrote:
> > Can we make a mirror for this option and mark the other one as deprecated?
> Nice idea. I'm in favor of a mirorring.
The new option is `-analyzer-config verbose-report-filename=true` and the old 
option is preserved and acts exactly the same; the help text says that it's 
deprecated.


================
Comment at: clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp:300
+
+  filename << StringRef(getIssueHash(D, PP)).substr(0, 6).str() << ".html";
+  llvm::sys::path::append(ResultPath, Directory, filename.str());
----------------
ASDenysPetrov wrote:
> Do you think 6 trimmed characters are enough to avoid collisions?
It's basically same as before. Previously these 6 digits were completely 
random, now they're chunks of MD5 hashes of the real thing which is probably as 
random.

That's 16.7 million variants. The probability of collision on 6 digits with 100 
warnings is around 0.0001%, with 1000 warnings it goes up to 3% ([[ 
https://en.wikipedia.org/wiki/Birthday_problem | Birthday Problem]]). Even 
though 1000 warnings are a real possibility on a huge project (eg., LLVM or 
WebKit), this is way above the point where you care about collisions.

I think there's nothing that prevents us from bumping it (at least in the 
non-verbose filename mode; in the verbose filename mode it may cause slightly 
more breakages in the case where it's close to hitting the file system's 
filename length limit). Bumping from 6 digits to 8 digits would reduce the 
collision probability on 1000 warnings to 0.0001%. I'll think about it a bit 
more :)


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D105167/new/

https://reviews.llvm.org/D105167

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to