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

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

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

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

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

  • ABI මට්ටමේ විවිධ තර්ක වර්ග සහ ශ්‍රිත ප්‍රතිලාභ වර්ගවල ගැළපුම විස්තර කරන ලේඛනවලට වෙනම කොටසක් එක් කර ඇත. පෙර අනුවාද සමඟ සසඳන විට, සමාන ප්‍රමාණය සහ පෙළගැස්ම ඇති "char" සහ "u32" වර්ගවල ABI මට්ටමින් ගැළපුම සහතික කෙරේ.
  • කලින් පැවති "ඕනෑම::type_name::" ඇමතුමට අමතරව ()", "T" පරාමිතියෙහි දක්වා ඇති වර්ගය සඳහා තන්තු විස්තරයක් ලබා දෙයි, "type_name_of_val(&T)" ශ්‍රිතය එක් කර ඇත, ඔබට ඕනෑම නම් නොකළ යොමුවක් මත පදනම්ව වර්ග තොරතුරු ලබා ගැනීමට ඉඩ සලසයි. fn get_iter() -> impl Iterator { [32, 1, 2].into_iter() } fn main() { let iter = get_iter(); iter_name = std:: any::type_name_of_val(&iter); ඉඩ එකතුව: i3 = iter.sum(); println!("{iter_name}` හි එකතුව {sum} වේ."); } ප්‍රතිදානය වන්නේ: 'core::array::iter::IntoIter හි එකතුව ` 32 වේ.
  • API හි නව කොටසක් ස්ථායී කාණ්ඩයට ගෙන ගොස් ඇත, ගතිලක්ෂණවල ක්‍රම සහ ක්‍රියාත්මක කිරීම් ස්ථායීකරණය කර ඇත:
    • චාප::unwrap_or_clone
    • Rc::unwrap_or_clone
    • ප්‍රතිඵලය::පරීක්ෂා කරන්න
    • ප්‍රතිඵලය::inspect_err
    • විකල්පය ::පරීක්ෂා කරන්න
    • වර්ගය_නම_of_val
    • std::hash::{DefaultHasher, RandomState}
    • ptr::{from_ref, from_mut}
    • ptr::addr_eq
  • තුන්වන මට්ටමේ සහය {x86_64,i686}-win7-windows-msvc, aarch64-apple-watchos, arm64e-apple-ios සහ arm64e-apple-darwin වේදිකා සඳහා ක්‍රියාත්මක කර ඇත. තුන්වන මට්ටමට මූලික සහාය ඇතුළත් වේ, නමුත් ස්වයංක්‍රීය පරීක්ෂාවකින් තොරව, නිල ගොඩනැගීම් ප්‍රකාශනය කිරීම හෝ කේතය ගොඩනගා ගත හැකිද යන්න පරීක්ෂා කිරීම.

මීට අමතරව, Rust භාෂාවෙන් ලියා පරිශීලක අවකාශයේ ක්‍රියාත්මක කරන ලද පර්යේෂණාත්මක කාර්ය කාලසටහන් scx_rustland ප්‍රදර්ශනය කිරීම අපට සටහන් කළ හැක (කර්නලයේ සිට පරිශීලක අවකාශයට කාර්ය කාලසටහන් තාර්කිකත්වය මාරු කිරීම BPF භාවිතයෙන් sched-ext මෙවලම් කට්ටලය භාවිතයෙන් ක්‍රියාත්මක වේ). CPU-තීව්‍ර කාර්යයන්ට වඩා අන්තර්ක්‍රියාකාරී කාර්යයන්හි ප්‍රමුඛතාවය වැඩි කිරීමට උපලේඛකයා ප්‍රශස්ත කර ඇත. උදාහරණයක් ලෙස, කර්නලය ගොඩනැගීමට සමගාමීව ක්‍රීඩා යෙදුමක් දියත් කිරීමේ පරීක්ෂණයකදී, scx_rustland උපලේඛනය සම්මත EEVDF උපලේඛනය භාවිතා කරන විට වඩා ක්‍රීඩාවේ ඉහළ FPS ලබා ගැනීමට අපට ඉඩ සලසයි.

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

DDoS ආරක්ෂාව, VPS VDS සේවාදායකයන් සහිත අඩවි සඳහා විශ්වාසදායක සත්කාරකත්වය මිලදී ගන්න 🔥 DDoS ආරක්ෂාව, VPS VDS සේවාදායකයන් සහිත විශ්වාසදායක වෙබ් අඩවි සත්කාරකත්වය මිලදී ගන්න | ProHoster