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

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

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

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

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

  • Generic Associated Types (GAT) සඳහා සහය එක් කර ඇති අතර, එමඟින් වෙනත් වර්ගයකට සම්බන්ධ ආකාරයේ අන්වර්ථයන් නිර්මාණය කිරීමට හැකි වන අතර, වර්ග නිර්මාපකයන්ට ගති ලක්ෂණ සමඟ සම්බන්ධ වීමට ඉඩ සලසයි. ලක්ෂණ Foo {type Bar<'x>; }
  • "let … else" ප්‍රකාශනය ක්‍රියාවට නංවා ඇත, එමඟින් ඔබට "let" ප්‍රකාශනය තුළ කෙලින්ම රටා ගැළපෙන තත්ත්වය පරීක්ෂා කිරීමට සහ රටාව නොගැලපේ නම් අත්තනෝමතික කේතය ක්‍රියාත්මක කිරීමට ඉඩ සලසයි. ඉඩ දෙන්න Ok(count) = u64::from_str(count_str) else {panic!("නිඛිල විග්‍රහ කළ නොහැක: '{count_str}'"); };
  • බ්ලොක් එකේ නම (ලේබලය) භාවිතයෙන් අකාලයේ නම් කරන ලද බ්ලොක් වලින් පිටවීමට විරාම ප්‍රකාශය භාවිතා කිරීමට අවසර ඇත. ඉඩ ප්‍රතිඵලය = 'අවහිර කරන්න: {do_thing(); කොන්දේසි_නොට්_මෙට්() {බ්ලොක් 1; } කරන්න_ඊළඟ_දේ(); කොන්දේසිය_නොට්_මෙට්() {බ්ලොක් 2; } do_last_thing(); 3};
  • Linux සඳහා, දෝශ නිරාකරණ තොරතුරු වෙන වෙනම සුරැකීමේ හැකියාව එක් කරන ලදී (split-debuginfo), කලින් ලබා ගත හැකි වූයේ macOS වේදිකාව සඳහා පමණි. "-Csplit-debuginfo=unpacked" විකල්පය සඳහන් කිරීමෙන් debuginfo දත්ත DWARF ආකෘතියෙන් ".dwo" දිගුවක් සහිත වෙනම වස්තු ගොනු කිහිපයකට සුරකිනු ඇත. "-Csplit-debuginfo=packed" සඳහන් කිරීමෙන් ව්‍යාපෘතිය සඳහා සියලුම debuginfo දත්ත ඇතුළත් ".dwp" ආකෘතියෙන් තනි පැකේජයක් සාදනු ඇත. ELF වස්තු වල .debug_* කොටසට debuginfo සෘජුවම ඒකාබද්ධ කිරීමට, ඔබට "-Csplit-debuginfo=off" විකල්පය භාවිතා කළ හැක.
  • API හි නව කොටසක් ස්ථායී කාණ්ඩයට ගෙන ගොස් ඇත, ගතිලක්ෂණවල ක්‍රම සහ ක්‍රියාත්මක කිරීම් ස්ථායීකරණය කර ඇත:
    • std::backtrace::backtrace
    • බැඳී::as_ref
    • std::io::read_to_string
    • <*const T>::cast_mut
    • <*mut T>::cast_const
  • නියතයන් වෙනුවට ඕනෑම සන්දර්භයක එය භාවිතා කිරීමේ හැකියාව තීරණය කරන "const" ගුණාංගය <*const T&>::offset_from සහ <*mut T>::offset_from ශ්‍රිතවල භාවිතා වේ.
  • LSP (භාෂා සේවාදායක ප්‍රොටෝකෝලය) ප්‍රොටෝකෝලය ක්‍රියාත්මක කිරීම rust-analyzer වෙත මාරු කිරීමේ අවසන් අදියරේ කොටසක් ලෙස, Rust Language Server (RLS) යල් පැන ගිය ක්‍රියාත්මක කිරීම මලකඩ භාවිතා කිරීමට මාරු වීමට යෝජනා කරන අනතුරු ඇඟවීමක් නිකුත් කරන stub සේවාදායකයක් සමඟ ප්‍රතිස්ථාපනය කර ඇත. - විශ්ලේෂකය.
  • සම්පාදනය කිරීමේදී, MIR අතරමැදි කේතයේ පේළිගත යෙදවීම සඳහා සහය සක්‍රීය කර ඇති අතර, සාමාන්‍ය කූඩ පැකේජ සම්පාදනය 3-10% කින් වේගවත් කරයි.
  • නියමිත ගොඩනැගීම් වේගවත් කිරීම සඳහා, භාණ්ඩ පැකේජ කළමනාකරු පෝලිමේ රැඳී සිටින රැකියා වර්ග කිරීම සපයයි.

මීට අමතරව, මෝටර් රථ තොරතුරු පද්ධති සඳහා සංරචක සංවර්ධනය කිරීම සඳහා Volvo හි රස්ට් භාෂාව භාවිතා කිරීම පිළිබඳ සම්මුඛ සාකච්ඡාවක් සටහන් කළ හැකිය. Rust හි පවතින සහ පරීක්ෂා කරන ලද කේතය නැවත ලිවීමට සැලසුම් නොමැත, නමුත් නව කේතය සඳහා, Rust යනු අඩු වියදමකින් ගුණාත්මකභාවය වැඩි දියුණු කිරීම සඳහා වඩාත් කැමති විකල්පයකි. AUTOSAR (AUTomotive Open System architecture) සහ SAE (මෝටර් රථ ඉංජිනේරුවන්ගේ සංගමය) යන මෝටර් රථ සංගම්වල මලකඩ ආශ්‍රිත ක්‍රියාකාරී කණ්ඩායම් ද නිර්මාණය කර ඇත.

මීට අමතරව, Google හි ඉංජිනේරු අංශයේ VP, David Kleidermacher, ගුප්තකේතන යතුරු කළමනාකරණය කිරීමට ඇන්ඩ්‍රොයිඩ් වේදිකාවේ භාවිතා කරන කේතයේ රස්ට් පරිවර්තනය ගැන මෙන්ම, HTTPS ප්‍රොටෝකෝලය හරහා DNS ක්‍රියාත්මක කිරීමේදී රස්ට් භාවිතා කිරීම ගැන කතා කළේය. UWB- චිප්ස් (Ultra-Wideband) සහ Tensor G2 චිපයට සම්බන්ධ අථත්‍යකරණ රාමුව තුළ (Android Virtualization Framework). ඇන්ඩ්‍රොයිඩ් සඳහා, බ්ලූටූත් සහ වයි-ෆයි සඳහා නව අට්ටි ද සංවර්ධනය වෙමින් පවතින අතර ඒවා රස්ට් තුළ නැවත ලියා ඇත. සාමාන්‍ය උපාය මාර්ගය වන්නේ ප්‍රථමයෙන් වඩාත් අනාරක්ෂිත සහ අත්‍යවශ්‍ය මෘදුකාංග සංරචක රස්ට් වෙත ගෙන යාමෙන් සහ පසුව ඒවා හා සම්බන්ධ අනෙකුත් උප පද්ධති වෙත ව්‍යාප්ත කිරීමෙන් ක්‍රමානුකූලව ආරක්ෂාව වැඩි කිරීමයි. පසුගිය වසරේ, ඇන්ඩ්‍රොයිඩ් වේදිකාවේ සංවර්ධනය සඳහා අවසර දී ඇති භාෂා ලැයිස්තුවට රස්ට් ඇතුළත් විය.

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

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