<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>Ooops! In that case, my apologies!<br></div>
<div> </div>
<div id="sig19426269"><div class="signature">---<br></div>
<div class="signature">Best regards,<br></div>
<div class="signature"> </div>
<div class="signature">Gábor 'ShdNx' Kozár<br></div>
<div class="signature"><a href="http://gaborkozar.me">http://gaborkozar.me</a><br></div>
<div class="signature"> </div>
</div>
<div> </div>
<div> </div>
<div>On Tue, Oct 14, 2014, at 07:52, Aleksei Sidorin wrote:<br></div>
<blockquote type="cite"><div>AFAIR, my implementation has such features. If MallocChecker, for<br></div>
<div>example, calls getCheckerOption("unix.Malloc", "Optimistic", "false"),<br></div>
<div>it will get this option for "unix" package if it was not specified for<br></div>
<div>the checker itself but was specified for its package.<br></div>
<blockquote><div> </div>
<blockquote><div>On Oct 13, 2014, at 8:55 AM, Gabor Kozar <<a href="mailto:kozargabor@fastmail.fm">kozargabor@fastmail.fm</a>> wrote:<br></div>
<div> </div>
<div>However, there will be no inheritance (i.e. the setting 'unix:Optimistic' is entirely distinct from the setting ?unix.Malloc:Optimistic?).<br></div>
<div> </div>
<div>I think inheritance like that could be useful in some situations.<br></div>
</blockquote><div>The main reason is that we currently do not have a need for it and allowing inheritance requires a design for it. For example, what happens when a package adds an option? How would the checkers access it? If we were to allow dynamically loaded checkers how would they inherit it? What happens if a checker overrides a package option?<br></div>
<div> </div>
<blockquote><div>I would expect such options to be inherited, i.e. if I set 'unix:Optimistic', then I expect this to be visible everywhere in the 'unix' package. Why are disallowing this?<br></div>
<div> </div>
</blockquote><div>The package options will be visible to checkers; specifically, checkers could query the package options. For example, MallocChecker could call getOption(Optimistic, "unix") to check if the option has been set on the package.<br></div>
<div> </div>
<blockquote><div>(Sorry for the duplicate e-mail, sent the first from the wrong e-mail address.)<br></div>
<div> </div>
<div>---<br></div>
<div>Best regards,<br></div>
<div> </div>
<div>G?bor 'ShdNx' Koz?r<br></div>
<div><a href="http://gaborkozar.me">http://gaborkozar.me</a> <<a href="http://gaborkozar.me/">http://gaborkozar.me/</a>><br></div>
<div> </div>
<div> </div>
<div>On Mon, Oct 13, 2014, at 15:59, Gabor Kozar wrote:<br></div>
<blockquote><div>However, there will be no inheritance (i.e. the setting 'unix:Optimistic' is entirely distinct from the setting ?unix.Malloc:Optimistic?).<br></div>
<div> </div>
<div>I think inheritance like that could be useful in some situations. I would expect such options to be inherited, i.e. if I set 'unix:Optimistic', then I expect this to be visible everywhere in the 'unix' package. Why are you proposing to disallow this?<br></div>
<div> </div>
<div>---<br></div>
<div>Best regards,<br></div>
<div> </div>
<div>G?bor 'ShdNx' Koz?r<br></div>
<div><a href="http://gaborkozar.me">http://gaborkozar.me</a> <<a href="http://gaborkozar.me/">http://gaborkozar.me/</a>><br></div>
<div> </div>
<div> </div>
<div> </div>
<div>On Sat, Oct 11, 2014, at 01:17, Anna Zaks wrote:<br></div>
<blockquote><div>Background & Problem:<br></div>
<div> </div>
<div>Clang has support for static analyzer options though "-analyzer-config?<br></div>
<div>front-end option, which is followed by the option name and value:<br></div>
<div>-analyzer-config <Option Name>=<Value><br></div>
<div>This option is also available through scan-build.<br></div>
<div> </div>
<div>Currently, there is no way to pass command line options to specific<br></div>
<div>checkers. We work around it by creating new checker kinds (for example,<br></div>
<div>MallocPessimistic, MallocOptimistic).<br></div>
<div> </div>
<div>Proposed Solution:<br></div>
<div> </div>
<div>The proposal (partially authored and implemented by Aleksei Sidorin<br></div>
<div><a href="http://reviews.llvm.org/D3967">http://reviews.llvm.org/D3967</a> <<a href="http://reviews.llvm.org/D3967">http://reviews.llvm.org/D3967</a>>) is to extend "-analyzer-config" to support<br></div>
<div>checker-specific options as following:<br></div>
<div>-analyzer-config <Full Checker Name / Package Name>:<Option<br></div>
<div>Name>=<Value><br></div>
<div> </div>
<div>To avoid ambiguities with regular options, we should enforce the<br></div>
<div>following:<br></div>
<div>1) <Option Name> should be an identifier<br></div>
<div>2) Checker names should be identifiers.<br></div>
<div>3) Package names should be identifiers joined with '.?.<br></div>
<div>4) <Full Checker Name> has the same form as package names.<br></div>
<div> </div>
<div>Specifying options on a package will be allowed. However, there will be<br></div>
<div>no inheritance (i.e. the setting 'unix:Optimistic' is entirely distinct<br></div>
<div>from the setting ?unix.Malloc:Optimistic?). Each checker will be able to<br></div>
<div>query options of its package when needed. For this, we propose changing<br></div>
<div>the getOption API to work with package and checker names as well as<br></div>
<div>CheckerBase.<br></div>
<div> </div>
<div>Comments and suggestions are welcome!<br></div>
<div>Anna.<br></div>
<div><u>_______________________________________________</u><br></div>
<div>cfe-dev mailing list<br></div>
<div><a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a> <<a href="mailto:cfe-dev@cs.uiuc.edu">mailto:cfe-dev@cs.uiuc.edu</a>><br></div>
<div><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a> <<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a>><br></div>
</blockquote><div> </div>
<div><u>_______________________________________________</u><br></div>
<div>cfe-dev mailing list<br></div>
<div><a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a> <<a href="mailto:cfe-dev@cs.uiuc.edu">mailto:cfe-dev@cs.uiuc.edu</a>><br></div>
<div><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a> <<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a>><br></div>
</blockquote><div> </div>
<div><u>_______________________________________________</u><br></div>
<div>cfe-dev mailing list<br></div>
<div><a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br></div>
<div><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br></div>
</blockquote><div>-------------- next part --------------<br></div>
<div>An HTML attachment was scrubbed...<br></div>
<div>URL: <<a href="http://lists.cs.uiuc.edu/pipermail/cfe-dev/attachments/20141013/79064a86/attachment.html">http://lists.cs.uiuc.edu/pipermail/cfe-dev/attachments/20141013/79064a86/attachment.html</a>><br></div>
<div> </div>
<div>------------------------------<br></div>
<div> </div>
<div><u>_______________________________________________</u><br></div>
<div>cfe-dev mailing list<br></div>
<div><a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br></div>
<div><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br></div>
<div> </div>
<div> </div>
<div>End of cfe-dev Digest, Vol 88, Issue 55<br></div>
<div><b>***************************************</b><br></div>
<div> </div>
</blockquote><div> </div>
<div> </div>
<div>--<br></div>
<div>Best regards,<br></div>
<div>Aleksei Sidorin<br></div>
<div>Software Engineer,<br></div>
<div>IMSWL-IMCG, SRR, Samsung Electronics<br></div>
<div> </div>
<div><u>_______________________________________________</u><br></div>
<div>cfe-dev mailing list<br></div>
<div><a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br></div>
<div><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br></div>
</blockquote><div> </div>
</body>
</html>