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

Mozilla ව්‍යාපෘතිය විසින් ආරම්භ කරන ලද, නමුත් දැන් ස්වාධීන ලාභ නොලබන සංවිධානයක් වන Rust Foundation හි අනුග්‍රහය යටතේ සංවර්ධනය කරන ලද සාමාන්‍ය කාර්ය ක්‍රමලේඛන භාෂාව Rust 1.58 නිකුත් කිරීම ප්‍රකාශයට පත් කර ඇත. භාෂාව මතක ආරක්ෂාව කෙරෙහි අවධානය යොමු කරයි, ස්වයංක්‍රීය මතක කළමනාකරණය සපයයි, සහ කසළ එකතු කරන්නෙකු හෝ ධාවන කාලය භාවිතා නොකර ඉහළ කාර්ය සමාන්තරකරණයක් ලබා ගැනීමට මාධ්‍යයන් සපයයි (ධාවන කාලය සම්මත පුස්තකාලයේ මූලික ආරම්භ කිරීම සහ නඩත්තු කිරීම දක්වා අඩු වේ).

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

ප්රධාන නවෝත්පාදන:

  • රේඛා හැඩතල ගැන්වීමේ කොටස් වලදී, අංකය සහ නම අනුව පේළියකට පසුව පැහැදිලිව ලැයිස්තුගත කර ඇති විචල්‍යයන් ආදේශ කිරීමට පෙර පැවති හැකියාවට අමතරව, පේළියට “{අඳුනගන්න}” ප්‍රකාශනය එකතු කිරීමෙන් අත්තනෝමතික හඳුනාගැනීම් ආදේශ කිරීමේ හැකියාව ක්‍රියාත්මක වේ. උදාහරණයක් ලෙස: // පෙර සහය දුන් ඉදිකිරීම්: println!("Hello, {}!", get_person()); println!("හෙලෝ, {0}!", get_person()); println!("හෙලෝ, {පුද්ගලයා}!", පුද්ගලයා = get_person()); // දැන් ඔබට පුද්ගලයාට ඉඩ දෙන්න = get_person(); println!("හෙලෝ, {පුද්ගලයා}!");

    හැඳුනුම්කාරක ආකෘතිකරණ විකල්පයන් තුළ සෘජුවම සඳහන් කළ හැක. ඉඩ (පළල, නිරවද්යතාව) = get_format (); (නම, ලකුණු) සඳහා get_scores() {println!("{name}: {score:width$.precision$}"); }

    නව ආදේශනය "පැනික්!" මැක්‍රෝ හැර, තන්තු ආකෘති නිර්වචනයට සහය දක්වන සියලුම මැක්‍රෝ වල ක්‍රියා කරයි. රස්ට් භාෂාවේ 2015 සහ 2018 අනුවාදවල, සන්ත්‍රාසය!("{ident}") සාමාන්‍ය තන්තුවක් ලෙස සලකනු ලැබේ (රස්ට් 2021 හි ආදේශනය ක්‍රියා කරයි).

  • std:: process:: Windows වේදිකාවේ විධාන ව්‍යුහයේ හැසිරීම වෙනස් කර ඇති අතර එමඟින් විධාන ක්‍රියාත්මක කිරීමේදී, ආරක්ෂක හේතූන් මත, එය තවදුරටත් වත්මන් නාමාවලියෙහි ක්‍රියාත්මක කළ හැකි ගොනු සොයන්නේ නැත. විශ්වාස නොකළ නාමාවලි (CVE-2021-3013) තුළ වැඩසටහන් ක්‍රියාත්මක වන්නේ නම්, එය අනිෂ්ට කේතය ක්‍රියාත්මක කිරීමට භාවිතා කළ හැකි බැවින් වත්මන් නාමාවලිය බැහැර කර ඇත. නව ක්‍රියාත්මක කළ හැකි හඳුනාගැනීමේ තර්කයට රස්ට් නාමාවලි, යෙදුම් නාමාවලිය, වින්ඩෝස් පද්ධති නාමාවලිය සහ PATH පරිසර විචල්‍යයේ දක්වා ඇති නාමාවලි සෙවීම ඇතුළත් වේ.
  • ප්‍රතිලාභ අගය නොසලකා හැරියහොත් අනතුරු ඇඟවීමක් කිරීමට සම්මත පුස්තකාලය "#[අනිවාර්‍යෙන්ම_භාවිතය]" ලෙස සලකුණු කර ඇති ශ්‍රිත සංඛ්‍යාව පුළුල් කර ඇත, එය ශ්‍රිතයක් නව අගයක් ලබා දෙනවාට වඩා අගයන් වෙනස් කරයි යැයි උපකල්පනය කිරීමෙන් සිදුවන දෝෂ හඳුනා ගැනීමට උපකාරී වේ.
  • API හි නව කොටසක් ස්ථායී කාණ්ඩයට ගෙන ගොස් ඇත, ගතිලක්ෂණවල ක්‍රම සහ ක්‍රියාත්මක කිරීම් ස්ථායීකරණය කර ඇත:
    • පාරදත්ත::is_symlink
    • මාර්ගය:: is_symlink
    • {integer}::saturating_div
    • විකල්පය::unwrap_unchecked
    • ප්‍රතිඵලය::unwrap_unchecked
    • ප්‍රතිඵලය::unwrap_err_unchecked
  • නියතයන් වෙනුවට ඕනෑම සන්දර්භයක එය භාවිතා කිරීමේ හැකියාව තීරණය කරන "const" ගුණාංගය ශ්‍රිතවල භාවිතා වේ:
    • කාලය::නව
    • කාල සීමාව:: checked_add
    • කාලය::saturating_add
    • කාලසීමාව::checked_sub
    • කාල සීමාව:: saturating_sub
    • කාලය:: checked_mul
    • කාලසීමාව:: saturating_mul
    • කාලසීමාව::checked_div
  • "const" සන්දර්භය තුළ "*const T" දර්ශකයන් ඉවත් කිරීමට අවසර ඇත.
  • Cargo පැකේජ කළමනාකරු තුළ, rust_version ක්ෂේත්‍රය පැකේජ පාර-දත්ත වෙත එක් කර ඇති අතර, “--message-format” විකල්පය “cargo install” විධානයට එක් කර ඇත.
  • සම්පාදකය CFI (පාලන ප්‍රවාහ අඛණ්ඩතාව) ආරක්ෂණ යාන්ත්‍රණය සඳහා සහය ක්‍රියාත්මක කරයි, එමඟින් එක් එක් වක්‍ර ඇමතුමකට පෙර සාමාන්‍ය ක්‍රියාත්මක කිරීමේ අනුපිළිවෙල (පාලන ප්‍රවාහය) උල්ලංඝනය කිරීමට හේතු විය හැකි නිර්වචනය නොකළ හැසිරීම් සමහරක් හඳුනා ගැනීමට චෙක්පත් එක් කරයි. කාර්යයන් මත මතකයේ ගබඩා කර ඇති පොයින්ටර් වෙනස් කරන සූරාකෑම් භාවිතය.
  • පරීක්ෂණ අතරතුර කේත ආවරණය ඇගයීමට භාවිතා කරන LLVM ආවරණ සංසන්දන ආකෘතියේ 5 සහ 6 අනුවාද සඳහා සම්පාදකයා සහාය එක් කර ඇත.
  • සම්පාදකයේ, LLVM හි අවම අනුවාදය සඳහා අවශ්‍යතා LLVM 12 දක්වා ඉහළ නංවා ඇත.
  • x86_64-unknown-none වේදිකාව සඳහා තෙවන මට්ටමේ සහය ක්‍රියාත්මක කර ඇත. තුන්වන මට්ටමට මූලික සහාය ඇතුළත් වේ, නමුත් ස්වයංක්‍රීය පරීක්ෂාවකින් තොරව, නිල ගොඩනැගීම් ප්‍රකාශනය කිරීම හෝ කේතය ගොඩනගා ගත හැකිද යන්න පරීක්ෂා කිරීම.

මීට අමතරව, Windows 0.30 පුස්තකාල සඳහා රස්ට් නිකුත් කිරීම Microsoft විසින් ප්‍රකාශනය කිරීම අපට සටහන් කළ හැකිය, එමඟින් ඔබට Windows OS සඳහා යෙදුම් සංවර්ධනය කිරීමට Rust භාෂාව භාවිතා කිරීමට ඉඩ සලසයි. කට්ටලයට කූඩ පැකේජ දෙකක් (වින්ඩෝස් සහ වින්ඩෝස්-සිස්) ඇතුළත් වේ, එමඟින් ඔබට රස්ට් වැඩසටහන් වල Win API වෙත ප්‍රවේශ විය හැකිය. API සහාය සඳහා කේතය ගතිකව ජනනය කරනු ලබන්නේ API විස්තර කරන පාර-දත්ත වලින් වන අතර එමඟින් ඔබට පවතින Win API ඇමතුම් සඳහා පමණක් නොව අනාගතයේදී දිස්වන ඇමතුම් සඳහාද සහය ක්‍රියාත්මක කිරීමට ඉඩ සලසයි. නව අනුවාදය UWP (Universal Windows Platform) ඉලක්ක වේදිකාව සඳහා සහය එක් කරන අතර හැන්ඩ්ල් සහ ඩීබග් වර්ග ක්‍රියාත්මක කරයි.

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

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