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

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

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

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

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

  • පරිසරය සඳහා අවශ්‍යතා වැඩි වීම Linux සම්පාදකයේ, භාණ්ඩ පැකේජ කළමනාකරු සහ සම්මත පුස්තකාල libstd හි, Glibc සඳහා අවම අවශ්‍යතා 2.11 අනුවාදයේ සිට 2.17 දක්වා ඉහළ නංවා ඇති අතර කර්නල් Linux 2.6.32 අනුවාදයේ සිට 3.2 දක්වා. සීමා කිරීම් libstd සමඟ ගොඩනගා ඇති Rust යෙදුම් ක්‍රියාත්මක කළ හැකි ඒවා සඳහා ද අදාළ වේ. RHEL 7, SLES 12-SP5 සහ අනෙකුත් බෙදාහැරීම් නව අවශ්‍යතාවලට අනුකූල වේ. Debian 8 සහ Ubuntu 14.04. RHEL 6, SLES 11-SP4 සඳහා සහාය නවත්වනු ඇත, Debian 7 සහ Ubuntu 12.04. පැරණි කර්නලයක් සහිත පරිසරවල රස්ට් මෙවලම් දාමයෙන් සාදන ලද ක්‍රියාත්මක කළ හැකි යෙදුම් භාවිතා කරන්නන් සඳහා Linux, ඔවුන්ගේ පද්ධති උත්ශ්‍රේණි කිරීමට, පැරණි සම්පාදක නිකුතුවල රැඳී සිටීමට හෝ අනුකූලතාව පවත්වා ගැනීම සඳහා අන්තර් ස්ථර සමඟ ඔවුන්ගේම libstd ශාඛාවක් ස්වාධීනව පවත්වාගෙන යාමට යෝජනා කෙරේ.

    පැරණි ඒවාට සහාය අවසන් වීමට හේතු අතර Linuxපැරණි පරිසරයන් සමඟ අනුකූලතාව පවත්වා ගැනීම සඳහා සීමිත සම්පත් -පද්ධති සඳහන් කරයි. LLVM සහ හරස් සම්පාදන මෙවලම් සඳහා වැඩි කරන ලද අනුවාද අවශ්‍යතා ලබා දී ඇති බැවින්, අඛණ්ඩ ඒකාබද්ධ කිරීමේ පද්ධතිය පරීක්ෂා කිරීමේදී පැරණි Glibc සඳහා සහාය සඳහා පැරණි මෙවලම් භාවිතා කිරීම අවශ්‍ය වේ. වැඩි කරන ලද කර්නල් අනුවාද අවශ්‍යතා ඇති වන්නේ පැරණි කර්නල් සමඟ අනුකූලතාව සහතික කිරීම සඳහා අතරමැදියන් නඩත්තු කිරීමේ අවශ්‍යතාවයකින් තොරව libstd හි නව පද්ධති ඇමතුම් භාවිතා කිරීමේ හැකියාව නිසාය.

  • IntoFuture ලක්ෂණය ස්ථායීකරණය කර ඇති අතර, එය IntoIterator ට සමාන වන නමුත්, "for ... in ..." ලූප වෙනුවට ".await" භාවිතා කිරීමෙන් දෙවැන්නෙන් වෙනස් වේ. IntoFuture සමඟ ඒකාබද්ධ වූ විට, ".await" මූල පදය අනාගත ලක්ෂණයක් පමණක් නොව, අනාගතයක් බවට පරිවර්තනය කළ හැකි වෙනත් ඕනෑම වර්ගයක් අපේක්ෂා කළ හැක.
  • මලකඩ-විශ්ලේෂක උපයෝගීතාව රස්ට් නිකුතු සමඟ සපයන ලද උපයෝගිතා එකතුවේ ඇතුළත් වේ. rustup (rustup component add rust-analyzer) භාවිතයෙන් ස්ථාපනය සඳහා උපයෝගීතාව ද පවතී.
  • රස්ට් අනුවාද සහ ගබඩා URL වැනි පැකේජ අතර පොදු ක්ෂේත්‍ර අගයන් අනුපිටපත් කිරීම ඉවත් කිරීම සඳහා Cargo පැකේජ කළමනාකරුට කාර්ය ඉඩ උරුමය ඇතුළත් වේ. ඉලක්ක වේදිකා කිහිපයක් සඳහා එකවර ගොඩනැගීම සඳහා සහය එක් කරන ලදී (දැන් ඔබට “--ඉලක්ක” විකල්පයේ එක් පරාමිතියකට වඩා සඳහන් කළ හැක).
  • API හි නව කොටසක් ස්ථායී කාණ්ඩයට ගෙන ගොස් ඇත, ගතිලක්ෂණවල ක්‍රම සහ ක්‍රියාත්මක කිරීම් ස්ථායීකරණය කර ඇත:
    • අනාගත::ඉන්ටෝ ෆියුචර්
    • num::Zero නොවන*::checked_mul
    • num::NonZero*::checked_pow
    • num::Zero නොවන*::saturating_mul
    • num::NonZero*::saturating_pow
    • num::NonZeroI*::abs
    • num::NonZeroI*::checked_abs
    • num::NonZeroI*::overflowing_abs
    • num::NonZeroI*::saturating_abs
    • num::NonZeroI*::unsigned_abs
    • num::NonZeroI*::wrapping_abs
    • num::NonZeroU*::checked_add
    • num::NonZeroU*:: checked_next_power_of_to
    • num::NonZeroU*::saturating_add
    • os::unix::process::CommandExt::process_group
    • os::windows::fs::FileTypeExt::is_symlink_dir
    • os::windows::fs::FileTypeExt::is_symlink_file
  • C-අනුකූල වර්ග, කලින් std::ffi මොඩියුලයේ ස්ථායීකරණය කර, හරයට සහ alloc පුස්තකාලයට එකතු කර ඇත:
    • core::ffi::CStr
    • core::ffi::FromBytesWithNulError
    • alloc::ffi::CString
    • alloc::ffi::FromVecWithNulError
    • alloc::ffi::IntoStringError
    • alloc::ffi::NulError
  • std::os::raw module හි කලින් ස්ථායීකරනය කරන ලද C වර්ග core::ffi සහ std::ffi මොඩියුල වලට එකතු කර ඇත (උදාහරණයක් ලෙස, c_uint සහ c_ulong වර්ග uint සහ ulong C වර්ග සඳහා යෝජනා කර ඇත):
    • ffi::c_char
    • ffi::c_double
    • ffi::c_float
    • ffi::c_int
    • ffi::c_long
    • ffi::c_longlong
    • ffi::c_schar
    • ffi::c_short
    • ffi::c_uchar
    • ffi::c_uint
    • ffi::c_ulong
    • ffi::c_ulonglong
    • ffi::c_ushort
  • Poll යාන්ත්‍රණය සමඟ භාවිතය සඳහා පහත් මට්ටමේ හසුරුවන්න ස්ථාවර කර ඇත (අනාගතයේදී Pull සහ Pin වැනි පහත් මට්ටමේ ව්‍යුහයන් භාවිතා කිරීම අවශ්‍ය නොවන සරල API එකක් සැපයීමට සැලසුම් කර ඇත):
    • අනාගතය::poll_fn
    • කාර්යය:: සූදානම්!
  • නියතයන් වෙනුවට ඕනෑම සන්දර්භයක එය භාවිතා කිරීමේ හැකියාව තීරණය කරන “const” ගුණාංගය, slice::from_raw_parts ශ්‍රිතයේ භාවිතා වේ.
  • දත්ත වඩාත් සංයුක්තව ගබඩා කිරීම සඳහා, Ipv4Addr, Ipv6Addr, SocketAddrV4 සහ SocketAddrV6 ව්‍යුහයන්ගේ මතක පිරිසැලසුම වෙනස් කර ඇත. ව්‍යුහයන් පහත් මට්ටමේ හැසිරවීම සඳහා std::mem::transmute භාවිතා කරන තනි කූඩ පැකේජ සමඟ ගැළපෙන ගැටලුවක් තිබිය හැක.
  • වේදිකාව සඳහා මලකඩ සම්පාදක ගොඩනැගීමේදී Windows PGO ප්‍රශස්තිකරණයන් (පැතිකඩ-මාර්ගෝපදේශිත ප්‍රශස්තිකරණය) භාවිතා කරන ලද අතර, එමඟින් කේත සම්පාදන කාර්ය සාධනය 10-20% කින් වැඩි කිරීමට හැකි විය.
  • සම්පාදකයා විසින් ඇතැම් ව්‍යුහයන් තුළ භාවිත නොකළ ක්ෂේත්‍ර පිළිබඳ නව අනතුරු ඇඟවීමක් ක්‍රියාත්මක කර ඇත.

මීට අමතරව, gccrs ව්‍යාපෘතිය (GCC Rust) විසින් සකස් කරන ලද සහ GCC වෙත ඇතුළත් කිරීම සඳහා අනුමත කරන ලද Rust භාෂා සම්පාදකයේ විකල්ප ක්‍රියාවට නැංවීමේ තත්ත්ව වාර්තාව ඔබට සටහන් කළ හැක. ඉදිරිපස අනුකලනය කිරීමෙන් පසුව, LLVM වර්ධනයන් භාවිතයෙන් ගොඩනගා ඇති rustc සම්පාදකය ස්ථාපනය කිරීමේ අවශ්‍යතාවයකින් තොරව Rust භාෂාවෙන් වැඩසටහන් සම්පාදනය කිරීමට සම්මත GCC මෙවලම් භාවිතා කළ හැක. සංවර්ධනය මාර්ගයේ පවතින තාක් කල්, සහ අනපේක්ෂිත ගැටළු හැර, රස්ට් ඉදිරිපස ලබන වසරේ මැයි මාසයේදී පැවැත්වීමට නියමිත GCC 13 නිකුතුවට ඒකාබද්ධ කෙරේ. රස්ට් හි GCC 13 ක්‍රියාත්මක කිරීම බීටා තත්ත්‍වයේ පවතිනු ඇත, පෙරනිමියෙන් තවම සබල කර නොමැත.

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

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