ዝገት ፕሮግራሚንግ ቋንቋ ልቀት 2021 (1.56)

በሞዚላ ፕሮጀክት የተመሰረተው የስርአት ፕሮግራሚንግ ቋንቋ ዝገት 1.56 መለቀቅ አሁን ግን በገለልተኛ ለትርፍ ያልተቋቋመ ድርጅት Rust Foundation ስር የተሰራ ነው። ከመደበኛው የስሪት ቁጥር በተጨማሪ ልቀቱ Rust 2021 ተብሎ የተሰየመ ሲሆን ባለፉት ሶስት ዓመታት ውስጥ የታቀዱትን ለውጦች ማረጋጋት ያሳያል። ዝገት 2021 በተጨማሪም ዝገት 2018 መለቀቅ ባለፉት ሦስት ዓመታት ውስጥ ቋንቋ ልማት መሠረት ሆነ እንዴት ተመሳሳይ, በሚቀጥሉት ሦስት ዓመታት ውስጥ ተግባራዊነት ለማሳደግ መሠረት ሆኖ ያገለግላል.

ተኳኋኝነትን ለማስጠበቅ ገንቢዎች በፕሮግራሞቻቸው ውስጥ "2015" "2018" እና "2021" መለያዎችን መጠቀም ይችላሉ ይህም ፕሮግራሞች ከተመረጡት የዝገት እትሞች ጋር ከሚዛመዱ የቋንቋ ግዛት ቁርጥራጮች ጋር እንዲገናኙ ያስችላቸዋል። እትሞች ተኳሃኝ ያልሆኑ ለውጦችን ለመለየት አስተዋውቀዋል እና በካርጎ ፓኬጆች ሜታዳታ ውስጥ በ"እትም" መስክ በ"[ጥቅል]" ክፍል ውስጥ ተዋቅረዋል። ለምሳሌ፣ የ"2018" እትም እ.ኤ.አ. በ2018 መገባደጃ ላይ የተረጋጋውን ተግባር ያካትታል እና እንዲሁም ተኳኋኝነትን የማያቋርጡ ሁሉንም ተጨማሪ ለውጦች ይሸፍናል። የ2021 እትም በተጨማሪ አሁን ባለው 1.56 ልቀት ላይ የታቀዱ እና ለወደፊት ትግበራ የጸደቁትን መስተጋብር የሚሰብሩ ባህሪያትን ያካትታል። ከቋንቋው በተጨማሪ አዘጋጆቹ የመሳሪያውን እና የሰነድ ሁኔታን ግምት ውስጥ ያስገባሉ.

በ Rust 2021 ውስጥ የተመዘገቡ ዋና ዋና አለመጣጣሞች፡-

  • በመዝጊያዎች ውስጥ የተለየ ቀረጻ - መዘጋት አሁን ከመላው መለያ ይልቅ የግለሰብ የመስክ ስሞችን መያዝ ይችላል። ለምሳሌ "|| ax + 1 ከ"a" ይልቅ "ax" ብቻ ነው የሚይዘው::
  • የIntoIterator ባህሪ ለ arrays: array.into_iter() የድርድር ክፍሎችን በማጣቀሻዎች ሳይሆን በእሴቶች ለመድገም ያስችልዎታል።
  • የ"|" አገላለጾችን ሂደት በማክሮ_ህጎች ውስጥ ተቀይሯል። (ቡሊያን OR) በስርዓተ-ጥለት - በግጥሚያ ላይ ያለው የ":pat" ገላጭ አሁን "A | ለ"
  • የካርጎ ጥቅል አቀናባሪ በነባሪነት በ Rust 1.51 ውስጥ የታየውን የባህሪ ፈታሹን ሁለተኛ ስሪት ያካትታል።
  • የ TryFrom፣ TryInto እና FromIterator ባህሪያት ወደ ቅድመ-ደረጃ መደበኛ ቤተ-መጽሐፍት ሞዱል ታክለዋል።
  • ድንጋጤው!(..) እና አስረግጦ!(expr, ..) ማክሮዎች አሁን ሁልጊዜ ቅርጸት_args ይጠቀማሉ!
  • መለያ #፣ መታወቂያ»..." እና መታወቂያ"...' የሚሉት በቋንቋ አገባብ ውስጥ የተጠበቁ ናቸው።
  • ባዶ_ባህሪ_ነገሮች እና ellipsis_inclusive_ range_patterns ለስህተት ማስጠንቀቂያዎች ተወስደዋል።

በዝገት 1.56 አዲስ፡

  • በCargo.toml ውስጥ፣ በ«[ጥቅል]» ክፍል ውስጥ፣ የዝገት-ስሪት መስክ ተጨምሯል፣ በዚህም ለሳጥኑ ጥቅል የሚደገፈውን ዝቅተኛውን የዝገት ስሪት ማወቅ ይችላሉ። የአሁኑ ስሪት ከተጠቀሰው ግቤት ጋር ካልተዛመደ ካርጎ ከስህተት መልእክት ጋር መስራቱን ያቆማል።
  • የ"ቢንዲንግ @ ጥለት" አገላለጾችን በመጠቀም ስርዓተ-ጥለት ሲመሳሰል ተጨማሪ ማሰሪያዎችን (ለምሳሌ "let matrix @ Matrix { row_len, .. } = get_matrix();") ለመጥቀስ ድጋፍ ይሰጣል።
  • የባህሪ ዘዴዎችን እና አተገባበርን ጨምሮ አዲስ የ API ክፍል ወደ የተረጋጋ ምድብ ተወስዷል፡
    • std:: os:: ዩኒክስ:: fs:: chroot
    • ደህንነቱ ያልተጠበቀ ሕዋስ ::ጥሬ_ማግኘት
    • BufWriter :: ወደ_ክፍሎች
    • አንኳር::ሽብር::{UnwindSafe, RefUnwindSafe, AssertUnwindSafe}
    • ቬክ:: ወደ_መቀነስ
    • ሕብረቁምፊ::ወደ_መቀነስ
    • OsString:: ወደ_መቀነስ
    • PathBuf:: ወደ_መቀነስ
    • BinaryHeap::ወደ_መቀነስ
    • VecDeque :: ማጠር_ወደ
    • HashMap::ወደ_መቀነስ
    • HashSet ::ማቀነስ_ወደ
  • ከቋሚዎች ይልቅ በማንኛውም አውድ ውስጥ የመጠቀም እድልን የሚወስነው የ"const" ባህሪ በተግባሮች ውስጥ ጥቅም ላይ ይውላል
    • std :: mem :: ማስተላለፍ
    • [ተ]:: አንደኛ::
    • [ተ] :: ተከፈለ_መጀመሪያ
    • [T]:: የመጨረሻ
    • [ተ]:: የተከፈለ_የመጨረሻ
  • አቀናባሪው ወደ LLVM ስሪት 13 ተቀይሯል።
  • ሁለተኛ ደረጃ የድጋፍ ደረጃ ለ aarch64-apple-ios-sim መድረክ እና ሶስተኛ ደረጃ ለpowerpc-unknown-freebsd እና riscv32imc-esp-espidf መድረኮች ተተግብሯል። ሶስተኛው ደረጃ መሰረታዊ ድጋፍን ያካትታል፣ ነገር ግን ያለ አውቶሜትድ ሙከራ፣ ይፋዊ ግንባታዎችን ማተም ወይም ኮዱ መገንባት ይቻል እንደሆነ ማረጋገጥ።

ዝገት በማህደረ ትውስታ ደህንነት ላይ እንደሚያተኩር፣ አውቶማቲክ የማህደረ ትውስታ አስተዳደርን እንደሚያቀርብ እና የቆሻሻ ሰብሳቢ ወይም የሩጫ ጊዜ ሳይጠቀሙ በስራ አፈፃፀሙ ላይ ከፍተኛ ትይዩ ለማድረግ የሚያስችል ዘዴ እንደሚሰጥ አስታውስ (የሩጫ ጊዜ ወደ መሰረታዊ መነሻ እና መደበኛ ቤተ-መጽሐፍት ጥገና ቀንሷል)።

የሩስት አውቶማቲክ ማህደረ ትውስታ አስተዳደር ጠቋሚዎችን በሚጠቀሙበት ጊዜ ስህተቶችን ያስወግዳል እና ከዝቅተኛ ደረጃ ማህደረ ትውስታ ማጭበርበር ከሚመጡ ችግሮች ይጠብቃል ፣ ለምሳሌ ከተለቀቀ በኋላ የማህደረ ትውስታ ክልል መድረስ ፣ ባዶ ጠቋሚዎች ፣ ቋት መጨናነቅ ፣ ወዘተ. ቤተ መፃህፍትን ለማሰራጨት፣ መሰብሰብን ለማረጋገጥ እና ጥገኞችን ለማስተዳደር ፕሮጀክቱ የካርጎ ፓኬጅ ስራ አስኪያጅን በማዘጋጀት ላይ ነው። የ crates.io ማከማቻው ቤተ-መጻሕፍትን ለማስተናገድ ይደገፋል።

ምንጭ: opennet.ru

አስተያየት ያክሉ