<div dir="ltr">Hi Alexander,<div><br></div><div>Thank you for your feedback<br><div><br></div><div>> Can you configure please HTTPS for the buildbot? :) I know that's not urgent for now but... you know, browsers "don't like" unsecure conections :)</div><div>Yes, we are working on it.</div><div><br></div><div>> Do you plan to extend set of C/C++ projects for continuous analysis? I think it can help catch earlier more errors. But I'm not sure how many build power you have.</div><div>Actually, we are not against that, but we are already at the brink of our budget in Azure. Perhaps we could get rid of protobuf analysis (that is the longest) so we could add other valuable C++ projects instead.</div><div>Currently we rent an 8 cores machine with 64Gb of memory (Standard_E8s_v3).</div><div><br></div><div>> If it's not a secret - can you somewhere publish more details about your Jenkins configuration for continuous CSA testing? Why I am asking - I have some free hardware And I thought that it can be used for such stuff. Even for development it would be helpful</div><div><br></div><div>Yes. Here it is: <a href="https://github.com/Ericsson/clang-jenkins">https://github.com/Ericsson/clang-jenkins</a></div><div>We have two dependencies for the build: 1) <a href="https://github.com/Ericsson/CodeChecker">CodeChecker</a> 2) <a href="https://github.com/Xazax-hun/csa-testbench">csa_testbanch</a>. They are pre-installed into the directory ctu_pipeline_aux, i.e. the job does not clone/configure/install them.</div><div>The<a href="https://github.com/Ericsson/clang-jenkins/blob/master/jenkins_home/ctu_pipeline_ctu-clang-master-monorepo.jenkins.groovy"> pipeline script</a> is just copied into the jenkins config of the pipeline job.</div></div><div><br></div><div>Gabor</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Nov 19, 2019 at 5:03 AM Alexander Zaitsev <<a href="mailto:zamazan4ik@tut.by">zamazan4ik@tut.by</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>Great news! Thank you a lot for your work. I have some
questions/suggestions:</p>
<ul>
<li>Can you configure please HTTPS for the buildbot? :) I know
that's not urgent for now but... you know, browsers "don't like"
unsecure conections :)</li>
<li>Do you plan to extend set of C/C++ projects for continuous
analysis? I think it can help catch earlier more errors. But I'm
not sure how many build power you have.</li>
<li>If it's not a secret - can you somewhere publish more details
about your Jenkins configuration for continuous CSA testing? Why
I am asking - I have some free hardware And I thought that it
can be used for such stuff. Even for development it would be
helpful</li>
</ul>
<p>Thank you.<br>
</p>
<p>18.11.2019 20:17, Gábor Márton via cfe-dev пишет:<br>
</p>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black">Dear
Clang Community,</span></p>
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black"><br>
</span></p>
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black">TLDR; </span><span style="font-family:inherit;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit;color:black;font-size:12pt">I'd
like to encourage you</span><span style="font-family:inherit;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit;color:black;font-size:12pt"> to
experiment with CTU static analysis because it has
evolved a lot this year! Usage <a href="https://clang.llvm.org/docs/analyzer/user-docs/CrossTranslationUnit.html" target="_blank">documentation</a> is </span><span style="font-family:inherit;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit;color:black;font-size:12pt">available
online.</span></p>
</div>
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black"> </span></p>
</div>
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black">This
year, we have landed several </span><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">ASTImporter
patches that made it possible to analyze even C++11/14
projects with </span><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">reasonable
stability. I can confidently assure you that the
upstream master of </span><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">llvm/llvm-project
is as stable as our downstream fork. </span><span style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;margin:0px;padding:0px;border:0px;font-stretch:inherit;font-size:12pt;line-height:inherit;vertical-align:baseline;color:black">We've
made enormous efforts to properly implement the error
handling of ASTImporter and this way we could
dramatically improve the stability of CTU. We do have a
<a href="https://github.com/Ericsson/clang/projects/2" target="_blank">few more patches</a> that we
still want to land in the future, but they are not error
handling related. </span><span style="font-family:inherit;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit;color:black;font-size:12pt">From
Clang version 10, </span><span style="font-family:inherit;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit;color:black;font-size:12pt">we
no longer plan to maintain our CTU downstream fork.</span></p>
</div>
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="font-family:inherit;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit;color:black;font-size:12pt"><br>
</span></p>
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="font-family:inherit;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit;color:black;font-size:12pt"></span></p>
</div>
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;margin:0px;padding:0px;border:0px;font-stretch:inherit;font-size:12pt;line-height:inherit;vertical-align:baseline;color:black">We
have set up a <a href="http://codechecker-buildbot.eastus.cloudapp.azure.com:8080/job/ctu_pipeline_clang-master-monorepo/" target="_blank">publicly available Jenkins
build server</a> that continuously analyzes the </span><span style="font-family:inherit;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit;color:black;font-size:12pt">following
C and C++ projects:</span><br>
</p>
</div>
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black">-
Tmux (C)</span></p>
</div>
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black">-
Curl (C)</span></p>
</div>
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black">-
Redis (C)</span></p>
</div>
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black">-
Xerces (C++14)</span></p>
</div>
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black">-
Bitcoin (C++11)</span></p>
</div>
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black">-
Protobuf (C++11/C++14)</span></p>
</div>
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black"><a href="http://codechecker-buildbot.eastus.cloudapp.azure.com:8080/job/ctu_pipeline_clang-master-monorepo/CTU_20results_20on_20open_20projects_20_28C_29/" target="_blank">CTU analysis results are
compared to non-CTU results</a>, both for C projects
and </span><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">C++
projects. CTU always results in more findings, and the
false-positive/</span><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">true-positive
ratio remains roughly the same [1]. We are monitoring
the analysis </span><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">job,
and if an assertion/crash happens then we are going to
get in touch with </span><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">the
author of the commit that plausibly caused the error. We
also have a </span><a href="https://reviews.llvm.org/D61848" style="font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit" target="_blank">buildbot patch</a><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">
in Phabricator which is ought to analyse only one simple
C </span><span style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;margin:0px;padding:0px;border:0px;font-stretch:inherit;font-size:12pt;line-height:inherit;vertical-align:baseline;color:black">project
(Tmux). We decided to install Jenkins because of
ownership and </span><span style="font-family:inherit;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit;color:black;font-size:12pt">flexibility.
The buildbot code is pretty convoluted and review and
communication are very slow. The buildbot also uses
CodeChecker as a dependency, changes to its workflow
requires changes in the buildbot configuration as well.</span></p>
</div>
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black"><br>
</span></p>
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black">Notes: </span></p>
</div>
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black">Please
note that our primary target for CTU is Linux, and we
encourage </span><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">everybody
to use </span><a href="https://github.com/Ericsson/codechecker" style="font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit" target="_blank">CodeChecker</a><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">
for CTU (scan-build is no longer supported </span><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit"><b>by
CTU developers</b></span><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">).
Projects that use templates heavily </span><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">may
expect an increase in analysis time. Also note that CTU
can be very memory </span><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">consuming,
e.g. in case of the analysis run on LLVM code we've seen
10GB of resident </span><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">memory
usage for one process. Thus, it may be useful to set a
maximum limit for </span><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">the
loaded ASTUnits (e.g. -analyzer-config
ctu-import-threshold=8, with CodeChecker you need to
edit an </span><a href="https://github.com/Ericsson/codechecker/blob/master/docs/analyzer/checker_and_analyzer_configuration.md" style="font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit" target="_blank">saargs file</a><span style="color:black;font-family:inherit;font-size:12pt;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit;font-weight:inherit">).</span></p>
</div>
<div style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:15px;line-height:inherit;vertical-align:baseline;color:rgb(32,31,30)">
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black"><br>
</span></p>
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black">[1] 2017
EuroLLVM Developers’ Meeting: G. Horvath “Cross
Translational Unit Analysis in Clang ...”</span></p>
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black"><br>
</span></p>
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black">Cheers,</span></p>
<p style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:12pt;line-height:inherit;font-family:inherit;vertical-align:baseline;color:black">Gabor
Marton</span></p>
</div>
</div>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
cfe-dev mailing list
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a>
</pre>
</blockquote>
<pre cols="72"></pre>
</div>
</blockquote></div>