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

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

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

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

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

  • rustc සම්පාදකයෙහි ස්ථායීකෘත LLVM-පදනම් වූ පද්ධතියක් ඇත. එකලස් කිරීමේදී ආවරණ දත්ත සක්රිය කිරීම සඳහා, ඔබ "-Cinstrument-coverage" ධජය භාවිතා කළ යුතුය, උදාහරණයක් ලෙස, "RUSTFLAGS=" -C උපකරණ-ආවරණ" භාණ්ඩ ගොඩ නැගීම" විධානය සමඟ එකලස් කිරීම ආරම්භ කරන්න. මෙලෙස සම්පාදනය කරන ලද ක්‍රියාත්මක කළ හැකි ගොනුව ධාවනය කිරීමෙන් පසු, default.profraw ගොනුව වත්මන් නාමාවලියෙහි සුරැකෙනු ඇත, එය සැකසීම සඳහා ඔබට llvm-tools-preview සංරචකයෙන් llvm-profdata උපයෝගීතාව භාවිතා කළ හැක. llvm-profdata මඟින් සැකසූ ප්‍රතිදානය පසුව llvm-cov වෙත විවරණ කේත ආවරණ වාර්තාවක් උත්පාදනය කළ හැක. ප්‍රභව කේතයට ඇති සබැඳිය පිළිබඳ තොරතුරු ලබාගෙන ඇත්තේ පරීක්‍ෂා කරන ක්‍රියාත්මක කළ හැකි ගොනුවෙන් වන අතර, ආවරණ කවුන්ටර සහ කේතය අතර සම්බන්ධතාවය පිළිබඳ අවශ්‍ය දත්ත ඇතුළත් වේ. 1| 1|fn ප්‍රධාන() { 2| 1| println!("හෙලෝ, ලෝකය!"); 3| 1|}
  • භාණ්ඩ පැකේජ කළමණාකරු තුළ, "-ටයිමිං" ධජය සඳහා සහය ස්ථාවර කර ඇති අතර, ගොඩනැගීමේ ප්‍රගතිය සහ එක් එක් පියවරේ ක්‍රියාත්මක කිරීමේ කාලය පිළිබඳ සවිස්තර වාර්තාවක් ජනනය කිරීම ඇතුළත් වේ. එකලස් කිරීමේ ක්‍රියාවලියේ කාර්ය සාධනය ප්‍රශස්ත කිරීම සඳහා වාර්තාව ප්‍රයෝජනවත් විය හැකිය.
  • භාණ්ඩ පැකේජ කළමනාකරු විසින් කොන්දේසිගත සම්පාදනය කිරීමේ යාන්ත්‍රණය සහ විකල්ප පරායත්තතා තෝරාගැනීමේ යාන්ත්‍රණය සඳහා නව වාක්‍ය ඛණ්ඩයක් ඉදිරිපත් කරයි, [විශේෂාංග] කොටසේ නම් කරන ලද ගුණාංග ලැයිස්තුවක් ලැයිස්තුගත කිරීමෙන් Cargo.toml ගොනුව තුළ වින්‍යාස කර පැකේජ ගොඩනැගීමේදී ගුණාංග සක්‍රීය කිරීමෙන් සක්‍රිය කර ඇත. "--විශේෂාංග" ධජය භාවිතා කරමින්. නව අනුවාදය වෙනම නාම අවකාශයන් සහ දුර්වල පරායත්තතා සඳහා සහය එක් කරයි.

    පළමු අවස්ථාවෙහිදී, මෙම පරායත්තතාවය විශේෂාංගයක් ලෙස ව්‍යංගයෙන් නිරූපණය නොකර විකල්ප පරායත්තතාවයකට පැහැදිලිව සම්බන්ධ කිරීමට “[විශේෂාංග]” කොටස තුළ “dep:” උපසර්ගය සහිත මූලද්‍රව්‍ය භාවිතා කළ හැකිය. දෙවන අවස්ථාවේදී, "?" ලකුණ සමඟ ලකුණු කිරීම සඳහා සහාය එකතු කර ඇත. ("පැකේජය-නම?/විශේෂාංග-නම") විකල්ප පරායත්තයන් ඇතුළත් කළ යුතු අතර, ලබා දී ඇති විකල්ප පරායත්තතාවය වෙනත් දේපලක් ඇතුළත් වන්නේ නම් පමණි. උදාහරණයක් ලෙස, පහත උදාහරණයේ, serde ගුණාංගය සක්‍රීය කිරීම "serde" පරායත්තතාවය මෙන්ම "rgb" පරායත්තතාවය සඳහා "serde" ගුණාංගය සක්‍රීය කරයි, නමුත් "rgb" පරායත්තතාවය වෙනත් තැනක සක්‍රීය කර ඇත්නම් පමණි: [පරාධීනතා] serde = { අනුවාදය = " 1.0.133", විකල්ප = සත්‍ය } rgb = { අනුවාදය = "0.8.25", විකල්ප = සත්‍ය } [විශේෂාංග] serde = ["dep:serde", "rgb?/serde"]

  • පසුගිය නිකුතුවේදී අක්‍රිය වූ වර්ධක සම්පාදනය සඳහා වන සහාය ආපසු ලබා දී ඇත. විශේෂාංගය අක්‍රිය කිරීමට හේතු වූ සම්පාදක දෝෂය විසඳා ඇත.
  • නිද්‍රා ප්‍රකාරයේදී පද්ධතිය විසින් ගත කරන කාලය සැලකිල්ලට ගන්නා ඒකාකාරී වේලාව පිළිබඳ සහතිකයක් සමඟ ක්ෂණික කාල ගණක සැපයීමේ ගැටළු කිහිපයක් විසඳා ඇත. මීට පෙර, දෘඪාංග ගැටළු, අථත්‍යකරණය භාවිතා කිරීම හෝ මෙහෙයුම් පද්ධතියේ දෝෂ වැනි කාලයෙහි ඒකාකාරී බව බිඳ දමන ගැටළුකාරී තත්වයන් සැලකිල්ලට නොගත් ටයිමරය ක්‍රියාත්මක කිරීමට හැකි සෑම විටම OS API භාවිතා කරන ලදී.
  • API හි නව කොටසක් ස්ථායී කාණ්ඩයට ගෙන ගොස් ඇත, ගතිලක්ෂණවල ක්‍රම සහ ක්‍රියාත්මක කිරීම් ස්ථායීකරණය කර ඇත:
    • චාප:: new_cyclic
    • Rc:: new_cyclic
    • පෙත්ත::EscapeAscii
    • <[u8]>::escape_ascii
    • u8::escape_ascii
    • Vec::spar_capacity_mut
    • සමහරවිටUninit::assume_init_drop
    • සමහරවිටUninit::assume_init_read
    • i8::abs_diff
    • i16::abs_diff
    • i32::abs_diff
    • i64::abs_diff
    • i128::abs_diff
    • isize::abs_diff
    • u8::abs_diff
    • u16::abs_diff
    • u32::abs_diff
    • u64::abs_diff
    • u128::abs_diff
    • භාවිතා කරන්න::abs_diff
    • io::ErrorKind සඳහා සංදර්ශකය
    • ExitCode සඳහා
    • සඳහා නොවේ! ("කවදාවත්" ටයිප් කරන්න)
    • _Op_Assign<$t>
    • arch ::is_aarch64_feature_detected!
  • mips64-openwrt-linux-musl* සහ armv7-unknown-linux-uclibceabi (softfloat) වේදිකා සඳහා තෙවන මට්ටමේ සහය ක්‍රියාත්මක කර ඇත. තෙවන මට්ටමට මූලික සහාය ඇතුළත් වේ, නමුත් ස්වයංක්‍රීය පරීක්ෂණ නොමැතිව, නිල ගොඩනැගීම් ප්‍රකාශනය කිරීම සහ කේත ගොඩනැගීමේ හැකියාව සත්‍යාපනය කිරීම.
  • සම්පාදකය LLVM 14 භාවිතා කිරීමට මාරු කර ඇත.

මීට අමතරව, ඔබට සටහන් කළ හැකිය:

  • rustc_codegen_gcc පසුපෙළ භාවිතයෙන් rustc compiler bootstrapping සඳහා සහය එක් කරන ලදී, එය ඔබට GCC ව්‍යාපෘතියේ ඇති libgccjit පුස්තකාලය rustc හි කේත උත්පාදකයක් ලෙස භාවිතා කිරීමට ඉඩ සලසයි, එමඟින් GCC හි ගෘහ නිර්මාණ ශිල්පය සහ ප්‍රශස්තිකරණය සඳහා සහය ලබා දීමට rustc හට ඉඩ සලසයි. සම්පාදක ප්‍රවර්ධනය යන්නෙන් අදහස් කරන්නේ rustc සම්පාදකයම තැනීම සඳහා rustc හි GCC-පාදක කේත උත්පාදකයක් භාවිතා කිරීමේ හැකියාවයි. ප්‍රායෝගික පැත්තෙන්, මෙම විශේෂාංගය මඟින් ඔබට කලින් rustc හි සහාය නොදක්වන ගෘහ නිර්මාණ ශිල්පය සඳහා මලකඩ වැඩසටහන් තැනීමට ඉඩ සලසයි.
  • uutils coreutils 0.0.13 මෙවලම් කට්ටලය නිකුත් කිරීම ලබා ගත හැකි අතර, එය තුළ Rust භාෂාවෙන් නැවත ලියන ලද GNU Coreutils පැකේජයේ ප්‍රතිසමයක් සංවර්ධනය වෙමින් පවතී. Coreutils වර්ග කිරීම, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, සහ ls ඇතුළුව සියයකට අධික උපයෝගිතා සමඟ පැමිණේ. ව්‍යාපෘතියේ පරමාර්ථය වන්නේ GPL copyleft බලපත්‍රය වෙනුවට Windows, Redox සහ Fuchsia වේදිකා මත ධාවනය කිරීමට මෙන්ම අවසර ලත් MIT බලපත්‍රය යටතේ බෙදා හැරීමට හැකියාව ඇති Coreutils හි හරස් වේදිකා විකල්ප ක්‍රියාත්මක කිරීමක් නිර්මාණය කිරීමයි.

    නව අනුවාදය මඟින් GNU ව්‍යාපෘතියේ ඔවුන්ගේ සගයන් සමඟ cp, dd, df, split සහ tr උපයෝගිතාවල සැලකිය යුතු ලෙස වැඩිදියුණු කළ ගැළපුම ඇතුළු බොහෝ උපයෝගිතා ක්‍රියාත්මක කිරීම් වැඩිදියුණු කර ඇත. මාර්ගගත ලියකියවිලි සපයා ඇත. ක්ලැප් විග්‍රහකය විධාන රේඛා තර්ක විග්‍රහ කිරීමට භාවිතා කරයි, එය “--help” ධජය සඳහා ප්‍රතිදානය වැඩි දියුණු කර ඇති අතර දිගු විධානවල කෙටි යෙදුම් සඳහා සහය එක් කර ඇත (උදාහරණයක් ලෙස, ඔබට “ls -color” වෙනුවට “ls -col” සඳහන් කළ හැක. ”)

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

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