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

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

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

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

  • ගොඩ නැගීමේදී සිදුවන අනුපිටපත් දෝෂ සහ අනතුරු ඇඟවීම් ඒකාබද්ධ කිරීමට භාණ්ඩ පැකේජ කළමනාකරුට හැකියාව ඇත. විවිධ පරාමිති සහිත පැකේජයක බහු ගොඩනැගීම් ප්‍රතිඵලයක් වන "භාණ්ඩ පරීක්ෂාව" සහ "භාණ්ඩ පරීක්ෂාව --සියල්ල-ඉලක්ක" වැනි විධාන ක්‍රියාත්මක කරන විට, පරිශීලකයාට දැන් නැවත නැවතත් ගැටලුවක් ඇතිවීමේ සාරාංශයක් පෙන්වනු ලැබේ. එකම දේ නැවත නැවත ගොඩනඟන විට සමාන අනතුරු ඇඟවීම් කිහිපයක්. $ භාණ්ඩ +1.55.0 පරීක්ෂා කිරීම —සියලු ඉලක්ක පරීක්ෂා කිරීම foo v0.1.0 අනතුරු ඇඟවීම: ශ්‍රිතය කිසිවිටෙක භාවිතා නොවේ: 'foo' —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = සටහන: පෙරනිමි අනතුරු ඇඟවීමෙන් '#[අවවාදයයි(dead_code)]' සක්‍රීයයි: 'foo' (lib) අනතුරු ඇඟවීමේ 1ක් ජනනය කරන ලදී: 'foo' (lib test) අනතුරු ඇඟවීමක් 1ක් ජනනය කරන ලදී (අනුපිටපත් 1) dev [unoptimized + debuginfo] ඉලක්කය (ය) තත් 0.84 කින්
  • සම්මත පුස්තකාලයේ පාවෙන ලක්ෂ්‍ය විග්‍රහ කිරීමේ කේතය වේගවත් සහ වඩාත් නිවැරදි Eisel-Lemire ඇල්ගොරිතම භාවිතා කිරීමට ගෙන ගොස් ඇති අතර, එය ඉලක්කම් විශාල සංඛ්‍යාවක් සහිත වටකුරු සහ විග්‍රහ කිරීමේ සංඛ්‍යා සම්බන්ධයෙන් කලින් නිරීක්ෂණය වූ ගැටළු කිහිපයක් විසඳා ඇත.
  • සැකිලි තුළ වසා නොගත් පරාස නියම කිරීමේ හැකියාව ස්ථායි කර ඇත (“X..” යනු X අගයෙන් ආරම්භ වන සහ පූර්ණ සංඛ්‍යා වර්ගයෙහි උපරිම අගයෙන් අවසන් වන පරාසයක් ලෙස අර්ථ දැක්වේ): x u32 ලෙස ගලපන්න { 0 => println! (“ශුන්‍ය!”), 1.. => println!("ධන අංකය!"),}
  • std ::io::ErrorKind මගින් ආවරණය කරන ලද පුළුල් කරන ලද දෝෂ ප්‍රභේද (NotFound සහ WouldBlock වැනි කාණ්ඩවලට දෝෂ වර්ග කරයි). මින් පෙර, පවතින ප්‍රවර්ගවලට නොගැලපෙන දෝෂ ErrorKind::වෙනත් ප්‍රවර්ගයට වැටුණි, එය තෙවන පාර්ශ්ව කේතයේ දෝෂ සඳහාද භාවිතා කරන ලදී. දැනට පවතින කාණ්ඩවලට නොගැලපෙන දෝෂ සඳහා වෙනම අභ්‍යන්තර ප්‍රවර්ගයක් ErrorKind::Uncategorized ඇත, සහ ErrorKind::අනෙකුත් කාණ්ඩය සම්මත පුස්තකාලයේ සිදු නොවන දෝෂ වලට සීමා වේ (io::Error ලබා දෙන සම්මත පුස්තකාල ශ්‍රිතයන් ErrorKind :: වෙනත් කාණ්ඩය භාවිතා නොකරන්න).
  • API හි නව කොටසක් ස්ථායී කාණ්ඩයට ගෙන ගොස් ඇත, ගතිලක්ෂණවල ක්‍රම සහ ක්‍රියාත්මක කිරීම් ස්ථායීකරණය කර ඇත:
    • බැඳී::ක්ලෝන කරන ලදී
    • කාණු::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • සමහරවිටUninit::assume_init_mut
    • සමහරවිටUninit::assume_init_ref
    • සමහරවිට යුනිට්::ලියන්න
    • අරාව:: සිතියම
    • ops::ControlFlow
    • x86::_bittest
    • x86::_bittestandcomplement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • නියතයන් වෙනුවට ඕනෑම සන්දර්භයක භාවිතා කිරීමේ හැකියාව තීරණය කරන “const” ගුණාංගය, str::from_utf8_unchecked ක්‍රමයේ භාවිතා වේ.
  • powerpc64le-unknown-freebsd වේදිකාව සඳහා තුන්වන මට්ටමේ සහය ක්‍රියාත්මක කර ඇත. තුන්වන මට්ටමට මූලික සහාය ඇතුළත් වේ, නමුත් ස්වයංක්‍රීය පරීක්ෂාවකින් තොරව, නිල ගොඩනැගීම් ප්‍රකාශනය කිරීම හෝ කේතය ගොඩනගා ගත හැකිද යන්න පරීක්ෂා කිරීම.

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

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