Re:My resignation letter as R7RS-large chair
by mrguyorama on Thursday August 17, 2023 @04:20PM
(#37167386)
It's so simple to avoid undefined behavior, just never add two numbers, or dereference a pointer that you can't statically guarantee the value of.
[ Parent
| on HN ]
Re:My resignation letter as R7RS-large chair
by spookie on Thursday August 17, 2023 @04:39PM
(#37167686)
Yes, it's a simple language. That's why there are no safe guards around INT_MAX + 1, or variants of that.
Re:My resignation letter as R7RS-large chair
by fluoridation on Thursday August 17, 2023 @05:11PM
(#37168145)
You can add two numbers. If the operands are signed you just need to check the operands before the addition to make sure you won't cause an overflow.
Re:My resignation letter as R7RS-large chair
by johncowan on Saturday August 19, 2023 @03:06PM
(#37192017)
Which of course cannot be done portably except by drastic restrictions like "never add a number greater than MAXINT / 2 and never multiply a number greater than sqrt(MAXINT)".
Re:My resignation letter as R7RS-large chair
by mananaysiempre on Saturday August 19, 2023 @05:32PM
(#37193449)
Soon™ we will have ckd_add etc. in the standard for this sort of thing, after several decades finally exposing functionality that any non-exotic CPU provides.
Except RISC-V, because RISC-V. Or, I expect, because they must have gathered statistics from a big chunk of real-world (mostly C and -compatible) code and got a bit fat nothing for the usage of the overflow flag—not because it's useless but precisely because you couldn't get at it from (compiler-independent) C.
Re:My resignation letter as R7RS-large chair
by snvzz on Saturday August 19, 2023 @10:12PM
(#37195384)
Overflow isn't the only flag RISC-V doesn't have.
If floating point extensions aren't present, there aren't even flags.
Re:My resignation letter as R7RS-large chair
by fluoridation on Sunday August 20, 2023 @05:49PM
(#37203231)
Since we're talking about implementing a compiler that merely uses C/++ as a convenient intermediate representation, it doesn't matter much.