<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>I agree that modules that can always be built, should be. Such modules <br>
should have no guarding #ifdefs. I think this is the set of modules that <br>
your proposal is targeting, but please correct me if I am wrong. FWIW, <br>
this design stems from an even more general/fundamental rule of thumb: <br>
Do not add unnecessary #ifdefs.<br></blockquote><div><br></div><div>I agree. We could also work on better isolation, by restricting #ifdef-guarded areas</div><div>to specific delegate classes, and then using c++ features (e.g. if constexpr, eventually) to</div><div>disable the callsites.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
However, there is a precondition: Any always-built optional feature with <br>
a potentially significant performance impact or a controversial side <br>
effect should be disabled by default (via squid.conf). Satisfying this <br>
precondition will require code changes.<br></blockquote><div><br></div><div>Yes, I agree.</div><div><br></div></div>-- <br><div dir="ltr" class="gmail_signature">    Francesco</div></div>