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

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

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

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

ዋና ፈጠራዎች፡-

  • ከሌላ ዓይነት ጋር የተቆራኙ ዓይነት ተለዋጭ ስሞችን ለመፍጠር የሚያስችል እና የአይነት ግንባታዎችን ከባህሪያት ጋር ለማያያዝ የሚያስችል ለአጠቃላይ ተዛማጅ ዓይነቶች (ጂኤቲ ፣ አጠቃላይ ተጓዳኝ ዓይነቶች) ተጨማሪ ድጋፍ። ባህሪ ፉ { አይነት ባር<'x>; }
  • “እንሁን… ሌላ” የሚለው አገላለጽ ተተግብሯል፣ ይህም የስርዓተ ጥለት ማዛመጃውን ሁኔታ በ“እንተው” አገላለጽ ውስጥ በቀጥታ እንዲፈትሹ እና ንድፉ የማይዛመድ ከሆነ የዘፈቀደ ኮድ እንዲፈጽሙ ያስችልዎታል። ይሁን እሺ (መቁጠር) = u64 :: from_str (count_str) ሌላ { ድንጋጤ! ("ኢንቲጀርን መተንተን አይቻልም: '{count_str}"); };
  • የሚቋረጠውን እገዳ ለመለየት የማገጃውን ስም (መለያ) በመጠቀም ከተሰየሙ ብሎኮች ለመውጣት የእረፍት መግለጫን መጠቀም ይፍቀዱ። ውጤት = 'አግድ: { ማድረግ_thing (); ሁኔታ_ያልተሟላ() ከሆነ() እገዳን 1; } ቀጣይ_ነገር አድርግ(); ሁኔታው_ካልተሟላ() {ማገድ 2; } የመጨረሻ_ነገር አድርግ(); 3};
  • ለሊኑክስ፣ ከዚህ ቀደም ለማክሮስ ፕላትፎርም ብቻ የሚገኘውን የማረም መረጃን (ስፕሊት-ዲቡጊንፎ) በተናጠል የማዳን ችሎታ ታክሏል። የ"-Csplit-debuginfo=unpacked" አማራጭን ሲገልጹ በDWARF ቅርጸት ያለው የአርሚፎ መረጃ በ".dwo" ቅጥያ ወደ ተለያዩ የነገር ፋይሎች ይቀመጣል። "-Csplit-debuginfo=packed"ን መግለጽ አንድ ጥቅል በ".dwp" ቅርጸት ይፈጥራል፣ ይህም ሁሉንም የፕሮጀክቱን የአርሚ መረጃ መረጃ ያካትታል። ዲቡጊንፎን በቀጥታ ወደ .debug_* የELF ነገሮች ክፍል ለማዋሃድ የ"-Csplit-debuginfo=ጠፍቷል" አማራጭን መጠቀም ትችላለህ።
  • የባህሪ ዘዴዎችን እና አተገባበርን ጨምሮ አዲስ የ API ክፍል ወደ የተረጋጋ ምድብ ተወስዷል፡
    • std :: የኋላ ትራክ :: የኋላ መከታተያ
    • የታሰረ:: እንደ_ማጣቀሻ
    • std :: io:: ወደ_ሕብረቁምፊ_አንብብ
    • <*const T>:: cast_mut
    • <*mut T>:: cast_const
  • ከቋሚዎች ይልቅ በማንኛውም አውድ ውስጥ የመጠቀም እድልን የሚወስነው የ"const" ባህሪ በ<*const T&>::offset_from እና <*mut T>::offset_from ውስጥ ጥቅም ላይ ይውላል።
  • የኤልኤስፒ (የቋንቋ አገልጋይ ፕሮቶኮል) ፕሮቶኮልን ወደ ዝገት-ተንታኝ ለማስተላለፍ የመጨረሻው ደረጃ አካል እንደመሆኑ ጊዜ ያለፈበት የዝገት ቋንቋ አገልጋይ (አርኤልኤስ) ትግበራ ወደ ለመቀየር ሀሳብ በሚሰጥ ማስጠንቀቂያ በሚሰጥ stub አገልጋይ ተተክቷል። ዝገት-ተንታኝ በመጠቀም.
  • በማጠናቀር ጊዜ የMIR መካከለኛ ኮድ በመስመር ላይ ለማሰማራት ድጋፍ ነቅቷል ፣ ይህም የተለመዱ የሣጥን ፓኬጆችን ከ3-10% ያፋጥናል።
  • የታቀዱ ግንባታዎችን ለማፋጠን የካርጎ ፓኬጅ ሥራ አስኪያጅ በወረፋው ላይ አፈፃፀም የሚጠብቁ ሥራዎችን መደርደር ያቀርባል።

በተጨማሪም፣ የአውቶሞቲቭ መረጃ ስርዓቶችን ክፍሎች ለማዳበር በቮልቮ ስለ Rust ቋንቋ አጠቃቀም የተደረገውን ቃለ ምልልስ ልብ ማለት ይችላሉ። በ Rust ውስጥ ያለውን እና የተፈተነ ኮድን እንደገና ለመፃፍ ምንም እቅድ የለም, ነገር ግን ለአዲስ ኮድ, Rust በአነስተኛ ወጪዎች ጥራትን ለማሻሻል ከተመረጡት አማራጮች አንዱ ነው. በአውቶሞቲቭ ማኅበራት AUTOSAR (AUTomotive Open System Architecture) እና SAE (የአውቶሞቲቭ መሐንዲሶች ማኅበር) ውስጥ ከሩስት ቋንቋ አጠቃቀም ጋር የተያያዙ የሥራ ቡድኖች ተፈጥረዋል።

በተጨማሪም የጉግል ምህንድስና ምክትል ፕሬዝዳንት ዴቪድ ክሌይደርማቸር በአንድሮይድ መድረክ ላይ የኢንክሪፕሽን ቁልፎችን ወደ ዝገት ለማስተዳደር ጥቅም ላይ የዋለውን ኮድ መተርጎም እና ቁልል ውስጥ በኤችቲቲፒኤስ ፕሮቶኮል ላይ ዲ ኤን ኤስ በመተግበሩ ላይ ስለ ዝገት አጠቃቀም ተናግሯል ። ለ UWB-ቺፕስ (አልትራ ዋይድባንድ) እና ከ Tensor G2 ቺፕ ጋር በተገናኘ በምናባዊነት ማዕቀፍ (አንድሮይድ ቨርቹዋልላይዜሽን ማዕቀፍ)። ለብሉቱዝ እና ዋይ ፋይ አዲስ ቁልል በዝገት እንደገና የተፃፈ እንዲሁም ለአንድሮይድ እየተዘጋጀ ነው። አጠቃላይ ስልቱ ቀስ በቀስ ደህንነትን ማጠናከር ሲሆን በመጀመሪያ በጣም ተጋላጭ እና አስፈላጊ የሆኑትን የሶፍትዌር ክፍሎችን ወደ Rust በመቀየር እና ወደ ሌሎች ተዛማጅ ንዑስ ስርዓቶች በማስፋፋት ነው. ባለፈው ዓመት፣ የዛገቱ ቋንቋ የአንድሮይድ መድረክን ለማዳበር በተፈቀዱ የቋንቋዎች ዝርዝር ውስጥ ተካቷል።

ምንጭ: opennet.ru

አስተያየት ያክሉ