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

የታተመ የስርዓት ፕሮግራሚንግ ቋንቋ መለቀቅ ዝገት 1.44በሞዚላ ፕሮጀክት የተመሰረተ። ቋንቋው በማህደረ ትውስታ ደህንነት ላይ ያተኩራል፣ አውቶማቲክ የማህደረ ትውስታ አስተዳደርን ይሰጣል፣ እና ቆሻሻ ሰብሳቢ ሳይጠቀሙ ከፍተኛ ተግባርን ትይዩ ለማድረግ የሚረዱ መሳሪያዎችን ይሰጣል። አሂድ.

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

በአዲሱ የተለቀቀው ማስታወቂያ ጽሑፍ ውስጥ ፣ የዝገቱ ገንቢዎች በፖለቲካ ውስጥ ተሳትፈዋል እና በፖሊስ ጥቃት ላይ ከተቃዋሚዎች ጋር የመተባበር ምልክት እንደ ዝገት 1.44 ላይ የተደረጉ ለውጦችን ሙሉ ግምገማ ለማተም ፈቃደኛ አልሆኑም ፣ ይህም ይህ ጉዳይ የበለጠ አስፈላጊ መሆኑን ያሳያል ። የቴክኒክ እውቀት ልውውጥ ይልቅ. መሰረታዊ ፈጠራዎች:

  • የካርጎ ጥቅል አስተዳዳሪ የዛፍ መሰል ጥገኝነት ግራፍ የሚያሳየውን የ"ካርጎ ዛፍ" ትዕዛዝ ያዋህዳል። በተጨማሪም "- የተባዙ" ("የካርጎ ዛፍ -d") አማራጭ ተጨምሯል, ይህም በተለያዩ ተመሳሳይ ጥቅል ስሪቶች ውስጥ ያሉትን ጥገኛዎች ለመገምገም ያስችላል.

    mdbook v0.3.2 (/ተጠቃሚዎች/src/ዝገት/mdbook)
    ├── አሞኒያ v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── መዝገብ v0.4.8
    │ │ │ └── cfg-ከሆነ v0.1.9
    │ │ ├── ማክ v0.1.1
    │ │ └── markup5ever v0.9.0
    │ │ ├── መዝገብ v0.4.8 (*)
    │ │ ├── PHf v0.7.24
    │ │ │ └── phf_የተጋራ v0.7.24
    │ │ │ ├── ሲፋሸር v0.2.3
    │ │ │ └── ዩኒሴስ v1.4.2
    │ │ │ [የግንባታ-ጥገኛዎች] │ │ │ └── ስሪት_ቼክ v0.1.5
    ...

  • ከ std ("#! [no_std]") ጋር ያልተያያዙ አፕሊኬሽኖች በ"async" ተግባር ላይ ተመስርተው ያልተመሳሰሉ የፕሮግራም አወጣጥ ቴክኒኮች ድጋፍ ይተገበራሉ፣ አስንክ ይንቀሳቀሳሉ {... } ብሎክ እና የ".wait" ኦፕሬተር፣ ይህም የማያግድ ተቆጣጣሪዎች ዋና የትዕዛዝ ፍሰትን ቀላል ማድረግ።
  • ሊሰፋ የሚችል የሞጁል ተዋረድ ፍቺ እቅድ ድጋፍ ወደ ተንታኙ ተጨምሯል። ለምሳሌ፣ የሚከተለው ግንባታ ስህተትን አያመጣም፣ ምንም እንኳን ሞጁሉ "foo/bar/baz.rs" ባይኖርም (ግንባታው አሁንም በትርጓሜ ልክ ያልሆነ እና ስህተት ሊፈጥር ይችላል፣ነገር ግን ለውጦቹ ሊታዩ እና ሊተነተኑ ይችላሉ ማክሮ እና ሁኔታዊ የጥምር ደረጃ፡-

    #[cfg(FALSE)] mod foo {
    ሞድ ባር {
    ሞድ ባዝ;
    }
    }

  • የሩስትክ ማቀናበሪያ የ"-C codegen-units" ባንዲራ በተጨመረ ሁነታ የመጠቀም ችሎታን አክሏል። የመፍታቱ ሂደት ከተሰናከለ እና ምንም ልዩ ሁኔታዎች ካልተጣሉ ምንም የአፈፃፀም ተፅእኖ እንዳይኖረው የመያዝ_unwind ትግበራ እንደገና ተሠርቷል።
  • የደረጃ 64 ድጋፍ ለ aarch64-ያልታወቀ-ምንም፣ aarch64-ያልታወቀ-የለም-softfloat፣ arm86-apple-tvos እና x64_XNUMX-apple-tvos መድረኮች ተሰጥቷል። ሶስተኛው ደረጃ መሰረታዊ ድጋፍን ያካትታል ነገር ግን ያለ አውቶማቲክ ሙከራ እና ኦፊሴላዊ ግንባታዎች መታተምን ያካትታል.
  • አዲስ የኤፒአይዎች ክፍል የተረጋጋን ጨምሮ ወደ የተረጋጋ ምድብ ተላልፏል
    PathBuf::ከአቅም ጋር፣
    PathBuf::አቅም፣
    PathBuf:: ግልጽ
    PathBuf::አስቀምጥ፣
    PathBuf::የተያዘው_ትክክል፣
    PathBuf::ለመስማማት_መቀነስ፣
    {f32|f64}::ምልክት_ያልተደረገበት
    አቀማመጥ::አሰላለፍ፣
    አቀማመጥ::ለመደርደር_ፓድ፣
    አቀማመጥ :: ድርድር እና
    አቀማመጥ:: ማራዘም።

  • የመደበኛ ቤተ-መጽሐፍት የተራዘሙ ተግባራት፡-
    • በVec:: new() ላይ በቀጥታ የሚንፀባረቅ ልዩ የ"vec![]" ተለዋጭ፣ "vec![]" ከቋሚዎች ይልቅ በዐውደ-ጽሑፍ ውስጥ ጥቅም ላይ እንዲውል ያስችለዋል።
    • ለመለወጥ የባህሪው ትግበራ (impl) ተጨምሯል:: የማይሳሳት ሃሽ.
    • OsString ብልጥ ጠቋሚዎችን ተግባራዊ ያደርጋል DerefMut и IndexMut"&mut OsStr" በመመለስ ላይ።
    • ለዩኒኮድ 13 ድጋፍ ታክሏል።
    • በ String ውስጥ ተተግብሯል ከ<&mut str>.
    • IoSlice ባህሪውን ተግባራዊ ያደርጋል ግልባጭ.
    • ቬክ ከ<[T; ነ]>።
    • proc_macro:: LexError fmt: ማሳያ እና ስህተትን ተግባራዊ ያደርጋል።
  • ከቋሚዎች ይልቅ በማንኛውም አውድ ውስጥ ጥቅም ላይ ሊውል እንደሚችል የሚወስነው የ"const" ባህሪ ከ_ሌ_ባይት፣ እስከ_ሌ_ባይት፣ ከቤ_ባይት፣ እስከ_ቤ_ባይት፣ ከኔ_ባይት እና እስከ_ኔ_ባይት ዘዴዎች ለሁሉም የኢንቲጀር አይነቶች ጥቅም ላይ ይውላል።
  • በዊንዶውስ ላይ ለጂኤንዩ የመሳሪያ ስርዓቶች ከ".lib" ይልቅ በ".a" ቅርጸት የማይንቀሳቀሱ ቤተ-ፍርግሞችን ለማፍራት ድጋፍ ታክሏል።
  • ለኤልኤልቪኤም ዝቅተኛው መስፈርቶች ወደ LLVM ስሪት 8 ተነስተዋል።

ምንጭ: opennet.ru

አስተያየት ያክሉ