2025-11-22 14:03 UTC
current status: Rust's new implementation of formatting internals non-deterministically prints garbage on specifically ATmega2560 due to what we've tracked down to be an LLVM bug
(see also: https://xkcd.com/2083/)
Replies (1)
-
@mei@donotsta.re 2025-11-22 14:10
why formatting internals? well, they're doing pointer tagging that depends on alignment. why ATmega2560? well, that's the one that has 256KB of program flash. and a 2-byte return address can only support 128KB of program flash (because the flash is word addressed) which means that, yes, specifically the 256KB version of the microcontroller pushes 3-byte return addresses on the stack