Mae rhyddhau iaith raglennu pwrpas cyffredinol Rust 1.65, a sefydlwyd gan brosiect Mozilla, ond sydd bellach wedi'i datblygu dan nawdd y sefydliad dielw annibynnol Rust Foundation, wedi'i gyhoeddi. Mae'r iaith yn canolbwyntio ar ddiogelwch cof ac yn darparu'r modd i gyflawni gwaith tebyg iawn tra'n osgoi defnyddio casglwr sbwriel ac amser rhedeg (mae amser rhedeg yn cael ei leihau i gychwyn a chynnal a chadw sylfaenol y llyfrgell safonol).
Mae dulliau trin cof Rust yn arbed y datblygwr rhag gwallau wrth drin awgrymiadau ac yn amddiffyn rhag problemau sy'n codi oherwydd trin cof lefel isel, megis cyrchu man cof ar ôl iddo gael ei ryddhau, dadgyfeirio awgrymiadau nwl, gor-redeg byffer, ac ati. Er mwyn dosbarthu llyfrgelloedd, darparu adeiladu a rheoli dibyniaethau, mae'r prosiect yn datblygu rheolwr pecyn Cargo. Cefnogir ystorfa crates.io ar gyfer cynnal llyfrgelloedd.
Darperir diogelwch cof yn Rust ar amser casglu trwy wirio cyfeiriadau, cadw golwg ar berchnogaeth gwrthrychau, cadw golwg ar oes gwrthrychau (scopes), ac asesu cywirdeb mynediad cof wrth weithredu cod. Mae Rust hefyd yn darparu amddiffyniad rhag gorlifiadau cyfanrif, yn gofyn am ymgychwyn gorfodol o werthoedd amrywiol cyn ei ddefnyddio, yn trin gwallau yn well yn y llyfrgell safonol, yn cymhwyso'r cysyniad o gyfeiriadau a newidynnau digyfnewid yn ddiofyn, yn cynnig teipio statig cryf i leihau gwallau rhesymegol.
Prif arloesiadau:
- Cefnogaeth ychwanegol ar gyfer mathau cysylltiedig generig (GAT, Generic Associated Types), sy'n ei gwneud hi'n bosibl creu aliasau math sy'n gysylltiedig â math arall a'ch galluogi i gysylltu adeiladwyr math â nodweddion. nodwedd Foo { teipiwch Bar<'x>; }
- Mae'r ymadrodd "let ... else" wedi'i weithredu, sy'n eich galluogi i wirio'r cyflwr paru patrwm yn union y tu mewn i'r ymadrodd “let” a gweithredu cod mympwyol os nad yw'r patrwm yn cyfateb. let Ok(count) = u64::from_str(count_str) arall { panic!("Methu dosrannu cyfanrif: '{count_str}'"); };
- Caniatáu defnyddio datganiad torri i adael blociau a enwir yn gynamserol, gan ddefnyddio enw'r bloc (label) i adnabod y bloc sydd i'w derfynu. let result = 'bloc: { do_thing(); os condition_not_met() { torri 'bloc 1; } do_next_thing(); os condition_not_met() { torri 'bloc 2; } do_last_thing(); 3};
- I Linux добавлена возможность раздельного сохранения отладочной информации (split-debuginfo), ранее доступная только для платформы macOS. При указании опции «-Csplit-debuginfo=unpacked» данные debuginfo в формате DWARF будут сохранены в несколько отдельных объектных файлов с расширением «.dwo». При указании «-Csplit-debuginfo=packed» будет создан один пакет в формате «.dwp», включающий все данные debuginfo для проекта. Для интеграции debuginfo непосредственно в секцию .debug_* ELF-объектов можно использовать опцию «-Csplit-debuginfo=off».
- Mae cyfran newydd o'r API wedi'i symud i'r categori stabl, gan gynnwys dulliau a gweithrediad nodweddion wedi'u sefydlogi:
- std::olrhain :: Olrhain yn ôl
- Wedi'i rwymo:: as_ref
- std::io::read_to_string
- <*const T>::cast_mut
- <*mut T> ::cast_const
- Defnyddir y briodwedd “const”, sy'n pennu'r posibilrwydd o'i ddefnyddio mewn unrhyw gyd-destun yn lle cysonion, yn y swyddogaethau <*const T&>:: offset_from a <*mut T>:: offset_from
- Fel rhan o'r cam olaf o drosglwyddo gweithrediad y protocol LSP (Protocol Gweinydd Iaith) i rwd-dadansoddwr, disodlwyd gweithrediad hen ffasiwn Rust Language Server (RLS) gyda gweinydd stub sy'n rhoi rhybudd gydag awgrym i newid i defnyddio rhwd-dadansoddwr.
- Yn ystod y cyfnod llunio, mae cefnogaeth ar gyfer defnyddio cod canolradd MIR yn fewnol yn cael ei alluogi, sy'n cyflymu'r broses o lunio pecynnau crât nodweddiadol 3-10%.
- Er mwyn cyflymu'r gwaith adeiladu sydd wedi'i amserlennu, mae'r rheolwr pecyn Cargo yn darparu didoli o swyddi sy'n aros i gael eu gweithredu yn y ciw.
Yn ogystal, gallwch nodi'r cyfweliad am y defnydd o'r iaith Rust yn Volvo i ddatblygu cydrannau systemau gwybodaeth modurol. Nid oes unrhyw gynlluniau i ailysgrifennu cod presennol a phrofedig yn Rust, ond ar gyfer cod newydd, Rust yw un o'r opsiynau a ffefrir ar gyfer gwella ansawdd am gostau is. Mae gweithgorau sy'n ymwneud â defnyddio'r iaith Rust hefyd wedi'u creu yn y cymdeithasau modurol AUTOSAR (AUTomotive Open System Architecture) a SAE (Cymdeithas y Peirianwyr Modurol).
Кроме того, Дэвид Клейдермахер (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.
Ffynhonnell: opennet.ru
