01-07-2024, 05:56 PM
(01-07-2024, 05:44 PM)bplus Wrote: You just talked me out of updating to 3.11 because you say you are Not using _Unsigned as default for the other bases.
3.10 was the only version which was returning unsigned values for us with CONST. (Unless you go back to various SDL versions and shortly after.) Ever since we cloned off from the old team's v2.0.2, CONST has returned signed values.
As for everything else -- they're the same as they've always been. We've just now started to notice that VAL("&H_number") returned an unsigned value. QB45 used to return signed values. DATA returns signed values (I think). Using them in a variable will return signed values. CONST is now once again returning signed values. (As I mentioned; it was only 3.10 which broke that when we fixed something else.)
Test out your old version and test out the new version, and see where you find any changed results. Everything prior to 3.10 will return the same values that it does now in 3.11. 3.10 was the outlier and got fixed.
I think you misunderstood: I'm not saying that we're changing anything to use unsigned as default; I'm saying that some things already use unsigned, and some use signed values -- and it's been that way since forever, it seems. We're just now noticing behavior which has been in the language for ages.
Which is why I'm warning you: If you want predictable results, always take the time to add that suffix to your &HBO values. You'll never have issues with &H12345678&&, as you've manually declared it as an unsigned integer64. Now, &H12345678 may return a signed value, or an unsigned value to you, depending on where/how you end up calling it and using it in your program -- and it's been that way for ages and ages.
Upgrade. Don't upgrade. Doesn't matter -- you're still going to end up with different places which will return different values on you. Just like you always have, and just never noticed in the past.