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

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

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

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

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

  • Cargo පැකේජ කළමනාකරු සහ crates.io ගබඩාව ස්පාර්ස් ප්‍රොටෝකෝලය සඳහා ස්ථාවර සහාය ලබා දී ඇත, එය ගබඩාවේ පවතින සියලුම පැකේජවල පවතින අනුවාද පිළිබිඹු කරන දර්ශකයක් සමඟ වැඩ කිරීමේ නව ක්‍රමයක් නිර්වචනය කරයි. නව ප්‍රොටෝකෝලය මඟින් ඔබට crates.io සමඟ වැඩ කිරීමේ වේගය සැලකිය යුතු ලෙස වැඩි කිරීමට සහ ගබඩාවේ ඇති පැකේජ ගණන තවදුරටත් වර්ධනය වීමත් සමඟ පරිමාණ ගැටළු විසඳීමට ඉඩ සලසයි.

    සම්පූර්ණ දර්ශකයක් බාගැනීමෙන් ඇති වන ප්‍රමාදයන් අවම කිරීම සඳහා, Git භාවිතයෙන් දර්ශකය වෙත ප්‍රවේශ වීම වෙනුවට Sparse යනු යම් ව්‍යාපෘතියක පරායත්තතා ආවරණය වන පරිදි අවශ්‍ය දර්ශක දත්ත පමණක් HTTPS හරහා සෘජුවම බාගත කිරීමයි. නව සේවාවක්, index.crates.io, දර්ශක දත්ත සැපයීම සඳහා භාවිතා වේ. පෙරනිමියෙන්, නව ප්‍රොටෝකෝලය රස්ට් 1.70 ශාඛාවේ භාවිතා කිරීමට සැලසුම් කර ඇති අතර, ඊට පෙර, එය සක්‍රීය කිරීමට, ඔබට "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" පරිසර විචල්‍යය සැකසිය හැකිය, නැතහොත් "[registries" වෙත 'protocol =' පරාමිතිය එක් කරන්න. crates-io]" .cargo/config.toml ගොනුවේ කොටස 'sparse'.

  • “පින්!” මැක්‍රෝ එකතු කරන ලද අතර, එය “ටී” ප්‍රකාශයෙන් එහි ප්‍රදේශයේ ස්ථානීය ඇමුණුම සමඟින් Pin<&mut T> ව්‍යුහයක් නිර්මාණය කිරීමට ඔබට ඉඩ සලසයි (කොටුව:: පින් මෙන් නොව, එය ගොඩට මතකය වෙන් නොකරයි, නමුත් බන්ධනය කරයි. තොග මට්ටමින්).
  • සම්මත විභේදන පැකේජය භාවිතා කරන විට භාවිතා කරන පෙරනිමි මතක වෙන් කිරීමේ දෝෂ හසුරුවන්නක් යෝජනා කර ඇත. alloc (std නොමැතිව) පමණක් සක්‍රීය කරන යෙදුම් මතකය වෙන් කිරීම අසාර්ථක වූ විට දැන් “panic!” හසුරුවන්නා ලෙස හඳුන්වනු ඇත, එය විකල්ප වශයෙන් “#[panic_handler]” භාවිතයෙන් බාධා කළ හැක. std පුස්තකාලය භාවිතා කරන වැඩසටහන් stderr වෙත දෝෂ තොරතුරු මුද්‍රණය කර බිඳ වැටීම දිගටම සිදු කරයි.
  • API හි නව කොටසක් ස්ථායී කාණ්ඩයට ගෙන ගොස් ඇත, ගතිලක්ෂණවල ක්‍රම සහ ක්‍රියාත්මක කිරීම් ස්ථායීකරණය කර ඇත:
    • {core,std}::pin::pin!
    • impl වෙතින් {f32,f64} සඳහා
    • std::path::MAIN_SEPARATOR_STR
    • PathBuf සඳහා Impl DerefMut
  • නියතයන් වෙනුවට ඕනෑම සන්දර්භයක එය භාවිතා කිරීමේ හැකියාව තීරණය කරන "const" ගුණාංගය VecDeque::new ශ්‍රිතයේ භාවිතා වේ.
  • Android වේදිකාවේ වැඩ කිරීමට, අවම වශයෙන් NDK r25 (API 19) දැන් අවශ්‍ය වේ, i.e. අවම සහය දක්වන Android අනුවාදය 4.4 (KitKat) දක්වා ඉහළ නංවා ඇත.
  • Sony PlayStation Vita වේදිකාව (armv7-sony-vita-newlibeabihf) සඳහා තුන්වන මට්ටමේ සහාය ක්‍රියාත්මක කර ඇත. තුන්වන මට්ටමට මූලික සහාය ඇතුළත් වේ, නමුත් ස්වයංක්‍රීය පරීක්ෂාවකින් තොරව, නිල ගොඩනැගීම් ප්‍රකාශනය කිරීම හෝ කේතය ගොඩනැගිය හැකිද යන්න පරීක්ෂා කිරීම.

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

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