Yes, there is indeed a change in the documentation between 0.19.6 and 0.19.9.

Personally, for signed integers I would find more consistent to use an 
arithmetic shift to the right. With a logical shift, _-2 shr 1_ is equal to 
9223372036854775807 on a 64 bits machine which may seem odd. We would rather 
expect to get -1.

In C, the shift to the right is arithmetic for signed integers, logical for 
unsigned integers, which makes sense. And to get a logical shift for a signed 
integer, you have only to cast it to an unsigned int.

Now, as _shr_ has always been a logical shift, I agree that it would be a 
questionable change which could break code in some subtile ways.

Reply via email to