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

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

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

ዋና ፈጠራዎች:

  • በ rustc ኮምፕሌተር ውስጥ ደህንነቱ የተጠበቀ በኮድ መገለጫ ውጤቶች (PGO፣ በመገለጫ የሚመራ ማመቻቸት) ላይ በመመስረት ለማመቻቸት ድጋፍ
    በፕሮግራሙ አፈፃፀም ወቅት የተጠራቀሙ ስታቲስቲክስ ትንተና ላይ በመመርኮዝ የበለጠ ጥሩ ኮድ እንዲያወጡ ያስችልዎታል። መገለጫ ለማመንጨት የ “-C profile-generate” ባንዲራ ቀርቧል እና በስብሰባ ጊዜ ፕሮፋይሉን ለመጠቀም - “-C profile-use” (በመጀመሪያ ፕሮግራሙ ከመጀመሪያው ባንዲራ ጋር ተሰብስቦ ይሮጣል እና ከተፈጠረ በኋላ) መገለጫው, ከሁለተኛው ባንዲራ ጋር እንደገና ተሰብስቧል);

  • የኮንሶል አፕሊኬሽኖችን በፍጥነት ለመፈተሽ ለመጠቀም ምቹ የሆነውን "የካርጎ አሂድ" ትዕዛዙን በሚፈጽምበት ጊዜ በጥቅሉ ውስጥ ብዙ ሊተገበሩ የሚችሉ ፋይሎች ካሉ በራስ ሰር የሚሰራ ፋይልን የመምረጥ ችሎታ ተጨምሯል። የሚፈጸመው ነባሪ ፋይል በነባሪ-አሂድ መመሪያ በ [ጥቅል] ክፍል ውስጥ ከጥቅል ግቤቶች ጋር ይወሰናል, ይህም "የጭነት ሩጫ" በሄዱ ቁጥር የፋይሉን ስም በ "-ቢን" ባንዲራ በኩል በግልጽ እንዳይገልጹ ያስችልዎታል;
  • የ"ጭነት ሻጭ" ትዕዛዝ፣ ቀደም ሲል እንደ የተለየ ጥቅል. ትዕዛዙ ሥራን በአካባቢያዊ የጥገኛ ቅጂዎች እንዲያደራጁ ይፈቅድልዎታል - “የጭነት አቅራቢ”ን ከፈጸሙ በኋላ ሁሉም የፕሮጀክቱ ጥገኛ ኮዶች ከ crates.io ወደ አካባቢያዊ ማውጫ ይወርዳሉ ፣ ከዚያ ሳጥኖችን ሳይደርሱ ለስራ ሊያገለግል ይችላል። io (ትዕዛዙን ከፈጸሙ በኋላ ውቅሩን ለመለወጥ ፍንጭ ማውጫውን ለግንባታ ለመጠቀም ያሳያል)። ይህ ባህሪ አስቀድሞ መለቀቅ ጋር በአንድ ማህደር ውስጥ ሁሉንም ጥገኝነት ማሸግ ጋር rustc ማጠናከሪያ ማድረስ ለማደራጀት ጥቅም ላይ ይውላል;
  • አሁን ዓይነት ተለዋጭ ስሞችን በመጠቀም ወደ ኢነም አማራጮች አገናኞችን መፍጠር ተችሏል (ለምሳሌ በ ተግባር አካል ውስጥ "fn increment_or_zero(x: ByteOption)"ByteOption::None => 0" ን መግለጽ ይችላሉ) ስሌት ገንቢዎችን ይተይቡ (‹‹‹ MyType‹.. ››:: አማራጭ => N) ወይም ራስን ማግኘት (በብሎኮች c &self ውስጥ "ራስ :: ሩብ => 25" መግለጽ ይችላሉ);
  • በማክሮዎች ውስጥ ያልተሰየሙ ቋሚዎችን የመፍጠር ችሎታ ታክሏል። በ "const" ውስጥ ያለውን የኤለመንቱን ስም ከመግለጽ ይልቅ አሁን "_" ቁምፊን በመጠቀም የማይደጋገም ለዪን በተለዋዋጭነት ለመምረጥ ይችላሉ, እንደገና ማክሮውን ሲደውሉ የስም ግጭቶችን ያስወግዱ;
  • የ"#[repr(align(N))"'' ባህሪን ከኤንሞች ጋር የመጠቀም ችሎታ ታክሏል አገባብ በመጠቀም አሰላለፍN‹T› መዋቅርን ከአሰላለፍ ጋር ከመግለጽ እና በመቀጠል AlignN‹MyEnum›;
  • BufReader:: Buffer፣ BufWriter:: Buffer እና ጨምሮ አዲስ የኤፒአይ ክፍል ወደ የተረጋጋ ምድብ ተወስዷል።
    ሕዋስ::ከሙት_ሙት፣
    ሕዋስ ::የሴሎች_ክፍል፣
    DoubleEndedIterator ::nth_back፣
    አማራጭ::
    {i,u}{8,16,64,128,size}::reverse_bits፣መጠቅለል::የተገላቢጦሽ_ቢት እና
    ቁራጭ ::ውስጥ_ገልብጥ።

በተጨማሪም, ሊታወቅ ይችላል የሙከራ መጀመሪያ ፕሮጀክት Async-stdየ Rust ስታንዳርድ ቤተ-መጽሐፍት ያልተመሳሰለ ተለዋጭ ያቀርባል (የ std ቤተ-መጽሐፍት ወደብ፣ ሁሉም በይነገጾች በአሲንክ ስሪት ውስጥ የቀረቡ እና ከአሲንክ/አገባብ አገባብ ጋር ለመጠቀም ዝግጁ የሆኑ)።

ምንጭ: opennet.ru

አስተያየት ያክሉ