[Gambas-user] Possible error when doing math on bytes

Benoit Minisini benoit.minisini at gambas-basic.org
Wed Jan 4 02:17:38 CET 2023

Le 04/01/2023 à 00:16, Brian G a écrit :
> for the last 5 or 6 years we could depend on this, So many of my code in 
> many applications is now broken.
> like expecting adding one to 255 to wrap to zero etc...
> This is normal behavior for unsigned numbers.

Actually it's not. All CPU I know behave like this, but the C standard 
explicitely says that overflow leads to undefined results. Nobody must 
rely on that.

I had five places in all Gambas code I wrote (for my job and for Gambas) 
that incorrectly used overflow. It took a few minutes to fix all of them.

I don't understand how you can rely so heavily on overflow with bytes...

> I am going to have to waste months fixing and checking production 
> applications.
> For me this is almost enough reason to stop using gambas altogether.
> I am extremely, extremely upset.... we are talking real production software
> It all has to be reevaluated and tested this is man months of testing and
> I just can not afford nor can my clients afford such expense.
> This is a very bad thing.
> Can an option be added to just turn this off, please, begging, go back 
> to old behaviors

I won't go back the old behaviour which is incorrect by the definition 
of the C standard, and lead to a lot of invisible bugs and security 
breach in software.

I will think about how I can add an option for allowing the old 
incorrect behaviour, but after the release of Gambas 3.18.0. At the 
moment I don't know how I can do that.

You will have to wait a little before using Gambas 3.18 in production.

Sorry for the inconvenience.

Benoît Minisini.

More information about the User mailing list