Hoʻokuʻu ʻia ʻo Rust 1.69

Ua paʻi ʻia ka hoʻokuʻu ʻia ʻana o ka ʻōlelo hoʻolālā kumu nui ʻo Rust 1.69, 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:

  • Hoʻokō ka luna pūʻolo Cargo i ka ʻike ʻana i nā ʻōlelo aʻo i hiki ke hoʻoholo ʻia, a me ka hoʻopuka ʻana i nā ʻōlelo paipai kūpono no ka holo ʻana i ka "cargo fix" a i ʻole "cargo clippy -fix". ʻōlelo aʻo: lawe ʻole ʻia: 'std:: hash:: Hash' —> src/main.rs:1:5 | 1 | hoʻohana std::hash::Hash; | ^^^^^^^^^^^^^^^^^ | = memo: '#[warn(unused_imports)]' ma ka ʻōlelo aʻo paʻamau: 'foo' (bin "foo") i hoʻopuka i 1 ʻōlelo aʻo (holo 'cargo fix —bin "foo"' no ka hoʻohana ʻana i 1 manaʻo)
  • Ua hoʻohui ʻo Cargo i kahi hoʻopuka manaʻo no ka hoʻohana ʻana i ke kauoha "cargo add" ke hoʻāʻo nei e hoʻokomo i kahi waihona me ke kauoha "cargo install".
  • No ka hōʻemi ʻana i ka manawa hōʻuluʻulu, ua kāpae ʻia ka hoʻokomo ʻana i ka ʻike debugging i loko o nā palapala kūkulu. Inā holo maikaʻi nā palapala kūkulu, ʻaʻole e hopena ka hoʻololi ʻana i nā ʻokoʻa ʻike ʻia, akā inā hāʻule ʻole, e liʻiliʻi ka ʻike i ka traceback dump. No ka hoʻihoʻi ʻana i ka hana kahiko iā Cargo.toml pono ʻoe e hoʻohui: [profile.dev.build-override] debug = ʻoiaʻiʻo [profile.release.build-override] debug = ʻoiaʻiʻo
  • 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:
    • CStr::mai_bytes_until_nul
    • kumu::ffi::FromBytesUntilNulError
  • Hoʻohana ʻia ka ʻano "const", ka mea e hoʻoholo ai i ka hiki ke hoʻohana ʻia i kēlā me kēia pōʻaiapili ma kahi o nā mea mau, hoʻohana ʻia i nā hana:
    • SocketAddr::mea hou
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::mea hou
    • SocketAddrV4::ip
    • SocketAddrV4::port
    • SocketAddrV6::mea hou
    • SocketAddrV6::ip
    • SocketAddrV6::port
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Hoʻohui i ka hiki ke hoʻohana i nā hae ʻoiaʻiʻo a me ka hewa i nā hoʻopaʻapaʻa compiler.

Source: opennet.ru

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