[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Arithmetic expression: evaluation order bug

From: Steffen Nurpmeso
Subject: Re: Arithmetic expression: evaluation order bug
Date: Fri, 30 Dec 2022 21:44:28 +0100
User-agent: s-nail v14.9.24-383-g2889cb06b9

Greg Wooledge wrote in
 |On Fri, Dec 30, 2022 at 12:21:52AM +0100, Steffen Nurpmeso wrote:
 |> ..i want to reiterate the relation to what "human logic" expects.
 |I'm a human, so I feel qualified to address this point.
 |What I expect from a command like
 |(( i += j += i += j ))
 |is to get unpredictable results that have no relationship to anything
 |useful, because that code is complete rubbish.
 |I can't even guess what the *intent* of the code is.

This is from a test script (of course).  "i += i += i += i" seems
to be equal to "i *= 8" or "i <<= 3" (of which only the second is
something that i can grasp at a glance .. unless in good shape).

Looking back, it arose out of the ashes of the test

  s I1=10 I2=20;p "<$((I1+=I2+=I1))>";e "<$I1><$I2>"

which anything tested gets right.  'What tests are for.  (Except
in the car industry but that is off-topic.)

By sheer luck many minds over several generations shared my point
of view regarding what the outcome has to be so that i do not feel
so lonely about it.  Yeah, and it flows so much nicer.

  i1 += i2 += i1 += i2
  i1 += i2, i2 += i1, i1 += i2

Digital, logical, liberal, yuck :)

 |I'm not optimistic enough to expect an error message, or even better,
 |an immediate termination of the shell.  That would be *far* too useful
 |(because it would force the script's author to rewrite that code).

Well in real life i have not yet encountered a bug in bash; as in,
from working/"living" with it (for many years, all in all).
(Maybe multibyte problems in bash 2, but that was long ago, and
i am not even sure whether i relate that correctly.  .inputrc


|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]