( ricpet | 2024. 03. 12., k – 16:31 )

Hát, szerintem ez a gondolatkísérlet ott sántít, hogy azzal, hogy ragaszkodsz a kiindulási struktúrához, nem azt teszteled valójába, amit akartál, hogy vajon a Rust jobb/rosszabb-e mint a C. Mert mint látszik, mindegyikben sikerült megoldást írni. És egyébként mindegyik nagyon hasonló felépétésében, a Pascal-os is. És mindegyik törékeny, igen a C is.

Aminek oka, hogy a kiindulási peremfeltételeid mentén, ha ezekhez továbbra is ragaszkodsz, mindegyik megoldás csak törékeny lehet. Kivéve az assembly, de ugye most valamiért ehhez ragaszkodsz, hogy assembly ne lehessen a megoldás része. Ha van benne unsafe, akkor miért ne lehetne kb. 3 sor assembly is? És ismétlem, ez C-nél is ugyanúgy kell ahhoz, hogy jól struktúrált legyen a megoldás. És akkor most ez a néhány sor assembly vagy a bootloaderbe kerül egészében, vagy a megoldandó feladatba egészében. Másképp nem fog menni.

Még lehetne esetleg azzal játszani, hogy semmi sincs a bootloaderben, minden a megoldandó feladatban van, belépés és kilépés, és nem assembly-ben, de akkor a nyelvnek explicit támogatni kell azt, hogy egy függvény nem normál függvény, hanem interrupt handler.

Van ilyen kezdeményezés a Rust-nál, de még nincs kész: https://github.com/rust-lang/rust/issues/40180

És itt a C szintén elvérzik (hoppá, erre számítottál?): https://stackoverflow.com/questions/21336730/can-interrupts-be-handled-…