Post #2196041
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 (4)
-
@fasterthanlime@hachyderm.io 2025-11-22 14:04
@mei@donotsta.re incredible
-
@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
-
@manawyrm@chaos.social 2025-11-22 14:46
@mei@donotsta.re tbf, using a 2560 in 2025 is also just deranged :D LLVM on AVR is such an absurd concept xD
-
@wronglang@bayes.club 2025-11-23 10:48
@mei@donotsta.re nice!