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

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

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

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

ዋና ፈጠራዎች፡-

  • የካርጎ ጥቅል ሥራ አስኪያጅ እና የ crates.io ማከማቻ ለ Sparse ፕሮቶኮል ድጋፍን አረጋግጠዋል ፣ ይህም በማከማቻው ውስጥ ያሉትን ሁሉንም ጥቅሎች ስሪቶች ከሚያንፀባርቅ አዲስ የመረጃ ጠቋሚ ጋር የሚሰራበትን አዲስ መንገድ ይገልጻል። አዲሱ ፕሮቶኮል ከ crates.io ጋር የመሥራት ፍጥነትን በከፍተኛ ሁኔታ እንዲጨምሩ እና በማከማቻው ውስጥ ባሉ ፓኬጆች ቁጥር ተጨማሪ እድገትን በማስፋት ችግሮችን ለመፍታት ያስችልዎታል።

    ሙሉ ኢንዴክስ በማውረድ የሚፈጠረውን መዘግየቶች ለመቀነስ Git ን በመጠቀም ኢንዴክስን ከመድረስ ይልቅ Sparse በኤችቲቲፒኤስ ላይ በቀጥታ ማውረድን ያካትታል አስፈላጊ መረጃ ጠቋሚ መረጃ የአንድ የተወሰነ ፕሮጀክት ጥገኝነቶችን ይሸፍናል። አዲስ አገልግሎት, index.crates.io, መረጃ ጠቋሚ መረጃን ለማቅረብ ጥቅም ላይ ይውላል. በነባሪነት አዲሱ ፕሮቶኮል በ Rust 1.70 ቅርንጫፍ ውስጥ ጥቅም ላይ እንዲውል ታቅዶ ከዚያ በፊት እሱን ለማንቃት የአካባቢን ተለዋዋጭ "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" ማዘጋጀት ወይም የ'ፕሮቶኮል =' መለኪያውን ወደ "[መዝገቦች" ማከል ይችላሉ. crates-io]" የ.cargo/config.toml ፋይል 'sparse' ክፍል።

  • የ"ፒን!" ማክሮን ታክሏል፣ ይህም ፒን<&mut T> መዋቅርን ከ"T" አገላለጽ ከግዛቱ ጋር በማያያዝ (ከቦክስ:: ፒን በተለየ መልኩ፣ ማህደረ ትውስታን በክምር ላይ አይመድብም ፣ ግን ያስራል) በመደራረብ ደረጃ)።
  • መደበኛውን የአሎክ ጥቅል በሚጠቀሙበት ጊዜ ነባሪ የማህደረ ትውስታ ድልድል ስህተት ተቆጣጣሪ ቀርቧል። አሎክን ብቻ የሚያነቁ አፕሊኬሽኖች (ያለ std) አሁን የማህደረ ትውስታ ድልድል ሲከሽፍ “ሽብር!” ተቆጣጣሪውን ይጠሩታል፣ ይህም እንደ አማራጭ “#[panic_handler]”ን በመጠቀም ሊጠለፍ ይችላል። የ std ቤተ-መጽሐፍትን የሚጠቀሙ ፕሮግራሞች የስህተት መረጃን ወደ stderr እና ብልሽት ማተም ይቀጥላሉ።
  • የባህሪ ዘዴዎችን እና አተገባበርን ጨምሮ አዲስ የ API ክፍል ወደ የተረጋጋ ምድብ ተወስዷል፡
    • {core,std}::ሚስማር::ፒን!
    • impl ከ ለ {f32,f64}
    • std :: መንገድ :: MAIN_SEPARATOR_STR
    • impl DerefMut ለPathBuf
  • ከቋሚዎች ይልቅ በማንኛውም አውድ ውስጥ የመጠቀም እድልን የሚወስነው የ "const" ባህሪ በ VecDeque :: አዲስ ተግባር ውስጥ ጥቅም ላይ ይውላል.
  • በአንድሮይድ መድረክ ላይ ለመስራት ቢያንስ NDK r25 (API 19) አሁን ያስፈልጋል፣ i.e. ዝቅተኛው የሚደገፍ የአንድሮይድ ስሪት ወደ 4.4 (ኪትካት) ከፍ ብሏል።
  • ሶስተኛው የድጋፍ ደረጃ ለ Sony PlayStation Vita መድረክ ተተግብሯል (armv7-sony-vita-newlibeabihf)። ሶስተኛው ደረጃ መሰረታዊ ድጋፍን ያካትታል፣ ነገር ግን ያለ አውቶሜትድ ሙከራ፣ ይፋዊ ግንባታዎችን ማተም ወይም ኮዱ መገንባት ይቻል እንደሆነ ማረጋገጥ።

ምንጭ: opennet.ru

አስተያየት ያክሉ