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

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

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

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

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

  • “కార్గో” ప్యాకేజీ మేనేజర్ “జోడించు” ఆదేశాన్ని అందిస్తుంది, ఇది Cargo.toml మానిఫెస్ట్‌కు కొత్త డిపెండెన్సీలను జోడించడానికి లేదా కమాండ్ లైన్ నుండి ఇప్పటికే ఉన్న డిపెండెన్సీలను మార్చడానికి మిమ్మల్ని అనుమతిస్తుంది. కమాండ్ మిమ్మల్ని వ్యక్తిగత ఫీచర్లు మరియు వెర్షన్‌లను పేర్కొనడానికి కూడా అనుమతిస్తుంది, ఉదాహరణకు: కార్గో యాడ్ సెర్డే —ఫీచర్స్ డెరైవ్ కార్గో యాడ్ nom@5
  • “#[default]” లక్షణాన్ని ఉపయోగించి డిఫాల్ట్ ఎంపిక నిర్వచించబడిన enumsతో “#[derive(Default)]”ని ఉపయోగించగల సామర్థ్యం జోడించబడింది. #[ఉత్పన్నం(డిఫాల్ట్)] ఉండవచ్చు { #[డిఫాల్ట్] ఏమీ లేదు, ఏదో(T),}
  • Linux ప్లాట్‌ఫారమ్‌లో, Linux కెర్నల్ అందించిన ఫ్యూటెక్స్‌ల ఉపయోగం ఆధారంగా మ్యూటెక్స్ సింక్రొనైజేషన్ మెకానిజం యొక్క మరింత కాంపాక్ట్ మరియు వేగవంతమైన అమలు ఉపయోగించబడుతుంది. pthreads లైబ్రరీ ఆధారంగా గతంలో ఉపయోగించిన ఇంప్లిమెంటేషన్ వలె కాకుండా, Mutex స్థితిని నిల్వ చేయడానికి కొత్త వెర్షన్ 5కి బదులుగా 40 బైట్‌లను మాత్రమే ఉపయోగిస్తుంది.అలాగే, Condvar మరియు RwLock లాకింగ్ మెకానిజమ్‌లు ఫ్యూటెక్స్‌కి బదిలీ చేయబడ్డాయి.
  • x86_64-unknown-none టార్గెట్ ప్లాట్‌ఫారమ్‌కు రెండవ స్థాయి మద్దతు అమలు చేయబడింది, ఇది ఆపరేటింగ్ సిస్టమ్ లేకుండా పని చేయగల ఎక్జిక్యూటబుల్ ఫైల్‌లను రూపొందించడానికి రూపొందించబడింది. ఉదాహరణకు, కెర్నల్ భాగాలను వ్రాసేటప్పుడు పేర్కొన్న లక్ష్య ప్లాట్‌ఫారమ్‌ను ఉపయోగించవచ్చు. రెండవ స్థాయి మద్దతు అసెంబ్లీ హామీని కలిగి ఉంటుంది.
  • aarch64-pc-windows-gnullvm మరియు x86_64-pc-windows-gnullvm ప్లాట్‌ఫారమ్‌ల కోసం మూడవ స్థాయి మద్దతు అమలు చేయబడింది. మూడవ స్థాయి ప్రాథమిక మద్దతును కలిగి ఉంటుంది, కానీ ఆటోమేటెడ్ టెస్టింగ్ లేకుండా, అధికారిక బిల్డ్‌లను ప్రచురించడం లేదా కోడ్‌ని నిర్మించవచ్చో లేదో తనిఖీ చేయడం.
  • API యొక్క కొత్త భాగం స్థిరమైన వర్గానికి తరలించబడింది, ఇందులో పద్ధతులు మరియు లక్షణాల అమలులు స్థిరీకరించబడ్డాయి:
    • bool :: then_ some
    • f32::total_cmp
    • f64::total_cmp
    • Stdin:: లైన్లు
    • windows::CommandExt::raw_arg
    • impl AssertUnwindSafe కోసం డిఫాల్ట్ విలువ
    • నుండి > Rc కోసం
    • నుండి > ఆర్క్ కోసం<[u8]>
    • ఎన్‌కోడ్‌వైడ్ కోసం ఫ్యూజ్డ్‌ఇటరేటర్

    మూలం: opennet.ru

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