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

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

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

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

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

  • Future::Output සමඟ අසමමුහුර්ත ශ්‍රිත සඳහා, ආපසු ලැබෙන අගය නොසලකා හැරියහොත් අනතුරු ඇඟවීමක් ඇතුළත් "#[අනිවාර්‍යෙන්ම_භාවිතය]" අනුසටහන් සඳහන් කිරීමට දැන් හැකියාව ඇත, එය ශ්‍රිතය අගයන් වෙනස් කරනු ඇතැයි යන උපකල්පනය නිසා ඇති වන දෝෂ හඳුනා ගැනීමට උපකාරී වේ. නව අගයක් ආපසු ලබා දෙනවා වෙනුවට. #[අනිවාර්‍යයෙන්ම_භාවිතය] async fn bar() -> u32 {0 } async fn caller() {bar().await; } අවවාදයයි: අනාගතයේ භාවිතා නොකළ ප්‍රතිදානය `බාර්` මගින් ආපසු ලබා දෙන අතර එය භාවිතා කළ යුතුය —> src/lib.rs:5:5 | 5 | bar().wait; | ^^^^^^^^^^^^ | = සටහන: පෙරනිමියෙන් `#[අවවාදයයි (භාවිතා නොකළ_මූස්ට්_භාවිතය)]`
  • FIFO පෝලිම් ක්‍රියාත්මක කිරීම std::sync::mpsc (බහු-නිෂ්පාදක තනි-පාරිභෝගික) යාවත්කාලීන කර ඇත, එය පෙර API පවත්වා ගනිමින් crossbeam-channel මොඩියුලය භාවිතා කිරීමට මාරු කර ඇත. නව ක්‍රියාත්මක කිරීම ගැටළු ගණනාවක් විසඳීම, ඉහළ කාර්ය සාධනය සහ සරල කේත නඩත්තු කිරීම මගින් කැපී පෙනේ.
  • API හි නව කොටසක් ස්ථායී කාණ්ඩයට ගෙන ගොස් ඇත, ගතිලක්ෂණවල ක්‍රම සහ ක්‍රියාත්මක කිරීම් ස්ථායීකරණය කර ඇත:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • Zero නොවන*::BITS
  • නියතයන් වෙනුවට ඕනෑම සන්දර්භයක එය භාවිතා කිරීමේ හැකියාව තීරණය කරන "const" ගුණාංගය ශ්‍රිතවල භාවිතා වේ:
    • char::from_u32
    • char::from_digit
    • char::to_digit
    • core::char::from_u32
    • core::char::from_digit
  • Linux kernel (linuxkernel) හි Rust භාවිතා කිරීම සඳහා මෙන්ම Sony PlayStation 1 (mipsel-sony-psx), PowerPC with AIX (powerpc64-ibm-aix), QNX Neutrino RTOS ( aarch64-unknown-nto-) වේදිකා qnx710, x86_64-pc-nto-qnx710). තුන්වන මට්ටමට මූලික සහාය ඇතුළත් වේ, නමුත් ස්වයංක්‍රීය පරීක්ෂාවකින් තොරව, නිල ගොඩනැගීම් ප්‍රකාශනය කිරීම හෝ කේතය ගොඩනැගිය හැකිද යන්න පරීක්ෂා කිරීම.

මීට අමතරව, AArch64 ගෘහ නිර්මාණ ශිල්පය මත පදනම් වූ පද්ධති සඳහා එකලස් කරන ලද ධාවක සහ ලිනක්ස් කර්නල් මොඩියුල සංවර්ධනය කිරීමට රස්ට් භාෂාව භාවිතා කිරීමට ඉඩ සලසන පැච් ARM මගින් ප්‍රකාශනය කිරීම අපට සටහන් කළ හැකිය.

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

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