diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-05-17 00:52:23 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-05-17 00:52:23 -0700 |
commit | 6f8f9fb53b5a7ef26496d496a4b93266c78d6332 (patch) | |
tree | dd7c6f97ead76e5a2e9026eb49d72f29de417e86 /arc/.traces/loop | |
parent | 304963834dbe1e9f019a818e0dbf9c63647fa1c4 (diff) | |
download | mu-6f8f9fb53b5a7ef26496d496a4b93266c78d6332.tar.gz |
1390 - support non-integer literals
Since '3.14159:literal' looks ugly, we'll just say '3.14159'. It's not like non-integers can be confused for anything but literals. Once I tried to turn reagent values into doubles, I uncovered a bug: arithmetic using signed integers is busted; if either operand of subtraction is unsigned the result is unsigned as well. If it needs to be negative: ka-boom. It was only masked because I was eventually storing the result in a long long int, where it was out of range, and so overflowing into the correct signed value. Once I switched to doubles the unsigned value would indeed fit without overflowing. Ka-boom. Yet another reminder that unsigned integers suck. I started using them mostly to avoid warnings in loops when comparing with .size(), which is usually a size_t. Who knows what other crap lurks here. Just use signed integers everywhere. (And avoid bitwise operators.)
Diffstat (limited to 'arc/.traces/loop')
0 files changed, 0 insertions, 0 deletions