Rust 1.34 Famoahana ny fiteny fandaharana

nitranga famotsorana ny fiteny fandaharana amin'ny rafitra Harafesina 1.34, novolavolain'ny tetikasa Mozilla. Mifantoka amin'ny fiarovana ny fitadidiana ilay fiteny, manome fitantanana fitadidiana mandeha ho azy, ary manome fitaovana hanatrarana ny fitovizan'asa avo lenta nefa tsy mampiasa mpanangom-pako na fotoana fiasana.

Ny fitantanana fahatsiarovana mandeha ho azy an'i Rust dia manafaka ny mpamorona amin'ny fanodinkodinana pointer ary miaro amin'ny olana ateraky ny fanodinkodinana fahatsiarovana ambany, toy ny fidirana tsy misy fitadidiana aorian'ny fahatsiarovan-tena, ny tsy fahampian'ny pointer tsy misy dikany, ny fihoaran'ny buffer, sy ny toy izany. Misy mpitantana fonosana novolavolaina mba hizarana tranomboky, hiantohana ny fivoriambe ary hitantanana ny fiankinan-doha amin'ny tetikasa. entana, ahafahanao mahazo ny tranomboky ilaina amin'ny programa amin'ny tsindry iray. Misy tahiry iray tohanana mba hampiantranoana tranomboky crates.io.

tena fanavaozana:

  • Ny mpitantana ny fonosana Cargo dia nanampy fitaovana hiasa miaraka amin'ireo rejisitra fonosana hafa izay afaka miara-miaina amin'ny rejisitra ho an'ny daholobe crates.io. Ohatra, afaka mampiasa ny rejisitra manokana an'ny tenany manokana izao ny mpamorona ny rindranasa tsy miankina, izay azo ampiasaina rehefa mitanisa ny fiankinan-doha ao amin'ny Cargo.toml, ary mampihatra modely fanontana mitovy amin'ny crates.io ho an'ny vokatra, ary koa manondro ny fiankinan-doha amin'ny vata roa. io ary amin'ny rejisitrao manokana.

    Hanampy rejistra ivelany amin'ny .cargo/config (ao amin'ny $HOME na ao amin'ny lahatahiry fonosana)
    NANOMEZAN'I fizarana "[registry]", ary hampiasa rejisitra ivelany, ny safidy "rejistra" dia niseho tamin'ny famaritana ny fiankinan-doha tsirairay ao amin'ny Cargo.toml. Raha te hifandray amin'ny rejisitra fanampiny dia apetraho ao anaty rakitra ~/.cargo/credentials fotsiny ny mari-pamantarana fanamarinana ary araho ny baiko
    "Login'ny entana --registry=my-registry" ary hamoaka fonosana -
    "cargo publish -registry=my-registry";

  • Nampiana fanohanana feno amin'ny fampiasana ny β€œ?” operator. amin'ny fitsapana doctests, mamela anao hampiasa code ohatra avy amin'ny antontan-taratasy ho fitsapana. Operator teo aloha
    "?" azo ampiasaina hiatrehana ny lesoka mandritra ny fanatanterahana ny andrana raha tsy eo anatrehan'ny asa β€œfn main()” na amin'ny asa β€œ#[test]”;

  • Amin'ny toetra manokana voafaritra amin'ny fampiasana macros procedural antoka ny fahafahana mampiasa andiana famantarana tsy misy dikany (β€œ#[attr($tokens)]”, β€œ#[attr[$tokens]] ary #[attr{$tokens}]”). Teo aloha, ny singa dia tsy azo faritana afa-tsy amin'ny endrika hazo/recursive mampiasa litera tady, ohatra hoe "#[foo(bar, baz(quux, foo = "bar"))]", fa ankehitriny dia azo atao ny mampiasa fanisana (' #[range(0. .10)]') ary fananganana toy ny β€œ#[bound(T: MyTrait)]”;
  • Karazana raikitra (toetra) TryFrom ΠΈ TryInto, mamela ny karazana fiovam-po miaraka amin'ny fikarakarana fahadisoana. Ohatra, ny fomba toy ny from_be_bytes miaraka amin'ny karazana integer dia mampiasa array ho fampidirana, fa ny angon-drakitra matetika dia tonga amin'ny karazana Slice, ary ny mamadika eo anelanelan'ny array sy ny slices dia manahirana ny manao tanana. Miaraka amin'ny fanampian'ny toetra vaovao, ny fandidiana voafaritra dia azo atao amin'ny lalitra amin'ny alΓ lan'ny antso amin'ny .try_into(), ohatra, "let num = u32:: from_be_bytes(slice.try_into()?)". Ho an'ny fiovam-po izay mahomby foana (ohatra, avy amin'ny karazana u8 ka hatramin'ny u32), dia nampiana karazana fahadisoana tsy mety diso, mamela ny fampiasana mangarahara
    TryFrom ho an'ny fampiharana rehetra misy ny "From";

  • Tsy ampiasaina intsony ny fiasa CommandExt::before_exec, izay nahafahan'ny mpitantana iray hovonoina alohan'ny fampandehanana exec, izay notanterahina tao anatin'ny tontolon'ny fizotry ny zaza nopotehina taorian'ny fiantsoana fork(). Amin'ny toe-javatra toy izany, ny loharanon-karena sasany amin'ny fizotry ny ray aman-dreny, toy ny famariparitana ny rakitra sy ny faritra fitadidiana sarintany, dia azo adika, izay mety hitarika amin'ny fitondran-tena tsy voafaritra sy ny fampandehanana ny tranomboky.
    Tsara ny mampiasa fiasa tsy azo antoka fa tsy before_exec CommandExt::pre_exec.

  • Karazana integer atomika voasonia sy tsy misy sonia misy habe manomboka amin'ny 8 ka hatramin'ny 64 bits (ohatra, AtomicU8), ary koa ireo karazana voasonia NonZeroI[8|16|32|64|128].
  • Misy ampahany vaovao amin'ny API nafindra ho amin'ny sokajy stable, anisan'izany ny Any::type_id, Error::type_id, slice::sort_by_cached_key, str::escape_*, str::split_ascii_whitespace, Instant::checked_[add|sub ] ary ny fomba SystemTime dia nalamina ::checked_[add|sub]. Ny fiasan'ny iter::from_fn sy iter::fandimby dia nalamina;
  • Ho an'ny karazana integer rehetra, ny fomba checked_pow, saturating_pow, wrapping_pow ary overflowing_pow;
  • Nampiana ny fahafahana mamela ny fanatsarana amin'ny dingana fampifandraisana amin'ny alΓ lan'ny famaritana ny safidy fananganana "-C linker-plugin-lto".

Source: opennet.ru

Add a comment