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

በሞዚላ ፕሮጀክት የተመሰረተው የ Rust system ፕሮግራሚንግ ቋንቋ 1.47 ታትሟል። ቋንቋው በማህደረ ትውስታ ደህንነት ላይ ያተኩራል፣ አውቶማቲክ የማህደረ ትውስታ አስተዳደርን ይሰጣል፣ እና ቆሻሻ ሰብሳቢ ወይም የሩጫ ጊዜ ሳይጠቀሙ ከፍተኛ ተግባርን ትይዩ ለማድረግ የሚያስችል ዘዴን ይሰጣል (የአሂድ ጊዜ ወደ መሰረታዊ ጅምር እና መደበኛ ቤተ-መጽሐፍት ጥገና)።

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

ዋና ፈጠራዎች፡-

  • የዘፈቀደ መጠን ላላቸው ድርድር ባህሪዎች የተተገበረ ድጋፍ። ከዚህ ቀደም ለሁሉም የኢንቲጀር እሴቶች አጠቃላይ ተግባራትን መግለጽ ባለመቻሉ፣ መደበኛው ቤተ-መጽሐፍት አብሮ የተሰራ የባህሪ ድጋፍን እስከ 32 ንጥረ ነገሮች መጠን ያላቸውን ድርድር ብቻ ይሰጥ ነበር (የእያንዳንዱ መጠን ባህሪዎች በስታትስቲክስ ተለይተዋል)። ለኮንስት ጄኔቲክስ ተግባራዊነት መፈጠር ምስጋና ይግባውና ለማንኛውም የድርድር መጠን አጠቃላይ ተግባራትን መግለጽ ተችሏል ፣ ግን በቋንቋው ውስጥ በተረጋጋ ባህሪ ውስጥ ገና አልተካተቱም ፣ ምንም እንኳን በአቀናባሪው ውስጥ ቢተገበሩም እና አሁን በመደበኛ ቤተ-መጽሐፍት ውስጥ ጥቅም ላይ ይውላሉ። ለማንኛውም መጠን ድርድር ዓይነቶች።
    ለምሳሌ፣ በ Rust 1.47 ውስጥ ያለው የሚከተለው ግንባታ የአንድ ድርድር ይዘቶችን ያትማል፣ ምንም እንኳን ከዚህ ቀደም ስህተት ያስከትል ነበር፡

fn ዋና() {
ይፍቀዱ xs = [0; 34];
println!("{:?}", xs);
}

  • የአጭር መከታተያዎች (የኋላ ዱካ)፣ በድንገተኛ ሁኔታዎች ውስጥ ውፅዓት የቀረበ። በአብዛኛዎቹ ሁኔታዎች ፍላጎት የሌላቸው ንጥረ ነገሮች, ነገር ግን ውጤቱን የተዝረከረኩ እና ለችግሩ ዋና መንስኤዎች ትኩረትን የሚከፋፍሉ, ከክትትል ውስጥ የተገለሉ ናቸው. ሙሉ ዱካ ለመመለስ፣ የአካባቢን ተለዋዋጭ "RUST_BACKTRACE=ሙሉ" መጠቀም ይችላሉ። ለምሳሌ, ለኮዱ

fn ዋና() {
ድንጋጤ!();
}

ከዚህ ቀደም ዱካው በ 23 ደረጃዎች ይወጣል ፣ አሁን ግን ወደ 3 ደረጃዎች ይቀነሳል ፣ ይህም ወዲያውኑ ምንነቱን እንዲገነዘቡ ያስችልዎታል-

ፈትል 'ዋና' በ'ግልጽ ድንጋጤ' የተደናገጠ፣ src/main.rs:2:5
የኋላ መቆለል;
0: std :: መሸበር::የመጀመሪያ_ድንጋጤ::
በ /rustc/d…d75a/library/std/src/panicking.rs:497
1: የመጫወቻ ቦታ :: ዋና
በ./src/main.rs፡2
2: አንኳር :: ops :: ተግባር :: FnOnce :: አንዴ ደውል::
በ /rustc/d…d75a/library/core/src/ops/function.rs:227

  • የRustc ማቀናበሪያው LLVM 11ን በመጠቀም እንዲገነባ ዘምኗል (ዝገት LLVMን ለኮድ ማመንጨት እንደ ደጋፊ ይጠቀማል)። በተመሳሳይ ጊዜ በአሮጌ LLVM የመገንባት ችሎታ እስከ ስሪት 8 ድረስ ይቆያል ነገር ግን በነባሪነት (በዝገት-ላንግ/ኤልቪኤም-ፕሮጄክት) LLVM 11 አሁን ጥቅም ላይ ይውላል። የኤልኤልቪኤም 11 መለቀቅ በመጪው ጊዜ ይጠበቃል። ቀናት.
  • በዊንዶውስ ፕላትፎርም ላይ የሩስትክ ኮምፕሌተር የ "-C መቆጣጠሪያ-ፍሰት ጠባቂ" ባንዲራ በመጠቀም የነቃ የመቆጣጠሪያ ፍሰት ትክክለኛነት ፍተሻዎችን (የመቆጣጠሪያ ፍሰት ጥበቃን) ለማንቃት ድጋፍ ይሰጣል። በሌሎች መድረኮች ይህ ባንዲራ ለጊዜው ችላ ይባላል።
  • አዲስ የ API ክፍል ወደ የተረጋጋው ምድብ ተላልፏል፣ የረጋ መታወቂያ :: new_raw፣ Range :: ባዶ_ባዶ፣ ክልል አካታች :: ባዶ_ሆነ፣ ውጤት :: እንደ_ደረፍ፣ ውጤት :: as_deref_mut፣ ቬክ :: ሌክ፣ ጠቋሚ :: ከጥቅም ውጭ የሆነ , f32:: TAU እና f64:: TAU.
  • ከቋሚዎች ይልቅ በማንኛውም አውድ ውስጥ የመጠቀም እድልን የሚወስነው የ “const” ባህሪ በሚከተሉት ዘዴዎች ውስጥ ጥቅም ላይ ይውላል ።
    • ከዜሮ በስተቀር ለሁሉም ኢንቲጀሮች አዲስ;
    • checked_add ፣ checked_sub ፣ checked_mul ፣ checked_neg ፣ checked_shl ፣ checked_shr ፣ saturating_add ፣ saturating_sub እና saturating_mul ለሁሉም ኢንቲጀር;
    • is_ascii_alphabetic፣ is_ascii_ትልቅ ሆሄያት ነው፣ የአነስተኛ ሆሄያት ነው፣ is_ascii_alphanumeric ነው፣ is_ascii_digit, is_ascii_hexdigit, is_ascii_punctuation, is_ascii_graphic, is_ascii_whitespace and is_ascii_control for char and u8 አይነቶች።
  • ለFreeBSD፣ የFreeBSD 11.4 የመሳሪያ ስብስብ ጥቅም ላይ ይውላል (FreeBSD 10 LLVM 11ን አይደግፍም)።

ከ የተወሰደ opennet.ru

ምንጭ: linux.org.ru

አስተያየት ያክሉ