about summary refs log tree commit diff stats
path: root/014literal_noninteger.cc
Commit message (Collapse)AuthorAgeFilesLines
* 1876Kartik K. Agaram2015-07-281-9/+9
|
* 1868 - start using naked literals everywhereKartik K. Agaram2015-07-281-1/+0
| | | | First step to reducing typing burden. Next step: inferring types.
* 1414 - traces now robust to new recipes/typesKartik K. Agaram2015-05-211-1/+1
|
* 1391 - avoid unsigned integersKartik K. Agaram2015-05-171-2/+2
|
* 1390 - support non-integer literalsKartik K. Agaram2015-05-171-0/+33
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.)