రస్ట్ 1.37 ప్రోగ్రామింగ్ లాంగ్వేజ్ విడుదల

ప్రచురించబడింది సిస్టమ్ ప్రోగ్రామింగ్ భాష విడుదల రస్ట్ 1.37, మొజిల్లా ప్రాజెక్ట్ ద్వారా స్థాపించబడింది. భాష మెమరీ భద్రతపై దృష్టి పెడుతుంది, ఆటోమేటిక్ మెమరీ నిర్వహణను అందిస్తుంది మరియు చెత్త సేకరించేవాడు లేదా రన్‌టైమ్‌ను ఉపయోగించకుండా అధిక పని సమాంతరతను సాధించడానికి ఒక మార్గాన్ని అందిస్తుంది.

రస్ట్ యొక్క ఆటోమేటిక్ మెమరీ మేనేజ్‌మెంట్ డెవలపర్‌ను పాయింటర్ మానిప్యులేషన్ నుండి విముక్తి చేస్తుంది మరియు తక్కువ-స్థాయి మెమరీ మానిప్యులేషన్ నుండి ఉత్పన్నమయ్యే సమస్యల నుండి రక్షిస్తుంది, ఉదాహరణకు ఫ్రీ-ఫ్రీ మెమరీ యాక్సెస్‌లు, శూన్య పాయింటర్ డెరిఫరెన్స్‌లు, బఫర్ ఓవర్‌రన్‌లు మరియు వంటివి. లైబ్రరీలను పంపిణీ చేయడానికి, అసెంబ్లీని నిర్ధారించడానికి మరియు ప్రాజెక్ట్ ద్వారా డిపెండెన్సీలను నిర్వహించడానికి ప్యాకేజీ మేనేజర్ అభివృద్ధి చేయబడుతోంది. సరుకు, ప్రోగ్రామ్‌కు అవసరమైన లైబ్రరీలను ఒకే క్లిక్‌లో పొందడానికి మిమ్మల్ని అనుమతిస్తుంది. లైబ్రరీలను హోస్ట్ చేయడానికి రిపోజిటరీకి మద్దతు ఉంది crates.io.

ప్రధాన ఆవిష్కరణలు:

  • rustc కంపైలర్‌లో సురక్షితం కోడ్ ప్రొఫైలింగ్ ఫలితాల ఆధారంగా ఆప్టిమైజేషన్‌కు మద్దతు (PGO, ప్రొఫైల్-గైడెడ్ ఆప్టిమైజేషన్),
    ప్రోగ్రామ్ అమలు సమయంలో సేకరించబడిన గణాంకాల విశ్లేషణ ఆధారంగా మరింత అనుకూలమైన కోడ్‌ను రూపొందించడానికి మిమ్మల్ని అనుమతిస్తుంది. ప్రొఫైల్‌ను రూపొందించడానికి, “-C ప్రొఫైల్-జనరేట్” ఫ్లాగ్ అందించబడుతుంది మరియు అసెంబ్లీ సమయంలో ప్రొఫైల్‌ను ఉపయోగించడానికి - “-C ప్రొఫైల్-ఉపయోగం” (ప్రారంభంలో, ప్రోగ్రామ్ మొదటి ఫ్లాగ్‌తో సమావేశమై, చుట్టూ నడుస్తుంది మరియు సృష్టించిన తర్వాత ప్రొఫైల్, ఇది రెండవ జెండాతో తిరిగి అమర్చబడింది);

  • "కార్గో రన్" కమాండ్‌ను అమలు చేస్తున్నప్పుడు, ఇది కన్సోల్ అప్లికేషన్‌లను శీఘ్రంగా పరీక్షించడం కోసం ఉపయోగించడానికి సౌకర్యంగా ఉంటుంది, ప్యాకేజీలో అనేక ఎక్జిక్యూటబుల్ ఫైల్‌లు ఉంటే అమలు చేయడానికి స్వయంచాలకంగా ఎక్జిక్యూటబుల్ ఫైల్‌ను ఎంచుకునే సామర్థ్యం జోడించబడుతుంది. ఎగ్జిక్యూట్ చేయాల్సిన డిఫాల్ట్ ఫైల్ ప్యాకేజీ పారామితులతో [ప్యాకేజీ] విభాగంలో డిఫాల్ట్-రన్ డైరెక్టివ్ ద్వారా నిర్ణయించబడుతుంది, ఇది మీరు "కార్గో రన్"ని అమలు చేసే ప్రతిసారీ "-బిన్" ఫ్లాగ్ ద్వారా ఫైల్ పేరును స్పష్టంగా పేర్కొనకుండా ఉండటానికి మిమ్మల్ని అనుమతిస్తుంది;
  • "కార్గో వెండర్" కమాండ్, గతంలో ఇలా సరఫరా చేయబడింది ప్రత్యేక ప్యాకేజీ. డిపెండెన్సీల స్థానిక కాపీతో పనిని నిర్వహించడానికి కమాండ్ మిమ్మల్ని అనుమతిస్తుంది - “కార్గో వెండర్”ని అమలు చేసిన తర్వాత, ప్రాజెక్ట్ యొక్క డిపెండెన్సీల యొక్క అన్ని సోర్స్ కోడ్‌లు crates.io నుండి స్థానిక డైరెక్టరీకి డౌన్‌లోడ్ చేయబడతాయి, తర్వాత వీటిని క్రేట్లను యాక్సెస్ చేయకుండా పని కోసం ఉపయోగించవచ్చు. io (కమాండ్‌ని అమలు చేసిన తర్వాత, బిల్డ్‌ల కోసం డైరెక్టరీని ఉపయోగించడానికి కాన్ఫిగరేషన్‌ను మార్చడానికి సూచన చూపబడుతుంది). విడుదలతో ఒక ఆర్కైవ్‌లో అన్ని డిపెండెన్సీల ప్యాకేజింగ్‌తో rustc కంపైలర్ డెలివరీని నిర్వహించడానికి ఈ ఫీచర్ ఇప్పటికే ఉపయోగించబడింది;
  • టైప్ మారుపేర్లను ఉపయోగించి enum ఎంపికలకు లింక్‌లను సృష్టించడం ఇప్పుడు సాధ్యమవుతుంది (ఉదాహరణకు, “fn increment_or_zero(x: ByteOption) ఫంక్షన్‌లో మీరు “ByteOption::None => 0”ని ​​పేర్కొనవచ్చు), గణన నిర్మాణాలను టైప్ చేయండి (‹ MyType‹.. ››::option => N) లేదా స్వీయ యాక్సెస్‌లు (c &self బ్లాక్‌లలో మీరు "Self:: Quarter => 25"ని పేర్కొనవచ్చు);
  • మాక్రోలలో పేరులేని స్థిరాంకాలను సృష్టించగల సామర్థ్యం జోడించబడింది. "const"లో మూలకం పేరును నిర్వచించే బదులు, మీరు ఇప్పుడు "_" అక్షరాన్ని ఉపయోగించి, స్థూలానికి మళ్లీ కాల్ చేస్తున్నప్పుడు పేరు వైరుధ్యాలను నివారించి, పునరావృతం కాని ఐడెంటిఫైయర్‌ను డైనమిక్‌గా ఎంచుకోవచ్చు;
  • సమలేఖనంతో AlignN‹T› స్ట్రక్చర్‌ని నిర్వచించి, ఆపై AlignN‹MyEnum›ని ఉపయోగించి సింటాక్స్‌ని ఉపయోగించి enumsతో "#[repr(align(N))" లక్షణాన్ని ఉపయోగించగల సామర్థ్యాన్ని జోడించారు;
  • API యొక్క కొత్త భాగం BufReader::buffer, BufWriter::buffer మరియు సహా స్థిరమైన వర్గానికి తరలించబడింది
    సెల్::from_mut,
    సెల్::slice_of_cells,
    DoubleEndedIterator :: nth_back,
    ఎంపిక::xor
    {i,u}{8,16,64,128,size}::reverse_bits, చుట్టడం::reverse_bits మరియు
    స్లైస్:: లోపల_కాపీ.

అదనంగా, ఇది గమనించవచ్చు పరీక్ష ప్రారంభం ప్రాజెక్ట్ Async-std, ఇది రస్ట్ స్టాండర్డ్ లైబ్రరీ యొక్క అసమకాలిక రూపాంతరాన్ని అందిస్తుంది (std లైబ్రరీ యొక్క పోర్ట్, దీనిలో అన్ని ఇంటర్‌ఫేస్‌లు అసమకాలిక సంస్కరణలో అందించబడతాయి మరియు అసమకాలిక/వెయిట్ సింటాక్స్‌తో ఉపయోగం కోసం సిద్ధంగా ఉన్నాయి).

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి