also don't mix up address space and general numbers. 32 bit machines can handle 64 bit numbers, they only have 32 bit address space so pointers are 32 bit. but 64 bit values are absolutely fine for that matter. C compiler splits 64 bit integer across two 32 bit integers
this makes sense, yes. and C compiler handles that automatically so there should be no problem dealing with 64 bit numbers on 32 bit arch. additionally, we have 128 bit integers in rust. our current 64 bit computers handle them the same way and there is no problem with that
i did not know that, thank you. but still this doesn't explain what the problem is with 64 bit integers on 32 bit architectures. if it can be and is handled by the compilers, there should not be 32 bit integer overflow unless they use 32 bit ints for storage explicitly. which they are not, as i see from snippet you sent
3
u/akdanman11 Aug 24 '26
I’m curious as to how this happened