Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: "Carlos E. R." Newsgroups: comp.os.linux.misc Subject: Re: For those arguing over languages... Date: Thu, 12 Feb 2026 19:52:41 +0100 Lines: 44 Message-ID: References: <10mesjc$3gnr9$1@dont-email.me> <10mij0u$rimo$1@dont-email.me> <10mkhl0$1er09$2@dont-email.me> <10ml29o$1kt9q$1@dont-email.me> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: individual.net Wa5a0ijoAanRf2PXuflwtAOdjX/Sjejt4Ch1ClKgadDfank6he Cancel-Lock: sha1:q8XfiOVlZ0L6S/saiFunPrtZfeM= sha256:TVkVLcgnVBh8+q2IHCyLhJ1Z/GAqW49nocCTWeRbSXs= User-Agent: Mozilla Thunderbird Content-Language: en-CA, es-ANY In-Reply-To: <10ml29o$1kt9q$1@dont-email.me> Xref: csiph.com comp.os.linux.misc:81989 On 2026-02-12 18:23, Rich wrote: > Carlos E. R. wrote: >> On 2026-02-12 13:38, The Natural Philosopher wrote: >>> On 11/02/2026 22:24, Carlos E. R. wrote: >>>> On 2026-02-11 19:50, Rich wrote: >>>>> c186282 wrote: >>>>>> On 2/10/26 04:09, The Natural Philosopher wrote: >>>>>>> ...more fuel on the fire... >>>>>>> >>> I think the point is that the compiler knows that isn't necessary, and >>> doesnt bother. >>> >> >> Then don't optimize. Optimization has always been somewhat problematic. >> Sometimes it introduced bugs that could not be debugged, because >> debugging altered the code, possibly removing the optimizations. > > It wasn't the optimizer causing the "skipping" of the rest of the > checks. It was a byproduct of boolean short-circuiting of boolean > expressions. Most languages only evaluate just enough of a complex > boolean expression to reach a true or false indication, then skip the > rest of the expression (yes, this is an 'optimization', but not by the > code optimizer but the language specification itself). > > The skipping of the remaining character checks in the example posted > here was due to this boolean short-circuit behavior. Once the first > 'false' arrived for the first incorrect character, the compiled code > skipped over evaluating the boolean expression for subsequent > characters. So -O0 (no optimizations) or -O3 (full optimizations) made > no difference, portions of the 'constant time execution' were skipped, > opening a timing side channel attack. Ah, yes, I remember that now. Can play havoc when one of the expression is actually a function and the later code relies on the prior execution of that code. -- Cheers, Carlos E.R.