Rust 1.65 Programming Language Release

De algemiene programmeertaal Rust 1.65, oprjochte troch it Mozilla-projekt mar no ûntwikkele ûnder auspysjes fan de ûnôfhinklike non-profit organisaasje Rust Foundation, is frijjûn. De taal rjochtet him op ûnthâld feilichheid en jout de middels te berikken hege baan parallelism wylst it foarkommen fan it brûken fan in garbage collector en runtime (runtime wurdt redusearre ta basis inisjalisaasje en ûnderhâld fan de standert bibleteek).

De metoaden foar ûnthâldbehanneling fan Rust besparje de ûntwikkelder fan flaters by it manipulearjen fan oanwizers en beskermje tsjin problemen dy't ûntsteane troch ûnthâldôfhanneling op leech nivo, lykas tagong krije ta in ûnthâldgebiet nei't it befrijd is, it ferwizen fan nul-oanwizers, buffer-oerrin, ensfh. Om bibleteken te fersprieden, builds te leverjen en ôfhinklikens te behearjen, ûntwikkelet it projekt de Cargo-pakketbehearder. It crates.io repository wurdt stipe foar hosting fan bibleteken.

Unthâld feilichheid wurdt foarsjoen yn Rust op it gearstallen tiid troch referinsje kontrôle, byhâlden fan foarwerp eigendom, byhâlden fan foarwerp lifetimes (omfang), en beoardielje de korrektheid fan ûnthâld tagong by koade útfiering. Rust leveret ek beskerming tsjin oerstreamingen fan heule getal, fereasket ferplichte inisjalisaasje fan fariabele wearden foar gebrûk, behannelet flaters better yn 'e standertbibleteek, tapast standert it konsept fan ûnferoarlike referinsjes en fariabelen, biedt sterke statyske typen om logyske flaters te minimalisearjen.

Wichtichste ynnovaasjes:

  • Tafoege stipe foar generic assosjearre typen (GAT, Generic Associated Types), dy't meitsje it mooglik om te meitsjen type aliassen assosjearre mei in oar type en kinne jo assosjearje type constructors mei eigenskippen. eigenskip Foo { type Bar<'x>; }
  • De "lit ... else" ekspresje is ymplementearre, wêrtroch jo de patroan oerienkommende betingst direkt yn 'e "lit" ekspresje kinne kontrolearje en willekeurige koade útfiere as it patroan net oerienkomt. lit Ok(count) = u64::from_str(count_str) else { panic!("Kin it hiel getal net parse: '{count_str}'"); };
  • Tastean it gebrûk fan in break statement om neamde blokken te betiid út te gean, mei de bloknamme (label) om it blok te identifisearjen dat moat wurde beëinige. let result = 'block: {do_thing(); as condition_not_met() {brekke 'blok 1; } do_next_thing(); as condition_not_met() {brekke 'blok 2; } do_last_thing(); 3};
  • foar Linux добавлена возможность раздельного сохранения отладочной информации (split-debuginfo), ранее доступная только для платформы macOS. При указании опции «-Csplit-debuginfo=unpacked» данные debuginfo в формате DWARF будут сохранены в несколько отдельных объектных файлов с расширением «.dwo». При указании «-Csplit-debuginfo=packed» будет создан один пакет в формате «.dwp», включающий все данные debuginfo для проекта. Для интеграции debuginfo непосредственно в секцию .debug_* ELF-объектов можно использовать опцию «-Csplit-debuginfo=off».
  • In nij diel fan 'e API is ferpleatst nei de kategory stabile, ynklusyf de metoaden en ymplemintaasjes fan eigenskippen binne stabilisearre:
    • std::backtrace::Backtrace
    • Bûn::as_ref
    • std::io::read_to_string
    • <*const T>::cast_mut
    • <*mut T>::cast_const
  • It attribút "const", dat de mooglikheid bepaalt om it yn elke kontekst te brûken ynstee fan konstanten, wurdt brûkt yn 'e funksjes <*const T&>::offset_from en <*mut T>::offset_from
  • As ûnderdiel fan 'e lêste etappe fan it oerdragen fan de ymplemintaasje fan it LSP (Language Server Protocol) protokol nei rust-analyzer, waard de ferâldere ymplemintaasje fan Rust Language Server (RLS) ferfongen troch in stubserver dy't in warskôging jout mei in suggestje om oer te skeakeljen nei mei help fan rust-analyzer.
  • Tidens kompilaasje is stipe foar ynline-ynset fan MIR-tuskenkoade ynskeakele, wat de kompilaasje fan typyske kratpakketten mei 3-10% fersnelt.
  • Om plande builds te rapperjen, leveret de Cargo-pakketbehearder it sortearjen fan banen dy't wachtsje op útfiering yn 'e wachtrige.

Derneist kinne jo it ynterview notearje oer it gebrûk fan 'e Rust-taal by Volvo om komponinten fan auto-ynformaasjesystemen te ûntwikkeljen. D'r binne gjin plannen om besteande en hifke koade yn Rust te herskriuwen, mar foar nije koade is Rust ien fan 'e foarkar opsjes foar it ferbetterjen fan kwaliteit tsjin legere kosten. Wurkgroepen yn ferbân mei it brûken fan 'e Rust-taal binne ek makke yn' e automotive ferienings AUTOSAR (AUTomotive Open System ARchitecture) en SAE (Society of Automotive Engineers).

Кроме того, Дэвид Клейдермахер (David Kleidermacher), вице-президент Google по инжинирингу, рассказал о переводе на язык Rust кода, используемого в платформе Android для управления ключами шифрования, а также применении Rust в реализации протокола DNS over HTTPS, в стеке для UWB-чипов (Ultra-Wideband) и во вреймворке виртуализации (Android Virtualization Framework), связанном с чипом Tensor G2. Для Android также развиваются новые стеки для Bluetooth и Wi-Fi, переписанные на языке Rust. Общая стратегия заключается в постепенном усилении защиты вначале через перевод на использование Rust наиболее незащищённых и жизненно важных программных компонентов, а затем охватывая и другие связанные с ними подсистемы. В прошлом году язык Rust был включён в число языков, допустимых для разработки платформы Android.

Boarne: opennet.ru

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster