በሞዚላ ፕሮጀክት የተመሰረተው፣ አሁን ግን በገለልተኛ ለትርፍ ያልተቋቋመ ድርጅት Rust Foundation ስር የተገነባው የ Rust 1.77 አጠቃላይ ዓላማ ፕሮግራሚንግ ቋንቋ ታትሟል። ቋንቋው በማህደረ ትውስታ ደህንነት ላይ ያተኩራል እና ከፍተኛ የስራ ትይዩነትን ለማግኘት የቆሻሻ አሰባሳቢውን እና የሩጫ ጊዜን (የሩጫ ጊዜውን ወደ መሰረታዊ አጀማመር እና ደረጃውን የጠበቀ ቤተመፃህፍት መጠገን ይቀንሳል)።
የዝገት የማስታወሻ አያያዝ ዘዴዎች ጠቋሚዎችን በሚጠቀሙበት ጊዜ ገንቢውን ከስህተቶች ያድናሉ እና በአነስተኛ ደረጃ የማህደረ ትውስታ አያያዝ ምክንያት ከሚፈጠሩ ችግሮች ለምሳሌ ከተለቀቀ በኋላ የማስታወሻ ቦታን ማግኘት ፣ ባዶ ጠቋሚዎችን መሰረዝ ፣ ቋት መጨናነቅ ፣ ወዘተ. ቤተ መፃህፍትን ለማሰራጨት፣ ግንባታዎችን ለማቅረብ እና ጥገኞችን ለማስተዳደር ፕሮጀክቱ የካርጎ ጥቅል አስተዳዳሪን ያዘጋጃል። የ crates.io ማከማቻው ቤተ-መጻሕፍትን ለማስተናገድ ይደገፋል።
የማህደረ ትውስታ ደህንነት በራስት ውስጥ በማጠናቀር ጊዜ በማጣቀሻ ቁጥጥር ፣የነገሮችን ባለቤትነት በመከታተል ፣የእቃውን የህይወት ዘመን (ስፋት) በመከታተል እና በኮድ አፈፃፀም ወቅት የማስታወስ ችሎታን ትክክለኛነት በመገምገም ይሰጣል ። ዝገት ከኢንቲጀር መብዛት ጥበቃን ይሰጣል፣ ከመጠቀምዎ በፊት ተለዋዋጭ እሴቶችን የግዴታ ማስጀመርን ይጠይቃል፣ በመደበኛ ቤተ-መጽሐፍት ውስጥ ስህተቶችን በተሻለ ሁኔታ ይቆጣጠራል ፣ የማይለዋወጥ ማጣቀሻዎችን እና ተለዋዋጮችን በነባሪነት ይተገበራል ፣ ምክንያታዊ ስህተቶችን ለመቀነስ ጠንካራ የማይንቀሳቀስ ትየባ ይሰጣል።
ዋና ፈጠራዎች፡-
- ባዶ የተቋረጠ ቁምፊ ያለው በማህደረ ትውስታ ውስጥ የተከማቹ እና ከ"CStr" አይነት ጋር ለተያያዙት ለ C-strings (c"text") ቀጥተኛ ድጋፍ ታክሏል። የC-string ድጋፍ ባዶ-ያልተቋረጡ ሕብረቁምፊዎችን በሚጠቀሙ የፕሮግራሚንግ ቋንቋዎች ከንብርብሮች ጋር የሚገናኝ የአጻጻፍ ኮድን ያቃልላል ተብሎ ይጠበቃል እና አስፈላጊ የሆኑ ቼኮች በማጠናቀር ደረጃ ላይ እንዲደረጉ ያስችላቸዋል። const ሠላም: & ዋና :: ffi :: CStr = c "ሄሎ, ዓለም!";
- ባልተመሳሰሉ ተግባራት ውስጥ "async fn" የሚለውን አገላለጽ ተጠቅመው በታወጁ፣ ተደጋጋሚነት መጠቀም ይፈቀዳል፣ ማለትም. እንደነዚህ ያሉ ተግባራት አሁን እራሳቸውን ሊጠሩ ይችላሉ. async fn fib(n: u32) -> u32 {ተዛማጅ n { 0 | 1 => 1፣ _ => ሣጥን::ፒን(fib(n-1))።ይጠባበቁ
- የማክሮው_ማክሮ ተረጋግቷል፣ ይህም ከአይነቱ መጀመሪያ አንፃር የመዋቅሮች፣የማህበራት እና የቱፕልስ መስኮች ባይት ማካካሻ እንዲወስኑ ያስችልዎታል። በተግባራዊ ሁኔታ, የዓይነቱ ምሳሌ በማይኖርበት ጊዜ በመስክ ማካካሻ ደረጃ ላይ መሥራት በሚፈልጉበት ሁኔታዎች ውስጥ ማክሮ ጠቃሚ ሊሆን ይችላል. በተለይም እንደ ሾፌሮች ያሉ ዝቅተኛ ደረጃ ክፍሎችን ሲፈጥሩ የተግባር ማካካሻ_ያስፈልጋል። std ይጠቀሙ :: mem; #[repr (C)] struct FieldStruct {መጀመሪያ፡ u8፣ ሁለተኛ፡ u16፣ ሶስተኛ፡ u8} አስርት_eq!(mem:: offset_of!(FieldStruct, first)፣ 0); assert_eq!(mem:: offset_of!(FieldStruct, second)፣ 2); assert_eq!(mem:: offset_of! (FieldStruct, third), 4);
- በካርጎ ጥቅል አቀናባሪ ውስጥ፣ በመልቀቂያ መገለጫዎች ውስጥ ፋይሎችን ከማረም ውሂብ ማጽዳት በነባሪነት ነቅቷል (strip = "debuginfo")፣ የማረም ሁነታ በካርጎ መገለጫ ውስጥ በግልፅ ካልነቃ በስተቀር፣ ማለትም. መለኪያ ማረም = 0 ከሆነ.
- የ"-Zthir-unsafeck=on" አማራጭ በነባሪነት ነቅቷል፣ ለTHIR (የተየበ ከፍተኛ ደረጃ መካከለኛ ውክልና) ደህንነቱ ያልተጠበቀ ቼክ ይሰጣል።
- ተለዋዋጭ የማይለዋወጡ እሴቶች ማጣቀሻዎችን ሲጠቀሙ ማስጠንቀቂያ ለማሳየት ለstatic_mut_refs የሊንት ቼክ ታክሏል።
- “ከ<&[T;” ዓይነትን የመጠቀም ችሎታ ተተግብሯል። N]>" ለ "ላም<[ቲ]>" ዓይነት። fn foo (ውሂብ: impl ወደ ውስጥ >) {/* … */} fn ዋና() { foo(&["ሄሎ”፣ “ዓለም”]); }
- አቀናባሪው የ16-ባይት i128 እና u128 አይነቶችን ለ x86 ሲስተሞች አሰላለፍ ያቀርባል።
- የባህሪ ዘዴዎችን እና አተገባበርን ጨምሮ አዲስ የ API ክፍል ወደ የተረጋጋ ምድብ ተወስዷል፡
- ድርድር :: እያንዳንዱ_ማጣቀሻ
- ድርድር :: እያንዳንዱ_mut
- አንኳር :: የተጣራ
- f32::የዙር_ቁርኝት_እንኳን
- f64::የዙር_ቁርኝት_እንኳን
- mem ::ማካካሻ_የ!
- ቁራጭ ::የመጀመሪያው_ቁልቁል::
- ቁራጭ ::የመጀመሪያ_ቸንክ_ሙት
- ቁራጭ :: የተከፈለ_የመጀመሪያው_ቻንክ
- ቁራጭ ::የተከፈለ_የመጀመሪያ_chunk_mut
- ቁራጭ :: የመጨረሻ_ቁልቁል
- ቁራጭ ::የመጨረሻ_chunk_mut
- ቁራጭ:: የተከፈለ_የመጨረሻ_ቁልቁል::
- ቁራጭ ::የተከፈለ_የመጨረሻ_chunk_mut
- ቁራጭ:: ቸንክ_በ
- ቁራጭ:: ቸንክ_በሙት
- የታሰረ:: ካርታ
- ፋይል ::አዲስ_ፍጠር
- Mutex:: ግልጽ_መርዝ
- RwLock :: ግልጽ_መርዝ
- ሶስተኛው የድጋፍ ደረጃ ለ aarch64-ያልታወቀ-illumos፣ሄክሳጎን-ያልታወቀ-ምንም-elf፣ riscv32imafc-esp-espidf እና riscv32im-risc0-zkvm-elf መድረኮች ተተግብሯል። ሶስተኛው ደረጃ መሰረታዊ ድጋፍን ያካትታል፣ ነገር ግን ያለ አውቶሜትድ ሙከራ፣ ይፋዊ ግንባታዎችን ማተም ወይም ኮዱ መገንባት ይቻል እንደሆነ ማረጋገጥ።
ምንጭ: opennet.ru
