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

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

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

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

ዋና ፈጠራዎች፡-

  • Rustc compiler በሙከራ ጊዜ የኮድ ሽፋንን ለመገምገም የሚያገለግል የሽፋን መረጃ ለማመንጨት የተረጋጋ ኤልኤልቪኤም-ተኮር ስርዓት አለው። በሚሰበሰብበት ጊዜ የሽፋን መረጃን ለማንቃት የ"-Cinstrument-coverage" ባንዲራ መጠቀም አለቦት ለምሳሌ ስብሰባውን በ"RUSTFLAGS="C instrument-cover" የካርጎ ግንባታ" ትዕዛዝ መጀመር። በዚህ መንገድ የተጠናቀረውን ተፈፃሚ ፋይል ካስኬዱ በኋላ የነባሪ.ፕሮፍራው ፋይል አሁን ባለው ማውጫ ውስጥ ይቀመጣል፣ ለዚህም ሂደት የllvm-profdata utilityን ከllvm-tools-preview ክፍል መጠቀም ይችላሉ። የተብራራ የኮድ ሽፋን ሪፖርት ለማመንጨት በllvm-profdata የሚሰራው ውጤት ወደ lvm-cov ሊተላለፍ ይችላል። ከምንጩ ኮድ ጋር ያለው ግንኙነት መረጃ እየተመረመረ ካለው ሊተገበር ከሚችለው ፋይል የተወሰደ ሲሆን ይህም በሽፋን ቆጣሪዎች እና በኮዱ መካከል ስላለው ግንኙነት አስፈላጊውን መረጃ ያካትታል። 1| 1|fn ዋና() { 2| 1| println! ("ሄሎ, ዓለም!"); 3| 1|}
  • በጭነት ፓኬጅ ሥራ አስኪያጅ ውስጥ ለ "-timeings" ባንዲራ ድጋፍ ተረጋግቷል, ይህም የግንባታውን ሂደት እና የእያንዳንዱን ደረጃ የአፈፃፀም ጊዜ በተመለከተ ዝርዝር ዘገባ ማመንጨትን ያካትታል. ሪፖርቱ የስብሰባውን ሂደት አፈፃፀም ለማሻሻል ጠቃሚ ሊሆን ይችላል.
  • የካርጎ ፓኬጅ ሥራ አስኪያጁ በካርጎ.toml ፋይል ውስጥ በ[ባህሪዎች] ክፍል ውስጥ የተሰየሙ ንብረቶችን ዝርዝር በመዘርዘር በጥቅል ግንባታ ጊዜ ንብረቶቹን በማንቃት በሁኔታዊ ማጠናቀር እና አማራጭ ጥገኞችን ለመምረጥ ዘዴ አዲስ አገባብ ያቀርባል። የ "- ባህሪያት" ባንዲራ በመጠቀም. አዲሱ ስሪት በተለያየ የስም ቦታዎች እና ደካማ ጥገኛ ለሆኑ ጥገኞች ድጋፍን ይጨምራል።

    በመጀመሪያው ሁኔታ፣ ይህንን ጥገኝነት እንደ ባህሪው በተዘዋዋሪ ሳይወክል ከአማራጭ ጥገኝነት ጋር በግልፅ ለማገናኘት በ"[ባህሪዎች]" ክፍል ውስጥ “dep:” የሚል ቅድመ ቅጥያ ያላቸውን አባሎችን መጠቀም ይቻላል። በሁለተኛው ጉዳይ ላይ “?” በሚለው ምልክት ምልክት ለማድረግ ድጋፍ ተጨምሯል። ("package-name?/feature-name") አማራጭ ጥገኞች አንዳንድ ሌሎች ንብረቶች የተሰጠውን የአማራጭ ጥገኝነት ካካተቱ ብቻ መካተት አለባቸው። ለምሳሌ ከዚህ በታች ባለው ምሳሌ የሰርዴ ንብረቱን ማንቃት የ"ሰርዴ" ጥገኝነትን እንዲሁም "ሰርዴ"ን ለ"rgb" ጥገኝነት ያስችላል ነገር ግን የ"rgb" ጥገኝነት ሌላ ቦታ ከነቃ ብቻ ነው፡ [ጥገኛዎች] serde = {ስሪት = " 1.0.133", አማራጭ = እውነት } rgb = {ስሪት = "0.8.25", አማራጭ = እውነት } [ባህሪዎች] serde = ["dep:serde", "rgb?/serde"]

  • በመጨረሻው ልቀት ላይ የተሰናከለው የጭማሪ ማጠናቀር ድጋፍ ተመልሷል። ባህሪው እንዲሰናከል ያደረገው የአቀናባሪው ስህተት ተፈቷል።
  • በእንቅልፍ ሁኔታ ውስጥ ስርዓቱ ያሳለፈውን ጊዜ ግምት ውስጥ ያስገባውን የፈጣን ጊዜ ቆጣሪዎችን የአንድ ጊዜ አቆጣጠር ዋስትና በመስጠት አንዳንድ ችግሮች ተፈትተዋል ። ከዚህ ቀደም የስርዓተ ክወናው ኤፒአይ በጊዜ ቆጣሪውን ለመስራት በሚቻልበት ጊዜ ሁሉ ጥቅም ላይ ይውላል፣ ይህም የጊዜን አንድነት የሚያበላሹትን እንደ ሃርድዌር ችግሮች፣ ቨርቹዋልላይዜሽን መጠቀም ወይም በስርዓተ ክወናው ውስጥ ያሉ ስህተቶችን ግምት ውስጥ ያላስገባ ነው።
  • የባህሪ ዘዴዎችን እና አተገባበርን ጨምሮ አዲስ የ API ክፍል ወደ የተረጋጋ ምድብ ተወስዷል፡
    • አርክ :: አዲስ_ሳይክል
    • አርሲ:: አዲስ_ሳይክል
    • ቁራጭ :: EscapeAscii
    • <[u8]>:: አምልጥ_አስኪ
    • u8 :: አምልጥ_አስኪ
    • Vec :: ትርፍ_አቅም_mut
    • ምናልባት ዩኒት::
    • ምናልባት ዩኒት::አንብብ_ኢኒት_አንብብ
    • i8 :: abs_diff
    • i16 :: abs_diff
    • i32 :: abs_diff
    • i64 :: abs_diff
    • i128 :: abs_diff
    • መጠን :: abs_diff
    • u8 :: abs_diff
    • u16 :: abs_diff
    • u32 :: abs_diff
    • u64 :: abs_diff
    • u128 :: abs_diff
    • ተጠቀም :: abs_diff
    • ማሳያ ለ io :: ErrorKind
    • ከ ለ ExitCode
    • አይደለም ለ! ("በፍፁም" ብለው ይተይቡ)
    • _ኦፕ_መመደብ<$t>
    • ቅስት::አርክ64_ባህሪ_ ተገኝቷል!
  • ሶስተኛው የድጋፍ ደረጃ ለሚፕስ64-openwrt-linux-musl* እና armv7-ያልታወቀ-ሊኑክስ-ulibceabi (softfloat) መድረኮች ተተግብሯል። ሶስተኛው ደረጃ መሰረታዊ ድጋፍን ያካትታል፣ ነገር ግን ያለ አውቶሜትድ ሙከራ፣ ይፋዊ ግንባታዎችን ማተም ወይም ኮዱ መገንባት ይቻል እንደሆነ ማረጋገጥ።
  • አቀናባሪው LLVM 14ን ለመጠቀም ተቀይሯል።

በተጨማሪም, የሚከተሉትን ልብ ይበሉ:

  • Rustc_codegen_gcc backendን በመጠቀም rustc compilerን ለማስነሳት ተጨማሪ ድጋፍ ከጂሲሲ ፕሮጀክት የሚገኘውን libgccjit ላይብረሪ በ rustc ውስጥ እንደ ኮድ ጄነሬተር እንድትጠቀሙ ያስችሎታል፣ ይህም rustc በጂሲሲ ውስጥ ለሚገኙ አርክቴክቸር እና ማሻሻያዎች ድጋፍ እንዲያደርግ ያስችለዋል። የማጠናቀቂያ ማስተዋወቂያ ማለት የሩስት ኮምፕሌተርን በራሱ ለመገንባት በጂሲሲ ላይ የተመሰረተ ኮድ ጄኔሬተርን በ rustc የመጠቀም ችሎታ ማለት ነው። በተግባራዊው በኩል, ይህ ባህሪ ቀደም ሲል በ rustc ውስጥ ያልተደገፉ የህንፃ ሕንፃዎች የዝገት ፕሮግራሞችን እንዲገነቡ ያስችልዎታል.
  • የ uutils coreutils 0.0.13 Toolkit መለቀቅ አለ፣ በዚህ ውስጥ የጂኤንዩ Coreutils ጥቅል አናሎግ በዝገት ቋንቋ እየተዘጋጀ ነው። Coreutils ዓይነት፣ ድመት፣ ችሞድ፣ ቾውን፣ ክሮት፣ ሲፒ፣ ቀን፣ dd፣ echo፣ የአስተናጋጅ ስም፣ መታወቂያ፣ ln እና ls ጨምሮ ከመቶ በላይ መገልገያዎች ጋር አብሮ ይመጣል። የፕሮጀክቱ ግብ ከጂፒኤል የቅጂ መብት ፍቃድ ይልቅ በዊንዶውስ፣ ሬዶክስ እና ፉችሺያ መድረኮች ላይ ማስኬድ የሚችል፣ እንዲሁም በሚፈቀደው MIT ፈቃድ ስር የሚሰራጭ የ Coreutils ተሻጋሪ አማራጭ ትግበራ መፍጠር ነው።

    አዲሱ ስሪት የ cp፣ dd፣ df፣ split እና tr መገልገያዎችን ከጂኤንዩ ፕሮጀክት አቻዎቻቸው ጋር ተኳሃኝነትን ጨምሮ የብዙ መገልገያዎችን አተገባበር አሻሽሏል። የመስመር ላይ ሰነዶች ቀርበዋል. የማጨብጨብ ተንታኙ የትዕዛዝ መስመር ነጋሪ እሴቶችን ለመተንተን ይጠቅማል፣ ይህም የ"--help" ባንዲራ ውጤቱን አሻሽሏል እና የረዥም ትዕዛዞችን ምህፃረ ቃል (ለምሳሌ ከ"ls -color" ይልቅ "ls -col" መግለጽ ይችላሉ ”)

ምንጭ: opennet.ru

አስተያየት ያክሉ