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

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

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

ዋና ፈጠራዎች:

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

    ለምሳሌ፣ በ 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 እንደ የጀርባ ድጋፍ ኮድ ማመንጨት). በተመሳሳይ ጊዜ ከአሮጌ LLVMs ጋር የመገንባት ችሎታ እስከ ስሪት 8 ድረስ ይቆያል ነገር ግን በነባሪነት (በ ዝገት-lang / llvm-ፕሮጀክት) አሁን LLVM 11 እየተጠቀመ ነው። LLVM 11 በሚቀጥሉት ቀናት ይለቀቃል ተብሎ ይጠበቃል።
  • በዊንዶውስ ፕላትፎርም ላይ የሩስትክ ኮምፕሌተር የ "-C መቆጣጠሪያ-ፍሰት ጠባቂ" ባንዲራ በመጠቀም የነቃ የመቆጣጠሪያ ፍሰት ትክክለኛነት ፍተሻዎችን (የመቆጣጠሪያ ፍሰት ጥበቃን) ለማንቃት ድጋፍ ይሰጣል። በሌሎች መድረኮች ይህ ባንዲራ ለጊዜው ችላ ይባላል።
  • አዲስ የኤፒአይዎች ክፍል የተረጋጋን ጨምሮ ወደ የተረጋጋ ምድብ ተላልፏል
    መለያ::አዲስ_ጥሬ፣
    ክልል:: ባዶ_ነው
    ክልል አካታች::ባዶ ነው፣
    ውጤት::እንደ_ደረፍ፣
    ውጤት::እንደ_ደረፍ_ሙት ፣
    ቪ:: መፍሰስ፣
    ጠቋሚ ::ማካካሻ_ከ፣
    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

አስተያየት ያክሉ