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

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

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

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

  • ලක්ෂණ FnOnce, FnMut и Fn ගොඩ-බෙදාගත් සඳහා ක්රියාත්මක කොටු වර්ග Box‹dyn FnOnce›, Box‹dyn FnMut› සහ Box‹dyn Fn›;
  • එකතු කරන ලදී අවස්ථාව අනාරක්ෂිත ක්‍රියාකාරී දර්ශක වෙත වාත්තු කිරීම වසා දැමීම (අනාරක්ෂිත fn);
  • මැක්‍රෝ "dbg!" ලෙස හැඳින්වීමේ හැකියාව ක්‍රියාත්මක කරන ලදී. කොන්දේසි සහිත ප්‍රකාශනවල ක්‍රියාකාරිත්වය නිදොස් කිරීම සඳහා පහසු වන විචල්‍යය පරීක්ෂා නොකර stderr හි ගොනු නාමය සහ රේඛා අංකය ප්‍රදර්ශනය කිරීම සඳහා තර්ක නොමැතිව;
  • F32 සහ f64 යන පාවෙන ලක්ෂ්‍ය වර්ග වලට ක්‍රමය එකතු කරන ලදීපිටපත් අත්සන් කිරීම»එක් අංකයකින් තවත් අංකයකට අක්ෂරයක් පිටපත් කිරීමට;
  • එකතු කරන ලද ක්රමය "අඩංගු වේ“, නිශ්චිත අගය පරාසය තුළ තිබේ දැයි පරීක්ෂා කිරීමට ඔබට ඉඩ සලසයි;
  • එකතු කරන ලද ක්රමය Ref:Cell:map_split, ණයට ගත් දත්තවල විවිධ සංරචක සඳහා ණයට ගත් RefCell අගය පරාවර්තනය කිරීමට සහ වෙන් කිරීමට ඔබට ඉඩ සලසයි;
  • එකතු කරන ලද ක්රමය RefCell::replace_with වත්මන් RefCell අගය ප්‍රතිස්ථාපනය කිරීමට සහ එහි ප්‍රතිඵලය ලෙස පැරණි අගය නැවත ලබා දීමට;
  • එකතු කරන ලද ක්රමය ptr::hash ආමන්ත්‍රණය කළ අගයට වඩා ලිපිනයක් මඟින් දර්ශකයක් හෝ යොමුවක් හැෂ් කිරීමට;
  • එකතු කරන ලද ක්රමය විකල්පය ::පිටපත් කරන ලදී Option‹&T› හෝ Option‹&mut T› විකල්පවල අන්තර්ගතය පිටපත් කිරීමට;
  • API හි නව කොටසක් ස්ථායී කර ඇති ක්‍රම ඇතුළුව ස්ථායී කාණ්ඩයට මාරු කර ඇත
    f32::පිටපත් ලකුණ,
    f64::පිටපත් ලකුණ,
    RefCell::replace_with,
    RefCell::map_split,
    ptr::hash,
    පරාසය::අඩංගු,
    පරාසය සිට:: අඩංගු,
    පරාසයට::අඩංගු,
    පරාසය ඇතුළත්:: අඩංගු,
    RangeToInclusive:: අඩංගු සහ
    විකල්පය:: පිටපත් කරන ලද;

  • ක්ලිපි (ලින්ටර්) වෙත drop_bounds පරීක්ෂාව එක් කරන ලදි, එය ශ්‍රිතයට “T: Drop” බන්ධනයක් එක් කරන විට ක්‍රියාරම්භ කරයි;
  • සම්පාදකය නව ඉලක්ක වේදිකාවක් සඳහා සහය එක් කර ඇත
    wasm32-unknown-wasi (අතුරු මුහුණත මම එහෙමද බ්රවුසරයෙන් පිටත WebAssembly භාවිතා කිරීමට);

  • Rust මෙවලම් කට්ටලය සම්මත C පුස්තකාලය Musl මත පදනම්ව බෙදාහැරීම් සඳහා අනුවර්තනය කර ඇත.

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

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