රස්ට් 1.44 ක්‍රමලේඛන භාෂා නිකුතුව

පළ කළා පද්ධති ක්‍රමලේඛන භාෂා නිකුතුව මලකඩ 1.44, Mozilla ව්යාපෘතිය විසින් ආරම්භ කරන ලදී. භාෂාව මතක ආරක්ෂාව කෙරෙහි අවධානය යොමු කරයි, ස්වයංක්‍රීය මතක කළමනාකරණය සපයයි, සහ කසළ එකතු කරන්නෙකු භාවිතා නොකර ඉහළ කාර්ය සමාන්තරකරණයක් සාක්ෂාත් කර ගැනීම සඳහා මෙවලම් සපයයි. ධාවන කාලය.

රස්ට්ගේ ස්වයංක්‍රීය මතක කළමනාකරණය පොයින්ටර් හසුරුවන විට දෝෂ ඉවත් කරන අතර අඩු මට්ටමේ මතක හැසිරවීමකින් පැන නගින ගැටළු වලින් ආරක්ෂා කරයි, එනම් මතක කලාපයකට නිදහස් වූ පසු ප්‍රවේශ වීම, null pointer dereferences, buffer overruns යනාදිය. ව්‍යාපෘතිය මගින් පුස්තකාල බෙදා හැරීම, එකලස් කිරීම සහතික කිරීම සහ පරායත්තතා කළමනාකරණය කිරීම සඳහා පැකේජ කළමනාකරුවෙකු සංවර්ධනය වෙමින් පවතී. ගුවන් භාණ්ඩ, වැඩසටහනට අවශ්‍ය පුස්තකාල එක ක්ලික් එකකින් ලබා ගැනීමට ඔබට ඉඩ සලසයි. පුස්තකාල සත්කාරකත්වය සඳහා ගබඩාවක් සහාය දක්වයි crates.io.

නව නිකුතුවේ නිවේදනයේ පෙළෙහි, රස්ට් සංවර්ධකයින් දේශපාලනයට සම්බන්ධ වූ අතර, මෙම ප්‍රශ්නය වඩාත් වැදගත් බව පෙන්නුම් කරමින්, පොලිස් ප්‍රචණ්ඩත්වයට එරෙහිව විරෝධතාකරුවන් සමඟ සහයෝගීතාවයේ සලකුණක් ලෙස රස්ට් 1.44 හි වෙනස්කම් පිළිබඳ සම්පූර්ණ සමාලෝචනයක් ප්‍රකාශයට පත් කිරීම පැහැදිලිව ප්‍රතික්ෂේප කළේය. තාක්ෂණික දැනුම හුවමාරුවට වඩා. මූලික නවෝත්පාදන:

  • භාණ්ඩ පැකේජ කළමනාකරු "කාගෝ ගස" විධානය ඒකාබද්ධ කරයි, එය ගස් වැනි පරායත්ත ප්‍රස්ථාරයක් පෙන්වයි. එකම පැකේජයේ විවිධ අනුවාදවල පරායත්තතා ඇගයීමට ඔබට ඉඩ සලසන “—අනුපිටපත්” (“භාණ්ඩ ගස -d”) විකල්පය ද එකතු කර ඇත.

    mdbook v0.3.2 (/Users/src/rust/mdbook)
    ├── ඇමෝනියා v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── ලඝු-සටහන v0.4.8
    │ │ │ └── cfg-if v0.1.9
    │ │ ├── mac v0.1.1
    │ │ └── markup5ever v0.9.0
    │ │ ├── ලොගය v0.4.8 (*)
    │ │ ├── phf v0.7.24
    │ │ │ └── phf_shared v0.7.24
    │ │ │ ├── siphasher v0.2.3
    │ │ │ └── unicase v1.4.2
    │ │ │ [ඉදිකිරීම්-යැපීම්] │ │ │ └── version_check v0.1.5
    ...

  • std ("#![no_std]") වෙත බැඳී නැති යෙදුම් සඳහා, අසමමුහුර්ත ක්‍රමලේඛන ශිල්පීය ක්‍රම සඳහා සහය "Async" ශ්‍රිතය, async move { ... } block සහ ".await" ක්‍රියාකරු මත පදනම්ව ක්‍රියාත්මක කෙරේ. අවහිර නොවන හසුරුවන්න ප්රධාන විධාන ප්රවාහය ලිවීම සරල කරන්න.
  • විස්තීරණ මොඩියුල ධුරාවලියේ නිර්වචන යෝජනා ක්‍රමයක් සඳහා සහය විග්‍රහය වෙත එක් කර ඇත. උදාහරණයක් ලෙස, "foo/bar/baz.rs" මොඩියුලය සත්‍ය වශයෙන්ම නොමැති වුවද, පහත වින්‍යාසය දෝෂයක් ඇති නොකරනු ඇත (නිර්මාණය තවමත් සංකේතාත්මකව වලංගු නොවන අතර දෝෂයක් ඇති විය හැක, නමුත් වෙනස්කම් දැක ගත හැකි අතර විග්‍රහ කළ හැක සාර්ව සහ කොන්දේසිගත සම්පාදන මට්ටම):

    #[cfg(FALSE)] mod foo {
    මෝඩ් තීරුව {
    mod baz;
    }
    }

  • rustc සම්පාදකය "-C codegen-units" ධජය වර්ධක ආකාරයෙන් භාවිතා කිරීමේ හැකියාව එක් කර ඇත. කැච්_අන්වින්ඩ් ක්‍රියාත්මක කිරීම නැවත සකස් කර ඇති අතර එමඟින් විසන්ධි කිරීමේ ක්‍රියාවලිය අබල කර ඇත්නම් සහ ව්‍යතිරේකයක් නොදක්වන්නේ නම් එහි කාර්ය සාධන බලපෑමක් ඇති නොවේ.
  • aarch64-unknown-none, aarch64-unknown-none-softfloat, arm64-apple-tvos සහ x86_64-apple-tvos වේදිකා සඳහා XNUMX මට්ටමේ සහය ලබා දී ඇත. තෙවන මට්ටමට මූලික සහාය ඇතුළත් වේ, නමුත් ස්වයංක්‍රීය පරීක්ෂණ සහ නිල ගොඩනැගීම් ප්‍රකාශනයකින් තොරව.
  • API හි නව කොටසක් ස්ථායීකෘත ඇතුළුව ස්ථාවර කාණ්ඩයට මාරු කර ඇත
    PathBuf:: ධාරිතාව සහිත,
    PathBuf:: ධාරිතාව,
    PathBuf::clear,
    PathBuf:: රක්ෂිතය,
    PathBuf::reserve_exact,
    PathBuf::shrink_to_fit,
    {f32|f64}::to_int_unchecked,
    පිරිසැලසුම::align_to,
    පිරිසැලසුම::pad_to_align,
    පිරිසැලසුම:: අරාව සහ
    පිරිසැලසුම :: දිගු කරන්න.

  • සම්මත පුස්තකාලයේ විස්තීරණ කාර්යයන්:
    • නියතයන් වෙනුවට සන්දර්භය තුළ "vec![]" භාවිතා කිරීමට ඉඩ සලසමින්, Vec::new() හි සෘජුවම පිළිබිඹු වන විශේෂ "vec![]" ප්‍රභේදයක් එක් කරන ලදී.
    • ::නොවැරදිය හැකි බවට පරිවර්තනය කිරීම සඳහා ලක්ෂණය ක්‍රියාත්මක කිරීම (impl) එකතු කර ඇත හැෂ්.
    • OsString ස්මාර්ට් පොයින්ටර් ක්‍රියාත්මක කරයි DerefMut и IndexMut, ආපසු එන "&mut OsStr".
    • යුනිකෝඩ් 13 සඳහා සහය එක් කරන ලදී.
    • String තුළ ක්‍රියාත්මක කර ඇත වෙතින්.
    • IoSlice ලක්ෂණය ක්‍රියාත්මක කරයි පිටපතක්.
    • Vec ක්‍රියාත්මක කරන්නේ.
    • proc_macro::LexError fmt:: Display සහ Error ක්‍රියාත්මක කරයි.
  • නියතයන් වෙනුවට ඕනෑම සන්දර්භයක එය භාවිතා කළ හැකිද යන්න තීරණය කරන “const” ගුණාංගය, සියලු නිඛිල වර්ග සඳහා from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes සහ to_ne_bytes ක්‍රමවල භාවිතා වේ.
  • Windows මත GNU වේදිකා සඳහා ".lib" වෙනුවට ".a" ආකෘතියෙන් ස්ථිතික පුස්තකාල ජනනය කිරීම සඳහා සහය එක් කරන ලදී.
  • LLVM සඳහා වන අවම අවශ්‍යතා LLVM අනුවාදය 8 දක්වා ඉහළ නංවා ඇත.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න