Hoʻokuʻu ʻia ʻo Rust 1.60

Ua paʻi ʻia ka hoʻokuʻu ʻia ʻana o ka ʻōlelo hoʻolālā kumu nui ʻo Rust 1.60, i hoʻokumu ʻia e ka papahana Mozilla, akā i kēia manawa ua hoʻomohala ʻia ma lalo o ka mana o ka hui kūʻokoʻa waiwai ʻole ʻo Rust Foundation. Hoʻopili ʻia ka ʻōlelo i ka palekana hoʻomanaʻo a hāʻawi i nā ala e hoʻokō ai i ka parallelism kiʻekiʻe i ka hoʻokō ʻana i ka hana, ʻoiai e pale ana i ka hoʻohana ʻana i ka ʻōpala a me ka manawa holo (ua hoʻemi ʻia ka manawa holo i ka hoʻomaka kumu a me ka mālama ʻana i ka waihona maʻamau).

Hoʻokuʻu ʻia nā ʻenehana hoʻomanaʻo hoʻomanaʻo a Rust i ka mea hoʻomohala mai nā hewa manipulation pointer a pale i nā pilikia e kū mai ana mai ka hoʻohana ʻana i ka hoʻomanaʻo haʻahaʻa haʻahaʻa, e like me ke komo ʻana ma hope o ka loaʻa ʻole ʻana, nā kuhi kuhikuhi null, overruns buffer, a me nā mea like. No ka hāʻawi ʻana i nā hale waihona puke, e hōʻoia i ka hui ʻana a me ka mālama ʻana i nā hilinaʻi, ke kūkulu nei ka papahana i ka luna pūʻolo Cargo. Kākoʻo ʻia ka waihona crates.io no ka mālama ʻana i nā hale waihona puke.

Hoʻoikaika ʻia ka palekana hoʻomanaʻo ma Rust i ka manawa hōʻuluʻulu ma o ka nānā ʻana, ka nānā ʻana i ka mea nona ka mea, ka noʻonoʻo ʻana i ke ola o ka mea (scoping), a me ka loiloi hoʻomanaʻo i ka wā holo. Hāʻawi pū ʻo Rust i ka pale ʻana i ka integer overflows, pono e hoʻomaka mua ʻia nā waiwai hoʻololi ma mua o ka hoʻohana ʻana, ʻoi aku ka maikaʻi o ka lawelawe hewa ʻana i ka waihona maʻamau, hoʻohana i ka manaʻo o nā kuhikuhi immutable a me nā loli ma ke ʻano maʻamau, a hāʻawi i ka paʻi static ikaika e hōʻemi i nā hewa loiloi.

Nā hana hou nui:

  • Loaʻa i ka rustc compiler kahi ʻōnaehana hoʻokumu LLVM paʻa no ka hana ʻana i ka ʻikepili uhi i hoʻohana ʻia e loiloi i ka uhi code i ka wā o ka hoʻāʻo. No ka hoʻohana ʻana i ka ʻikepili uhi i ka wā o ka hui ʻana, pono ʻoe e hoʻohana i ka hae "-Cinstrument-coverage", no ka laʻana, e hoʻomaka i ka hui me ke kauoha "RUSTFLAGS="-C instrument-coverage" cargo build". Ma hope o ka holo ʻana i ka faila hoʻokō i hōʻuluʻulu ʻia ma kēia ʻano, e mālama ʻia ka faila default.profraw i ka papa kuhikuhi o kēia manawa, no ka hana ʻana i hiki iā ʻoe ke hoʻohana i ka pono llvm-profdata mai ka mea llvm-tools-preview. Hiki ke hāʻawi ʻia ka huahana i hana ʻia e llvm-profdata iā llvm-cov no ka hoʻopuka ʻana i kahi hōʻike hoʻopiʻi code annotated. Lawe ʻia ka ʻike e pili ana i ka loulou i ke code kumu mai ka faila i hoʻokō ʻia e nānā ʻia ana, me ka ʻikepili pono e pili ana i ka pilina ma waena o nā helu uhi a me ke code. 1| 1|fn nui() { 2| 1| println!("Aloha, honua!"); 3| 1|}
  • I loko o ka pūʻolo ukana ukana, ua hoʻokūpaʻa ʻia ke kākoʻo no ka hae "-timings", e komo pū ana me ka hoʻokumu ʻana i kahi hōʻike kikoʻī e pili ana i ka holomua o ke kūkulu ʻana a me ka manawa hoʻokō o kēlā me kēia hana. Pono paha ka hōʻike no ka hoʻonui ʻana i ka hana o ke kaʻina hui.
  • Hāʻawi ka luna hoʻokele ukana i kahi syntax hou no ke ʻano o ka hōʻuluʻulu kūlana a me ke koho ʻana i nā hilinaʻi koho, i hoʻonohonoho ʻia ma ka faila Cargo.toml ma ka papa inoa ʻana i kahi papa inoa o nā waiwai i ka ʻāpana [nā hiʻohiʻona] a hoʻāla ʻia e ka ʻae ʻana i nā waiwai i ka wā o ke kūkulu ʻana i ka pōʻai. me ka hoʻohana ʻana i ka hae "--features". Hoʻohui ka mana hou i ke kākoʻo no nā hilinaʻi ma nā inoa inoa ʻokoʻa a me nā hilinaʻi nāwaliwali.

    I ka hihia mua, hiki ke hoʻohana i nā mea me ka prefix "dep:" i loko o ka ʻāpana "[nā hiʻohiʻona]" e hoʻopili pono i kahi hilinaʻi koho me ka hōʻike ʻole ʻana i kēia hilinaʻi ma ke ʻano he hiʻohiʻona. Ma ka hihia ʻelua, ua hoʻohui ʻia ke kākoʻo no ka hōʻailona ʻana me ka hōʻailona "?". ("package-name?/feature-name") nā mea hilinaʻi koho e hoʻokomo wale ʻia inā loaʻa kekahi waiwai ʻē aʻe i ka hilinaʻi koho. No ka laʻana, ma ka laʻana ma lalo nei, ʻo ka hoʻohana ʻana i ka waiwai serde e hiki ai ke hilinaʻi "serde", a me ka waiwai "serde" no ka hilinaʻi "rgb", akā inā hiki ke hilinaʻi "rgb" ma kahi ʻē aʻe: [dependencies] serde = { version = "1.0.133", koho = ʻoiaʻiʻo } rgb = { version = "0.8.25", koho = ʻoiaʻiʻo } [nā hiʻohiʻona] serde = ["dep:serde", "rgb?/serde"]

  • Ua hoʻihoʻi ʻia ke kākoʻo no ka hōʻuluʻulu ʻana, i pio i ka hoʻokuʻu hope. Ua hoʻoholo ʻia ka pahu hoʻopili i hoʻopau ʻia ka hiʻona.
  • Hoʻoholo i kekahi mau pilikia me ka hāʻawi ʻana i nā manawa Instant me kahi hōʻoia o ka manawa monotonic, e noʻonoʻo ana i ka manawa i hoʻohana ʻia e ka ʻōnaehana ma ke ʻano hiamoe. Ma mua, ua hoʻohana ʻia ka OS API i ka wā e hiki ai ke hoʻohana i ka manawa, ʻaʻole i noʻonoʻo i nā kūlana pilikia e wāwahi i ka monotony o ka manawa, e like me nā pilikia hardware, ka hoʻohana ʻana i ka virtualization, a i ʻole nā ​​​​hewa i ka ʻōnaehana hana.
  • Ua hoʻoili ʻia kahi ʻāpana hou o ka API i ka ʻāpana paʻa, me nā ʻano a me nā hoʻokō o nā ʻano:
    • Arc::new_cyclic
    • Rc::new_cyclic
    • slice::EscapeAscii
    • <[u8]>::escape_ascii
    • u8::escape_ascii
    • Vec::spare_capacity_mut
    • Malia pahaUninit:: assume_init_drop
    • Malia pahaUninit:: assume_init_read
    • i8::abs_diff
    • i16::abs_diff
    • i32::abs_diff
    • i64::abs_diff
    • i128::abs_diff
    • ka nui::abs_diff
    • u8::abs_diff
    • u16::abs_diff
    • u32::abs_diff
    • u64::abs_diff
    • u128::abs_diff
    • hoʻohana::abs_diff
    • Hōʻike no ka io::ErrorKind
    • Mai ka ExitCode
    • Aole no ka ! (ʻano "ʻaʻole loa")
    • _Op_Assign<$t>
    • arch:: is_aarch64_feature_detected!
  • Ua hoʻokō ʻia ke kolu o ke kākoʻo no ka mips64-openwrt-linux-musl* a me armv7-unknown-linux-uclibceabi (softfloat). ʻO ke kolu o ka pae e pili ana i ke kākoʻo maʻamau, akā me ka ʻole o ka hoʻāʻo ʻana, ka hoʻopuka ʻana i nā hale mana, a i ʻole ka nānā ʻana inā hiki ke kūkulu ʻia ke code.
  • Ua hoʻololi ʻia ka compiler e hoʻohana i ka LLVM 14.

Eia hou, hiki iā ʻoe ke hoʻomaopopo:

  • Hoʻohui i ke kākoʻo no ka bootstrapping i ka rustc compiler me ka hoʻohana ʻana i ka rustc_codegen_gcc backend, kahi e hiki ai iā ʻoe ke hoʻohana i ka waihona libgccjit mai ka papahana GCC ma ke ʻano he code generator ma rustc, e hiki ai iā rustc ke hāʻawi i ke kākoʻo no nā architectures a me nā optimizations i loaʻa ma GCC. ʻO ka hoʻolaha ʻana o ka mea hoʻopili, ʻo ia ka hiki ke hoʻohana i kahi mea hoʻoheheʻe code-based GCC ma rustc e kūkulu i ka rustc compiler ponoʻī. Ma ka ʻaoʻao kūpono, ʻae kēia hiʻohiʻona iā ʻoe e kūkulu i nā papahana rust no nā hale kiʻi i kākoʻo ʻole ʻia ma rustc.
  • Loaʻa ka hoʻokuʻu ʻia ʻana o ka uutils coreutils 0.0.13 toolkit, kahi e hoʻomohala ʻia ai kahi analogue o ka pūʻolo GNU Coreutils, i kākau hou ʻia ma ka ʻōlelo Rust. Hele mai ʻo Coreutils me ka ʻoi aku o hoʻokahi haneli mau pono, me ka sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, a me ls. ʻO ka pahuhopu o ka papahana ka hana ʻana i kahi hoʻokō cross-platform ʻokoʻa o Coreutils, hiki ke holo ma Windows, Redox a me Fuchsia platforms, a me ka hāʻawi ʻana ma lalo o ka laikini MIT ʻae ʻia, ma kahi o ka laikini kope kope GPL.

    Ua hoʻomaikaʻi ka mana hou i ka hoʻokō ʻana i nā pono he nui, me ka hoʻomaikaʻi nui ʻana i ka hoʻohālikelike ʻana o nā pono cp, dd, df, split and tr me ko lākou mau hoa mai ka papahana GNU. Hāʻawi ʻia nā palapala pūnaewele. Hoʻohana ʻia ka clap parser e hoʻopaʻa i nā manaʻo hoʻopaʻapaʻa laina kauoha, ka mea i hoʻomaikaʻi i ka hopena no ka hae "--help" a hoʻohui i ke kākoʻo no nā pōkole o nā kauoha lōʻihi (no ka laʻana, hiki iā ʻoe ke kuhikuhi i ka "ls -col" ma kahi o "ls -color. ”).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka