( asch | 2024. 03. 09., szo – 21:34 )

Most már meg kellett néznem a specifikációt, mert már idegesít, hogy én sejtem hogy minek kell ott lenni, mivel ismerek jópár nyelvet, de pont a Rustot nem. Te meg olyanokat mondasz, ami nem lehet ott. Szóval lássuk a specifikációt: https://doc.rust-lang.org/reference/unsafety.html

"Unsafe operations are those that can potentially violate the memory-safety guarantees of Rust's static semantics.

The following language level features cannot be used in the safe subset of Rust:

    Dereferencing a raw pointer.
    Reading or writing a mutable or external static variable.
    Accessing a field of a union, other than to assign to it.
    Calling an unsafe function (including an intrinsic or foreign function).
    Implementing an unsafe trait."

Tehát raw pointer access és a foreign function call is unsafe a specifikáció szerint. Ami nem meglepő, hiszen ezek kívül esnek a _virtuális gép_ hatáskörén. Mindegy, hogy valójában van-e runtime virtuális gép, a programozási nyelvek specifikációjában virtuális gépnek hívják a működés specifikációját, mivel ez nem egy létező gép, hanem virtuális, pont a nyelv specifikálja, de nincsen valódi gép ami így működik.

Az is mindegy, hogy kell-e ezekhez unsafe kulcsszó, a lényeg, hogy a specifikáció egyértelműen megjelöli, hogy a Rust VM szempontjából ezek unsafe konstrukciók. Vicces egyébként, hogy épp egy fejezettel előtte van az inline assembly, ami nyilván szintén unsafe, de itt elfelejtették újra megemlíteni: https://doc.rust-lang.org/reference/inline-assembly.html

Összességében a Rust specifikációja nem látszik annyira kidolgozottnak, mint például a Java nyelvé (ez az amit régebben mélyebben olvasgattam), de nagyjából az van benne amire számítottam.

Na most akkor döntsd el légy szíves, hogy konkrétan az unsafe kulcsszó az ami tiltott, vagy az unsafe konstrukciók általában? Egyébként leírtuk, hogy a videó RAM elérés az, amihez szükséges a "raw pointer" használata, ha ezt tiltod, akkor nem lehet megcsinálni és visszajutunk a róka és a daru vendégségéhez. A versenykiírás legyen először egzakt, addig nem állnék neki vadul kalapálni a pályaművet.