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

በሞዚላ ፕሮጀክት የተመሰረተው፣ አሁን ግን በገለልተኛ ለትርፍ ያልተቋቋመ ድርጅት Rust Foundation ስር የተገነባው የ Rust 1.67 አጠቃላይ ዓላማ ፕሮግራሚንግ ቋንቋ ታትሟል። ቋንቋው በማህደረ ትውስታ ደህንነት ላይ ያተኩራል እና ከፍተኛ የስራ ትይዩነትን ለማግኘት የቆሻሻ አሰባሳቢውን እና የሩጫ ጊዜን (የሩጫ ጊዜውን ወደ መሰረታዊ አጀማመር እና ደረጃውን የጠበቀ ቤተመፃህፍት መጠገን ይቀንሳል)።

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

የማህደረ ትውስታ ደህንነት በራስት ውስጥ በማጠናቀር ጊዜ በማጣቀሻ ቁጥጥር ፣የነገሮችን ባለቤትነት በመከታተል ፣የእቃውን የህይወት ዘመን (ስፋት) በመከታተል እና በኮድ አፈፃፀም ወቅት የማስታወስ ችሎታን ትክክለኛነት በመገምገም ይሰጣል ። ዝገት ከኢንቲጀር መብዛት ጥበቃን ይሰጣል፣ ከመጠቀምዎ በፊት ተለዋዋጭ እሴቶችን የግዴታ ማስጀመርን ይጠይቃል፣ በመደበኛ ቤተ-መጽሐፍት ውስጥ ስህተቶችን በተሻለ ሁኔታ ይቆጣጠራል ፣ የማይለዋወጥ ማጣቀሻዎችን እና ተለዋዋጮችን በነባሪነት ይተገበራል ፣ ምክንያታዊ ስህተቶችን ለመቀነስ ጠንካራ የማይንቀሳቀስ ትየባ ይሰጣል።

ዋና ፈጠራዎች፡-

  • ለተመሳሳይ ተግባራት ከወደፊት :: ውፅዓት ጋር አሁን የመመለሻ ዋጋው ችላ ከተባለ ማስጠንቀቂያን የሚያካትቱ የ"#[መጠቀሚያ]" ማብራሪያዎችን መጥቀስ ይቻላል ይህም ተግባሩ እሴቶቹን ይቀይራል ተብሎ በመገመቱ የተፈጠሩ ስህተቶችን ለመለየት ይረዳል። አዲስ እሴት ከመመለስ ይልቅ. #[መጠቀም_የለበት] async fn bar () -> u32 { 0 } async fn ደዋይ () {ባር() .ጠብቅ; ▣ ማስጠንቀቂያ፡ ጥቅም ላይ መዋል ያለበት የወደፊት ጥቅም ላይ ያልዋለ ውፅዓት በ `ባር` ተመልሷል —> src/lib.rs:5:5 | 5 | ባር () ይጠብቁ; | ^^^^^^^^^^ | = ማስታወሻ፡ `#[ማስጠንቀቂያ(ጥቅም ላይ ያልዋለ_መጠቀም)]` በነባሪ
  • የ FIFO ወረፋዎች std :: ማመሳሰል ::mpsc (ባለብዙ-አምራች ነጠላ ሸማች) ትግበራ ተዘምኗል፣ ይህም የቀደመውን ኤፒአይ እየጠበቀ የመስቀል-ቻናል ሞጁሉን ለመጠቀም ተቀይሯል። አዲሱ ትግበራ በርካታ ችግሮችን በመፍታት, ከፍተኛ አፈፃፀም እና ቀላል የኮድ ጥገናን ይለያል.
  • የባህሪ ዘዴዎችን እና አተገባበርን ጨምሮ አዲስ የ API ክፍል ወደ የተረጋጋ ምድብ ተወስዷል፡
    • {ኢንቲጀር}::የተረጋገጠ_ilog
    • {ኢንቲጀር}::የተረጋገጠ_ilog2
    • {ኢንቲጀር}::የተረጋገጠ_ilog10
    • {ኢንቲጀር}:: ilog
    • {ኢንቲጀር}:: ilog2
    • {ኢንቲጀር}:: ilog10
    • NonZeroU*:: ilog2
    • NonZeroU*:: ilog10
    • ዜሮ ያልሆነ ** BITS
  • ከቋሚዎች ይልቅ በማንኛውም አውድ ውስጥ የመጠቀም እድልን የሚወስነው የ"const" ባህሪ በተግባሮች ውስጥ ጥቅም ላይ ይውላል።
    • ቻር::ከ_u32
    • ቻር:: ከዲጂት
    • ቻር:: ወደ_አሃዝ
    • አንኳር:: ቻር:: ከ_u32
    • ኮር :: ቻር :: ከዲጂት
  • ሦስተኛው የድጋፍ ደረጃ Rustን በሊኑክስ ከርነል (ሊኑክስከርነል)፣ እንዲሁም ለ Sony PlayStation 1 (mipsel-sony-psx)፣ PowerPC with AIX (powerpc64-ibm-aix)፣ QNX Neutrino RTOS ( aarch64-ያልታወቀ-ወደ-) መድረኮች qnx710፣ x86_64-pc-to-qnx710)። ሶስተኛው ደረጃ መሰረታዊ ድጋፍን ያካትታል፣ ነገር ግን ያለ አውቶሜትድ ሙከራ፣ ይፋዊ ግንባታዎችን ማተም ወይም ኮዱ መገንባት ይቻል እንደሆነ ማረጋገጥ።

በተጨማሪም፣ በ AArch64 አርክቴክቸር ላይ ለተመሰረቱ ስርዓቶች የተገጣጠሙ ሾፌሮችን እና የሊኑክስ ከርነል ሞጁሎችን ለማዳበር የዝገት ቋንቋን ለመጠቀም የሚፈቅደውን በ ARM የ patches ህትመት ልብ ማለት እንችላለን።

ምንጭ: opennet.ru

አስተያየት ያክሉ