Rust 1.46 Programlingvo-Eldono

eldonita eldono 1.46 de la sistema programlingvo rustiĝi, fondita de la projekto Mozilla. La lingvo temigas memorsekurecon, disponigas aŭtomatan memoradministradon, kaj disponigas ilojn por atingi altan taskan paralelecon sen uzado de rubkolektilo kaj rultempo.

La aŭtomata memoradministrado de Rust eliminas erarojn dum manipulado de montriloj kaj protektas kontraŭ problemoj ekestiĝantaj de malaltnivela memormanipulado, kiel ekzemple alirado de memorregiono post kiam ĝi estis liberigita, nulaj montriloj dereferences, bufrotranspasoj, ktp. Pakaĵmanaĝero estas evoluigita por distribui bibliotekojn, certigi kunigon kaj administri dependecojn per la projekto. kargo, permesante al vi akiri la bibliotekojn necesajn por la programo per unu klako. Deponejo estas subtenata por gastigi bibliotekojn kestoj.io.

Ĉefa novigoj:

  • La kapabloj de funkcioj difinitaj per la esprimo "const fn" estis vastigitaj, kiuj povas esti nomataj ne nur kiel regulaj funkcioj, sed ankaŭ uzataj en iu ajn kunteksto anstataŭ konstantoj. Tiuj funkcioj estas kalkulitaj je kompiltempo, ne dum rultempo, do ili estas submetitaj al certaj restriktoj, kiel ekzemple la kapablo legi nur de konstantoj.

    La nova eldono forigas la malpermeson uzi buleajn funkciigistojn ("&&" kaj "||") en tiaj funkcioj, kaj permesas la uzon de "se", "se let", "kongrui" konstrukcioj,
    "dum", "dum let" kaj "buklo", kaj ankaŭ disponigas la kapablon konverti al tranĉaĵoj (tranĉaĵo, dinamikaj tabeloj) uzante la esprimon "&[T]". La uzo de ĉi tiuj funkcioj en la funkcioj "const fn" permesas al vi movi kelkajn rimedintensajn operaciojn al la kompila stadio. Ekzemple, la efektivigo de "const-sha1" ebligas kalkuli SHA-1-haŝojn ĉe kompiltempo, kio kondukas al plirapidigo de WinRT-ligoj por Rust preskaŭ 40 fojojn.

  • Por fari erarmesaĝojn pli informaj, subteno por la atributo "#[track_caller]" estas stabiligita, kiu estas utila por funkcioj kiel malvolvi, kiu povas kaŭzi panikon se tipoj estas malĝuste uzataj. La specifita atributo estos uzata de la panika prizorganto por presi la lokon de la alvokanto en erarmesaĝo.
  • La atributo "const", kiu determinas la eblecon uzi ĝin en iu ajn kunteksto anstataŭ konstantoj, estas uzata en la metodo std::mem::forget.
  • Nova parto de la API estis movita al la stabila kategorio, inkluzive de la stabiligita Option::zip kaj vec::Drain::as_slice.
  • En pakaĵmanaĝero Kargo aldonis subteno por novaj mediovariabloj agordita dum kompilado de pako: CARGO_BIN_NAME (nomo de la rezulta rulebla dosiero), CARGO_CRATE_NAME (pakonomo), CARGO_PKG_LICENSE (licenco specifita en la manifesto), CARGO_PKG_LICENSE_FILE (vojo al la licencdosiero).

fonto: opennet.ru

Aldoni komenton