4 ms·
I think the issue is all of C's undefined behavior
by brundolf 6y ago
I think the issue is all of C's undefined behavior
- ghoward 6y agoFor the most part, that can be worked around as well, with careful use of unsigned arithmetic. See https://git.yzena.com/Yzena/Yc/src/branch/master/include/yc/arith.h https://git.yzena.com/Yzena/Yc/src/branch/master/include/yc/... for some examples. All arithmetic is unsigned, but I use it to simulate 2's complement signed.
- CyberRabbi 6y agoThat is not difficult to avoid if you are generating short primitives. You can for the most part just convert the LLVM bitcode that the Rust compiler would output to the equivalent C snippet. Since each snippet is short, you can trivially check if it invokes undefined behavior. LLVM bitcode also can exhibit undefined behavior.
- moosingin3space 6y ago> You can for the most part just convert the LLVM bitcode that the Rust compiler would output to the equivalent C snippet. Sounds like a good argument to resurrect the LLVM C backend. As it stands, the Rust core team has no desire to implement a C backend, as it would be a ton of work for not much gain.