ዝገት 1.96.0

ልቀቱ ታትሟል ዝገት 1.96.0 — የቅርብ ጊዜው የተረጋጋ የሩስት ፕሮግራሚንግ ቋንቋ ስሪት። ዝመናው ተለቋል። 28 ግንቦት 2026 ዓመታት; መደበኛውን የሩስትፕ ዝማኔ የተረጋጋ ትዕዛዝ በመጠቀም ሊጫን ይችላል። ዋናዎቹ ለውጦች በኮር::range ውስጥ ያሉ አዳዲስ የክልል አይነቶችን፣ የንድፍ ማዛመጃ ማክሮዎችን ማረጋጋት፣ የWebAssembly ግንባታ ባህሪን ማጠንከር እና በካርጎ ውስጥ ላሉ ሁለት ተጋላጭነቶች ጥገናዎችን ያካትታሉ።

ዋና ለውጦች

  • አዲስ የክልል አይነቶች ኮር::ሬንጅ::ሬንጅ*።
    አዲስ የክልል አይነቶች በመደበኛ ቤተ-መጽሐፍት ውስጥ ተረጋግተዋል፡ core::range::Range, RangeFrom, RangeInclusive እና ተያያዥ ኢተሬተሮች። ከcore::ops የመጡት የድሮ አይነቶች በተለየ መልኩ፣ አዲሶቹ ክልሎች Iteratorን በቀጥታ አይተገብሩም፣ ነገር ግን በIntoIterator በኩል ወደ ኢተሬተር ይቀየራሉ። ይህ እነዚህ ክልሎች ሊገለበጡ የሚችሉ እንዲሆኑ ያስችላቸዋል፣ ይህም ለምሳሌ ክልልን እንደ መዋቅር መስክ ሲያከማቹ ምቹ ነው። እንደ 0..1 ያሉ አገባብ በአሁኑ ጊዜ የድሮ የክልል አይነቶችን ይፈጥራል፣ ነገር ግን ወደፊት በሚመጣው የቋንቋ ስሪት ወደ አዲሶቹ ዓይነቶች እንዲዛወር ታቅዷል።

  • የ assert_matches! እና debug_assert_matches! አክለዋል።
    አዲስ ማክሮዎች አንድ እሴት ከተሰጠው ንድፍ ጋር እንደሚዛመድ እንዲያረጋግጡ ያስችሉዎታል። ይህ በፅንሰ-ሀሳብ ውስጥ ተመሳሳይ ነው!(ተዛማጆች!(…))፣ ነገር ግን ስህተት ከተፈጠረ የእሴቱ የስህተት ውክልና ታትሟል፣ ይህም ምርመራዎችን ቀላል ያደርገዋል። እነዚህ ማክሮዎች ከታዋቂ የሶስተኛ ወገን ክሬቶች ጋር ግጭቶችን ለማስወገድ ወደ ፕሪሉድ አልተጨመሩም፣ ስለዚህ በግልጽ ከኮር ወይም ከ std ማስመጣት አለባቸው።

  • የWebAssembly ኢላማዎችን ባህሪ ቀይሯል።
    ዝገት ከእንግዲህ ለWebAssembly ግንባታዎች ወደ አገናኝ አያልፍም --allow-undefined። ያልተገለጹ ምልክቶች አሁን በማገናኘት ጊዜ እንደ ስህተቶች ይቆጠራሉ፣ በራስ-ሰር ከ"env" ሞዱል ወደ ማስመጣት ከመቀየር ይልቅ። ይህ የግንባታ ስህተቶችን እና ልክ ያልሆኑ የምልክት ስሞችን ቀደም ብሎ መያዝ አለበት። የድሮው ባህሪ አስፈላጊ ከሆነ RUSTFLAGS=-Clink-arg=--allow-undefinedን በመጠቀም ወይም #[link(wasm_import_module = "env") በመጠቀም የገባውን wasm ሞዱል በግልጽ በመግለጽ ሊመለስ ይችላል።

  • ካርጎ የደህንነት ጥገናዎችን አግኝቷል።
    Rust 1.96.0 የሶስተኛ ወገን መዝገብ ቤቶችን ተጠቃሚዎች የሚነኩ ሁለት ተጋላጭነቶችን ያስተካክላል። CVE-2026-5223 በክሬት ታርቦልስ ውስጥ የሲምሊንኮችን አያያዝ በተመለከተ፡ ከሶስተኛ ወገን መዝገብ ቤት የመጣ ተንኮል አዘል ፓኬጅ ከተመሳሳይ መዝገብ ቤት የመጣ የሌላ ፓኬጅ መሸጎጫ ሊተካ ይችላል። ከ Rust 1.96.0 ጀምሮ፣ ካርጎ ሲምሊንኮችን የያዙ የክሬት ማህደሮችን ውድቅ ያደርጋል። CVE-2026-5222 ይህ ችግር በአነስተኛ መዝገብ ቤት ውስጥ ካለው የዩአርኤል መደበኛነት ጋር የተያያዘ ሲሆን፣ አልፎ አልፎ በሚከሰቱ ሁኔታዎች፣ የካርጎ ቶከን ወደ ተንኮል አዘል መዝገብ እንዲላክ ሊያደርግ ይችላል። እንደ Rust ቡድን ገለጻ፣ crates.io ተጠቃሚዎች በእነዚህ ችግሮች አይነኩም።

  • በቋንቋ ላይ የተደረጉ ለውጦች።
    ልቀቱ የሚከተሉትን ያካትታል፦ በርካታ ጥቃቅን ጥገናዎች እና ማሻሻያዎች፡- የማክሮዎችን expr metavariables ወደ cfg ማስተላለፍ፣ በtuple አገላለጾች ውስጥ በጭራሽ-አይነት ቀረጻን ማስተካከል፣ ለተግባር ክርክሮች የተሳሳቱ የአይነት ማጠቃለያ ፍንጮችን ማስተካከል፣ በመስመር ውስጥ ስብሰባ ውስጥ ለs390x ቬክተር መዝገቦች ድጋፍ መጨመር እና እንደ አብነቶች ManuallyDrop constantsን እንደገና መፍቀድ - ይህ በ Rust 1.94.0 ውስጥ የገባውን ሪግሬሽን ያስተካክላል።

  • በኮምፓይለር እና በፕላትፎርሞች ላይ የተደረጉ ለውጦች።
    ለ LinuxየLoongArch ኢላማዎች የሊንክ ሪሌሽን ድጋፍ ነቅቷል - ይህ የኮድ ማሰማራት ከተደረገ በኋላ አንዳንድ ሽግግሮችን እና ጥሪዎችን የሚያቃልል የማገናኛ ማመቻቸት ነው። ለriscv64gc-unknown-fuchsia፣ የመሠረት ውቅር ወደ RVA22 መገለጫ ተዘምኗል እና ለቬክተር ቅጥያዎች ድጋፍ አለው።

  • መደበኛ የቤተ-መጽሐፍት ዝመናዎች።
    በኖንዜሮ ኢንቲጀር ክልሎች ላይ የመድገም ድጋፍ ታክሏል። በSGX ውስጥ በToSocketAddr በኩል የአስተናጋጅ አድራሻዎችን ቸልተኛ አያያዝም ተስተካክሏል፣ እና "ሊነበብ የሚችል/ሊጻፍ የሚችል" ማህደረ ትውስታ ፍቺ በሰነዱ እና በውስጥ ኮንትራቶች ውስጥ ተብራርቷል፡ ባዶ ጠቋሚው ከአጠቃላይ ፍቺው ተወግዷል፣ እና አሁን ለተወሰኑ ዘዴዎች ልዩ ሁኔታዎች ለየብቻ ተገልጸዋል።

  • የተረጋጉ ኤፒአይዎች።
    ከተረጋጉት በይነገጾች መካከል assert_matches!፣ debug_assert_matches!፣ From የተተገበሩ ትግበራዎች ይገኙበታል። ለAssertUnwindSafe , LazyCell እና ላዚሎክ እንዲሁም ከኮር::range የተውጣጡ አዳዲስ የክልል አይነቶች እና ኢተሬተሮች፣ Range፣ RangeFrom፣ RangeToInclusive እና ኢተሬተሮቻቸውን ጨምሮ።

  • ጭነት፡- ጥገኛ እና ሰነዶች ላይ የተደረጉ ለውጦች።
    ጥገኝነት አሁን የጂት ማከማቻ እና አማራጭ መዝገብ ሊገልጽ ይችላል፡ የጂት ስሪት በአካባቢው ጥቅም ላይ ይውላል፣ እና የመዝገብ ስሪቱ በሚታተምበት ጊዜ ጥቅም ላይ ይውላል፣ ልክ እንደ crates.io ባህሪ። በካርጎ ውቅር ውስጥ ለ target.'cfg(..)'.rustdocflags ድጋፍም ታክሏል።

  • ሩስትዶክ አሁን ሰነዶችን የበለጠ በትክክል ያስተናግዳል።
    የተቋረጡ የኤፒአይ ማስታወሻዎች አሁን እንደ መደበኛ ሰነድ ሆነው ይታያሉ፣ ያለ ቀዳሚው ልዩ ሂደት በነጭ ቦታ፡ ቅድመ-መጠቅለያ። በተጨማሪም፣ rustdoc ከአሁን በኋላ በ impl ውስጥ ላሉ አባሎች_doc_code_examples_missing_afters_ን አያሳይም፣ እና ዘዴዎች እና ተያያዥ ተግባራት አሁን በሰነድ የጎን አሞሌ ውስጥ ተለያይተዋል።

  • ሊሆኑ የሚችሉ አለመጣጣሞች።
    ልቀቱ በመደበኛ ያልሆነ ኮድ ውስጥ ሊታዩ የሚችሉ በርካታ ለውጦችን ይዟል፡ የአንዳንድ #[repr(Int)] ኢነሞች አቀማመጥ በጣም ከባድ በሆኑ ጉዳዮች ላይ ተስተካክሏል፣ እና በፒን ውስጥ ያሉ አንዳንድ ጥቅም የሌላቸው መጠን ያላቸው ጣሳዎች ተሰናክለዋል። የWebAssembly ግንባታዎች አሁን ባልተገለጹ ምልክቶች ላይ ይበላሻሉ፣ በአጋጣሚ የተረጋገተው #![reexport_test_harness_main] ባህሪ እንደገና የባህሪ በርቷል፣ የ -Csoft-float አማራጭ ተወግዷል፣ እና ዝቅተኛው ውጫዊ የLLVM ስሪት ወደ 21 ጨምሯል። ለAVR፣ የc_double አይነት ወደ f32 ተቀይሯል፣ ምክንያቱም C ድርብ በእነዚህ ኢላማዎች ላይ በነባሪነት 32-ቢት ናቸው።

ምንጭ: linux.org.ru

በDDoS ጥበቃ፣ VPS VDS አገልጋዮች ለጣቢያዎች አስተማማኝ ማስተናገጃ ይግዙ 🔥 አስተማማኝ የድር ጣቢያ ማስተናገጃ በዲዶኤስ ጥበቃ፣ በቪፒኤስ ቪዲኤስ አገልጋዮች ይግዙ | ProHoster