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

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

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

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

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

  • ఫ్యూచర్::అవుట్‌పుట్‌తో అసమకాలీకరణ ఫంక్షన్‌ల కోసం, రిటర్న్ విలువను విస్మరించినట్లయితే హెచ్చరికను కలిగి ఉన్న "#[తప్పక_ఉపయోగించండి]" ఉల్లేఖనాలను పేర్కొనడం ఇప్పుడు సాధ్యమవుతుంది, ఇది ఫంక్షన్ విలువలను మారుస్తుందనే ఊహ కారణంగా ఏర్పడే లోపాలను గుర్తించడంలో సహాయపడుతుంది. కొత్త విలువను తిరిగి ఇవ్వడం కంటే. #[తప్పక_ఉపయోగించండి] async fn బార్() -> u32 {0 } async fn కాలర్() {bar().వెయిట్; } హెచ్చరిక: భవిష్యత్తులో ఉపయోగించని అవుట్‌పుట్ తప్పనిసరిగా `బార్` ద్వారా అందించబడుతుంది —> src/lib.rs:5:5 | 5 | బార్().వెయిట్; | ^^^^^^^^^^^^ | = గమనిక: డిఫాల్ట్‌గా `#[హెచ్చరిక(unused_must_use)]` ఆన్ చేయబడింది
  • FIFO క్యూల అమలు std::sync::mpsc (మల్టీ-ప్రొడ్యూసర్ సింగిల్ కన్స్యూమర్) అప్‌డేట్ చేయబడింది, ఇది మునుపటి APIని కొనసాగిస్తూ క్రాస్‌బీమ్-ఛానల్ మాడ్యూల్‌ని ఉపయోగించేందుకు మార్చబడింది. అనేక సమస్యలను పరిష్కరించడం, అధిక పనితీరు మరియు సరళీకృత కోడ్ నిర్వహణ ద్వారా కొత్త అమలు ప్రత్యేకించబడింది.
  • API యొక్క కొత్త భాగం స్థిరమైన వర్గానికి తరలించబడింది, ఇందులో పద్ధతులు మరియు లక్షణాల అమలులు స్థిరీకరించబడ్డాయి:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • ZeroU*::ilog2
    • ZeroU*::ilog10
    • నాన్ జీరో*::BITS
  • స్థిరాంకాలకి బదులుగా ఏదైనా సందర్భంలో ఉపయోగించగల అవకాశాన్ని నిర్ణయించే “const” లక్షణం ఫంక్షన్లలో ఉపయోగించబడుతుంది:
    • char::from_u32
    • char :: from_digit
    • char :: to_digit
    • కోర్::చార్::from_u32
    • core::char::from_digit
  • Linux కెర్నల్ (linuxkernel), అలాగే Sony PlayStation 1 (mipsel-sony-psx), PowerPC విత్ AIX (powerpc64-ibm-aix), QNX న్యూట్రినో RTOS ()లో రస్ట్‌ని ఉపయోగించడం కోసం మూడవ స్థాయి మద్దతు అమలు చేయబడింది. aarch64-unknown-nto-) ప్లాట్‌ఫారమ్‌లు qnx710, x86_64-pc-nto-qnx710). మూడవ స్థాయి ప్రాథమిక మద్దతును కలిగి ఉంటుంది, కానీ ఆటోమేటెడ్ టెస్టింగ్ లేకుండా, అధికారిక బిల్డ్‌లను ప్రచురించడం లేదా కోడ్‌ని నిర్మించవచ్చో లేదో తనిఖీ చేయడం.

అదనంగా, AArch64 ఆర్కిటెక్చర్ ఆధారంగా సిస్టమ్‌ల కోసం అసెంబుల్ చేయబడిన డ్రైవర్లు మరియు Linux కెర్నల్ మాడ్యూల్‌లను అభివృద్ధి చేయడానికి రస్ట్ భాషని ఉపయోగించడాన్ని అనుమతించే ప్యాచ్‌ల ARM ద్వారా ప్రచురణను మేము గమనించవచ్చు.

మూలం: opennet.ru

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