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

පළ කළා පද්ධති ක්‍රමලේඛන භාෂා නිකුතුව මලකඩ 1.37, Mozilla ව්යාපෘතිය විසින් ආරම්භ කරන ලදී. භාෂාව මතක ආරක්ෂාව කෙරෙහි අවධානය යොමු කරයි, ස්වයංක්‍රීය මතක කළමනාකරණය සපයයි, සහ කසළ එකතු කරන්නෙකු හෝ ධාවන කාලය භාවිතා නොකර ඉහළ කාර්ය සමාන්තරකරණයක් ලබා ගැනීමට මාධ්‍යයක් සපයයි.

රස්ට්ගේ ස්වයංක්‍රීය මතක කළමනාකරණය සංවර්ධකයා පොයින්ටර් උපාමාරු වලින් නිදහස් කරන අතර නිදහස් පසු මතක ප්‍රවේශයන්, null pointer dereferences, buffer overruns වැනි පහත් මට්ටමේ මතක හැසිරවීම් වලින් පැන නගින ගැටළු වලින් ආරක්ෂා කරයි. ව්‍යාපෘතිය මගින් පුස්තකාල බෙදා හැරීම, එකලස් කිරීම සහතික කිරීම සහ පරායත්තතා කළමනාකරණය කිරීම සඳහා පැකේජ කළමනාකරුවෙකු සංවර්ධනය වෙමින් පවතී. ගුවන් භාණ්ඩ, වැඩසටහනට අවශ්‍ය පුස්තකාල එක ක්ලික් එකකින් ලබා ගැනීමට ඔබට ඉඩ සලසයි. පුස්තකාල සත්කාරකත්වය සඳහා ගබඩාවක් සහාය දක්වයි crates.io.

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

  • rustc සම්පාදකයේ සපයා ඇත කේත පැතිකඩ ප්‍රතිඵල මත පදනම්ව ප්‍රශස්තකරණය සඳහා සහාය (PGO, පැතිකඩ-මාර්ගෝපදේශ ප්‍රශස්තකරණය),
    වැඩසටහන ක්‍රියාත්මක කිරීමේදී රැස් කරන ලද සංඛ්‍යාලේඛන විශ්ලේෂණය මත පදනම්ව වඩාත් ප්‍රශස්ත කේතයක් ජනනය කිරීමට ඔබට ඉඩ සලසයි. පැතිකඩක් උත්පාදනය කිරීම සඳහා, "-C profile-genrate" ධජය සපයනු ලබන අතර, එකලස් කිරීමේදී පැතිකඩ භාවිතා කිරීම සඳහා - "-C පැතිකඩ-භාවිතය" (මුලදී, වැඩසටහන පළමු ධජය සමඟ එකලස් කර, වටා ධාවනය කර, නිර්මාණය කිරීමෙන් පසුව. පැතිකඩ, එය දෙවන ධජය සමඟ නැවත එකතු කර ඇත);

  • කොන්සෝල යෙදුම් ඉක්මනින් පරීක්ෂා කිරීම සඳහා භාවිතා කිරීමට පහසු “කාගෝ ධාවන” විධානය ක්‍රියාත්මක කරන විට, පැකේජයේ ක්‍රියාත්මක කළ හැකි ගොනු කිහිපයක් තිබේ නම්, ක්‍රියාත්මක කිරීමට ක්‍රියාත්මක කළ හැකි ගොනුවක් ස්වයංක්‍රීයව තේරීමේ හැකියාව එක් කර ඇත. ක්‍රියාත්මක කළ යුතු පෙරනිමි ගොනුව පැකේජ පරාමිතීන් සහිත [පැකේජය] කොටසේ පෙරනිමි ධාවන විධානය හරහා තීරණය කරනු ලැබේ, එමඟින් ඔබ “භාණ්ඩ ධාවනය” ධාවනය කරන සෑම අවස්ථාවකම “-bin” ධජය හරහා ගොනු නාමය පැහැදිලිව සඳහන් කිරීම වළක්වා ගත හැකිය;
  • "භාණ්ඩ වෙළෙන්දා" විධානය, කලින් සපයන ලදී වෙනම පැකේජය. විධානය මඟින් ඔබට පරායත්තතාවල දේශීය පිටපතක් සමඟ වැඩ සංවිධානය කිරීමට ඉඩ සලසයි - “භාණ්ඩ වෙළෙන්දා” ක්‍රියාත්මක කිරීමෙන් පසු, ව්‍යාපෘතියේ පරායත්තතා වල සියලුම ප්‍රභව කේත crates.io වෙතින් දේශීය නාමාවලියකට බාගත කරනු ලැබේ, පසුව කූඩවලට ප්‍රවේශ නොවී වැඩ සඳහා භාවිතා කළ හැකිය. io (විධානය ක්‍රියාත්මක කිරීමෙන් පසු, ගොඩනැගීම් සඳහා නාමාවලිය භාවිතා කිරීමට වින්‍යාසය වෙනස් කිරීම සඳහා ඉඟියක් පෙන්වනු ලැබේ). නිකුතුව සමඟ එක් ලේඛනාගාරයක සියලුම පරායත්තතා ඇසුරුම් කිරීම සමඟ rustc සම්පාදක බෙදා හැරීම සංවිධානය කිරීමට මෙම විශේෂාංගය දැනටමත් භාවිතා කර ඇත;
  • වර්ග අන්වර්ථ භාවිතා කරමින් enum විකල්ප වෙත සබැඳි සෑදිය හැක (උදාහරණයක් ලෙස, "fn increment_or_zero(x: ByteOption) ශ්‍රිතයේ ඔබට "ByteOption::None => 0" සඳහන් කළ හැක), ගණනය කිරීමේ ඉදිකිරීම් වර්ගය (‹ MyType‹.. ››::option => N) හෝ ස්වයං ප්‍රවේශයන් (c &self බ්ලොක් වල ඔබට "Self::Quarter => 25" සඳහන් කළ හැක);
  • මැක්‍රෝවල නම් නොකළ නියතයන් නිර්මාණය කිරීමේ හැකියාව එක් කරන ලදී. "const" හි මූලද්‍රව්‍ය නාමය නිර්වචනය කිරීම වෙනුවට, ඔබට දැන් "_" අක්ෂරය භාවිතා කර නැවත නැවත සිදු නොවන හඳුනාගැනීමක් ගතිකව තේරීමට, මැක්‍රෝව නැවත ඇමතීමේදී නම් ගැටුම් මඟහරවා ගත හැක;
  • පෙළගැස්ම සමඟ AlignN‹T› ව්‍යුහයක් අර්ථ දැක්වීමට සමාන වාක්‍ය ඛණ්ඩයක් භාවිතා කරමින් enums සමඟ "#[repr(align(N))" ගුණාංගය භාවිතා කිරීමේ හැකියාව එකතු කර පසුව AlignN‹MyEnum› භාවිතා කිරීම;
  • API හි නව කොටසක් BufReader::buffer, BufWriter::buffer, සහ ඇතුළුව ස්ථායී කාණ්ඩයට ගෙන ගොස් ඇත.
    කොටුව::from_mut,
    සෛලය:: සෛල_පෙත්තක් ලෙස,
    DoubleEndedIterator::nth_back,
    විකල්පය::xor
    {i,u}{8,16,64,128,size}::reverse_bits, එතීම::reverse_bits සහ
    පෙත්තක්::පිටපත්_ඇතුළත.

ඊට අමතරව, එය සටහන් කළ හැකිය පරීක්ෂණ ආරම්භය ව්යාපෘතියකි Async-std, එය රස්ට් සම්මත පුස්තකාලයේ අසමමුහුර්ත ප්‍රභේදයක් ඉදිරිපත් කරයි (එස්ටීඩී පුස්තකාලයේ තොටක්, එහි සියලුම අතුරුමුහුණත් අසමමුහුර්ත අනුවාදයකින් පිරිනමනු ලබන අතර අසයින්ක්/වේයිට් සින්ටැක්ස් සමඟ භාවිතයට සූදානම්ය).

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

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