Názor k článku
Podpora pro moduly v Rustu poslána do jádra od linuxák - V tom odkazovaném článku chybí jeden big win...

  • Článek je starý, nové názory již nelze přidávat.
  • 21. 3. 2021 12:48

    linuxák

    V tom odkazovaném článku chybí jeden big win pro Rust, který plyne z paměťového modelu. Překladač Rustu má informaci o tom, zda reference stejného typu odkazuje na stejné nebo různé objekty. Je tedy možné většinu přístupů přes referenci optimalizovat pomocí noalias (restrict v C) a může to automaticky udělat překladač. V C tohle nikdy nepůjde, překladač C k tomu nemá dost informací. V C se to částečně řeší strict aliasingem, ale ten funguje jen pro objekty různých typů.

    Aktuálně tuto optimalizaci Rust nepoužívá, protože LLVM je zabugované a neumí s noalias správně pracovat. Nicméně pracuje se na nápravě a tady je další poměrně velký potenciál k tomu, aby Rust generoval efektivnější kód než C: https://github.com/rust-lang/rust/issues/54878