ዝገት 1.52 የፕሮግራም አወጣጥ ቋንቋ መለቀቅ

በሞዚላ ፕሮጀክት የተመሰረተው የስርዓተ ፕሮግራሚንግ ቋንቋ ዝገት 1.52 ተለቀቀ ፣ አሁን ግን በገለልተኛ ለትርፍ ያልተቋቋመ ድርጅት Rust Foundation ስር የተገነባ ፣ ታትሟል። ቋንቋው በማህደረ ትውስታ ደህንነት ላይ ያተኩራል፣ አውቶማቲክ የማህደረ ትውስታ አስተዳደርን ይሰጣል፣ እና ቆሻሻ ሰብሳቢ ወይም የሩጫ ጊዜ ሳይጠቀሙ ከፍተኛ ተግባርን ትይዩ ለማድረግ የሚያስችል ዘዴን ይሰጣል (የአሂድ ጊዜ ወደ መሰረታዊ ጅምር እና መደበኛ ቤተ-መጽሐፍት ጥገና)።

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

ዋና ፈጠራዎች፡-

  • "የጭነት ቼክ" እና "የጭነት ቅንጥብ" ትዕዛዞችን የማስፈጸሚያ ቅደም ተከተል ተወግዷል። ከዚህ ቀደም "ካርጎ ክሊፕፒ" ከ "ካርጎ ቼክ" በኋላ መጥራት ለእነዚህ የቼክ ሁነታዎች የመሸጎጫ መለያየት ባለመኖሩ የክሊፕፒ መገልገያ (ሊንተር) አልጀመረም። አሁን ይህ ችግር ተቀርፏል እና "የእቃ መጫኛ" እና "የጭነት ቼክ" የሚባሉበት ቅደም ተከተል ምንም አይደለም.
  • የሚከተሉት ዘዴዎች የተረጋጉትን ጨምሮ አዲስ የኤፒአይ ክፍል ወደ የተረጋጋ ምድብ ተላልፏል።
    • ክርክሮች :: as_str
    • ቻር:: MAX
    • ቻ:: REPLACEMENT_CHARACTER
    • ቻር:: UNICODE_VERSION
    • ቻር :: ዲኮድ_utf16
    • ቻር:: ከዲጂት
    • ቻር::ከ_u32_ያልተረጋገጠ
    • ቻር::ከ_u32
    • ቁራጭ :: ክፍልፋይ_ነጥብ
    • str :: አንድ ጊዜ አንድ ጊዜ
    • str :: አንዴ_ተከፈለ
  • ከቋሚዎች ይልቅ በማንኛውም አውድ ውስጥ የመጠቀም እድልን የሚወስነው የ “const” ባህሪ በሚከተሉት ዘዴዎች ውስጥ ጥቅም ላይ ይውላል ።
    • ቻር:: len_utf8
    • ቻር:: len_utf16
    • ቻር:: ወደ_ascii_አቢይ ሆሄ
    • ቻር:: ወደ_ascii_አነስተኛ ሆሄ
    • ቻር:: eq_ቸል_አስኪ_ኬዝ
    • u8 :: ወደ_ascii_አቢይ ሆሄ
    • u8 :: ወደ_ascii_አነስተኛ ሆሄ
    • u8 :: eq_ቸል_አስኪ_ኬዝ
  • ደህንነቱ ባልተጠበቀ ተግባራት ውስጥ ጥቅም ላይ የሚውለው ደህንነቱ የተጠበቀ ኮድ በአስተማማኝ ብሎኮች መቀረጹን ለማወቅ የታከለ lint check unsafe_op_in_unsafe_fn።
  • የሚለዋወጡ ጠቋሚዎችን ወደ ድርድሮች በጠቋሚዎች መልክ ወደ የድርድር አካል አይነት መጣል ተፈቅዶለታል። ሙት x: [መጠቀም; 2] = [0, 0]; ይሁን p = & mut x እንደ * mut usize; ይሁን p = & mut x እንደ * const መጠቀም;
  • 9 አዳዲስ ቼኮች ወደ ክሊፕፒ (ሊንተር) ተጨምረዋል።
  • የካርጎ ጥቅል አስተዳዳሪው አሁን በJSON ውስጥ ለጥቅሎች የ"ማኒፌስት_ዱካ" መስክን ይደግፋል። የፍቃድ መረጃን በ SPDX 3.11 ቅርፀት ወደ crates.io ማከማቻ ለመጥቀስ ድጋፍ ታክሏል።
  • ሙከራዎችን በሚያካሂዱበት ጊዜ ብዙ ማጣሪያዎችን እንዲገልጽ ተፈቅዶለታል፣ ለምሳሌ "የካርጎ ሙከራ - foo bar"ን ማስኬድ ከ"ፎ" እና "ባር" ጋር የሚዛመዱ ሁሉንም ሙከራዎች ያካሂዳል።
  • ነባሪው LLVM መሣሪያ ስብስብ ወደ LLVM 12 ተዘምኗል።
  • ሶስተኛው የድጋፍ ደረጃ ለ s390x-ያልታወቀ-ሊኑክስ-ሙስል, riscv32gc-unknown-linux-musl, riscv64gc-ያልታወቀ-linux-musl እና powerpc-ያልታወቀ-openbsd መድረኮች ተተግብሯል. ሶስተኛው ደረጃ መሰረታዊ ድጋፍን ያካትታል፣ ነገር ግን ያለ አውቶሜትድ ሙከራ፣ ይፋዊ ግንባታዎችን ማተም ወይም ኮዱ መገንባት ይቻል እንደሆነ ማረጋገጥ።

ምንጭ: opennet.ru

አስተያየት ያክሉ