మొజిల్లా ప్రాజెక్ట్ ద్వారా స్థాపించబడిన సిస్టమ్ ప్రోగ్రామింగ్ లాంగ్వేజ్ రస్ట్ 1.55 విడుదల, కానీ ఇప్పుడు స్వతంత్ర లాభాపేక్ష లేని సంస్థ రస్ట్ ఫౌండేషన్ ఆధ్వర్యంలో అభివృద్ధి చేయబడింది, ప్రచురించబడింది. భాష మెమరీ భద్రతపై దృష్టి పెడుతుంది, ఆటోమేటిక్ మెమరీ నిర్వహణను అందిస్తుంది మరియు చెత్త సేకరించేవాడు లేదా రన్టైమ్ను ఉపయోగించకుండా అధిక పని సమాంతరతను సాధించడానికి మార్గాలను అందిస్తుంది (రన్టైమ్ ప్రాథమిక లైబ్రరీ యొక్క ప్రాథమిక ప్రారంభ మరియు నిర్వహణకు తగ్గించబడుతుంది).
రస్ట్ యొక్క ఆటోమేటిక్ మెమరీ మేనేజ్మెంట్ పాయింటర్లను మానిప్యులేట్ చేసేటప్పుడు లోపాలను తొలగిస్తుంది మరియు తక్కువ-స్థాయి మెమరీ మానిప్యులేషన్ నుండి ఉత్పన్నమయ్యే సమస్యల నుండి రక్షిస్తుంది, ఉదాహరణకు మెమరీ ప్రాంతాన్ని విడుదల చేసిన తర్వాత యాక్సెస్ చేయడం, శూన్య పాయింటర్ డెరిఫరెన్స్లు, బఫర్ ఓవర్రన్లు మొదలైనవి. లైబ్రరీలను పంపిణీ చేయడానికి, అసెంబ్లీని నిర్ధారించడానికి మరియు డిపెండెన్సీలను నిర్వహించడానికి, ప్రాజెక్ట్ కార్గో ప్యాకేజీ మేనేజర్ను అభివృద్ధి చేస్తోంది. లైబ్రరీలను హోస్ట్ చేయడానికి crates.io రిపోజిటరీకి మద్దతు ఉంది.
ప్రధాన ఆవిష్కరణలు:
- కార్గో ప్యాకేజీ మేనేజర్కు బిల్డ్ సమయంలో సంభవించే నకిలీ లోపాలు మరియు హెచ్చరికలను విలీనం చేసే సామర్థ్యం ఉంది. "కార్గో టెస్ట్" మరియు "కార్గో చెక్ --ఆల్-టార్గెట్స్" వంటి ఆదేశాలను అమలు చేస్తున్నప్పుడు, వివిధ పారామితులతో ప్యాకేజీ యొక్క బహుళ నిర్మాణాలకు దారితీసే సమయంలో, వినియోగదారు ఇప్పుడు చూపబడటానికి బదులుగా పునరావృతమయ్యే సమస్య యొక్క సారాంశం చూపబడతారు. ఒకే వస్తువును పదే పదే నిర్మించేటప్పుడు అనేక సారూప్య హెచ్చరికలు. $ కార్గో +1.55.0 చెక్ —ఆల్-టార్గెట్స్ చెకింగ్ ఫూ v0.1.0 హెచ్చరిక: ఫంక్షన్ ఎప్పుడూ ఉపయోగించబడదు: 'foo' —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = గమనిక: డిఫాల్ట్ హెచ్చరికతో '#[warn(dead_code)]' ఆన్ చేయబడింది: 'foo' (lib) 1 హెచ్చరిక హెచ్చరికను రూపొందించింది: 'foo' (lib test) 1 హెచ్చరికను రూపొందించింది (1 నకిలీ) dev [unoptimized + debuginfo] లక్ష్యం పూర్తయింది (లు) 0.84 సెకన్లలో
- ప్రామాణిక లైబ్రరీలోని ఫ్లోటింగ్ పాయింట్ పార్సింగ్ కోడ్ వేగవంతమైన మరియు మరింత ఖచ్చితమైన Eisel-Lemire అల్గారిథమ్ను ఉపయోగించడానికి తరలించబడింది, ఇది చాలా పెద్ద సంఖ్యలో అంకెలతో సంఖ్యలను చుట్టుముట్టడం మరియు అన్వయించడంలో గతంలో గమనించిన కొన్ని సమస్యలను పరిష్కరించింది.
- టెంప్లేట్లలో అన్క్లోజ్డ్ పరిధులను పేర్కొనే సామర్థ్యం స్థిరీకరించబడింది (“X..” అనేది X విలువతో ప్రారంభమయ్యే పరిధిగా అన్వయించబడుతుంది మరియు పూర్ణాంకాల రకం యొక్క గరిష్ట విలువతో ముగుస్తుంది): xని u32 వలె సరిపోల్చండి {0 => println! (“సున్నా!”), 1.. => println!("పాజిటివ్ నంబర్!"),}
- std ::io::ErrorKind ద్వారా విస్తరించబడిన ఎర్రర్ వేరియంట్లు (నోట్ఫౌండ్ మరియు వుల్డ్బ్లాక్ వంటి వర్గాలలో లోపాలను వర్గీకరిస్తుంది). మునుపు, ఇప్పటికే ఉన్న వర్గాలకు సరిపోని లోపాలు ErrorKind ::ఇతర వర్గంలోకి వస్తాయి, ఇది మూడవ పక్షం కోడ్లోని లోపాల కోసం కూడా ఉపయోగించబడింది. ఇప్పుడు ఒక ప్రత్యేక అంతర్గత వర్గం ఉంది ErrorKind:: ఇప్పటికే ఉన్న వర్గాలకు సరిపోని లోపాల కోసం వర్గీకరించబడలేదు మరియు ErrorKind::ఇతర వర్గం ప్రామాణిక లైబ్రరీలో జరగని లోపాలకే పరిమితం చేయబడింది (io::Errorని అందించే ప్రామాణిక లైబ్రరీ ఫంక్షన్లు ఇకపై ErrorKind :: వర్గం ఇతర) ఉపయోగించవద్దు.
- API యొక్క కొత్త భాగం స్థిరమైన వర్గానికి తరలించబడింది, ఇందులో పద్ధతులు మరియు లక్షణాల అమలులు స్థిరీకరించబడ్డాయి:
- బౌండ్::క్లోన్ చేయబడింది
- కాలువ:: as_str
- IntoInnerError::into_error
- IntoInnerError::Into_parts
- బహుశాUninit::assume_init_mut
- బహుశాUninit::assume_init_ref
- బహుశాUninit:: వ్రాయండి
- శ్రేణి:: మ్యాప్
- ops ::ControlFlow
- x86::_bittest
- x86::_bittstanandcomplement
- x86::_bittstandreset
- x86::_bittstandset
- x86_64::_bittest64
- x86_64::_bittestandcomplement64
- x86_64::_bittestandreset64
- x86_64::_bittstandset64
- స్థిరాంకాలకి బదులుగా ఏదైనా సందర్భంలో ఉపయోగించగల అవకాశాన్ని నిర్ణయించే “const” లక్షణం str::from_utf8_unchecked పద్ధతిలో ఉపయోగించబడుతుంది.
- powerpc64le-unknown-freebsd ప్లాట్ఫారమ్ కోసం మూడవ స్థాయి మద్దతు అమలు చేయబడింది. మూడవ స్థాయి ప్రాథమిక మద్దతును కలిగి ఉంటుంది, అయితే ఆటోమేటెడ్ టెస్టింగ్ లేకుండా, అధికారిక బిల్డ్లను ప్రచురించడం లేదా కోడ్ని నిర్మించవచ్చో లేదో తనిఖీ చేయడం.
మూలం: opennet.ru