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

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

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

కొత్త విడుదల ప్రకటనలోని టెక్స్ట్‌లో, రస్ట్ డెవలపర్‌లు రాజకీయాల్లో పాలుపంచుకున్నారు మరియు పోలీసు హింసకు వ్యతిరేకంగా నిరసనకారులకు సంఘీభావంగా రస్ట్ 1.44లో మార్పుల పూర్తి సమీక్షను ప్రచురించడానికి నిరాకరించారు, ఈ సమస్య మరింత ముఖ్యమైనదని సూచిస్తుంది. సాంకేతిక పరిజ్ఞానం మార్పిడి కంటే. ప్రాథమిక ఆవిష్కరణలు:

  • కార్గో ప్యాకేజీ మేనేజర్ “కార్గో ట్రీ” కమాండ్‌ను అనుసంధానిస్తుంది, ఇది చెట్టు లాంటి డిపెండెన్సీ గ్రాఫ్‌ను ప్రదర్శిస్తుంది. “—డూప్లికేట్‌లు” (“కార్గో ట్రీ -d”) ఎంపిక కూడా జోడించబడింది, ఇది ఒకే ప్యాకేజీ యొక్క విభిన్న వెర్షన్‌లలో డిపెండెన్సీలను అంచనా వేయడానికి మిమ్మల్ని అనుమతిస్తుంది.

    mdbook v0.3.2 (/Users/src/rust/mdbook)
    ├── అమ్మోనియా v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── లాగ్ v0.4.8
    │ │ │ └── cfg-if v0.1.9
    │ │ ├── mac v0.1.1
    │ │ └── markup5ever v0.9.0
    │ │ ├── లాగ్ v0.4.8 (*)
    │ │ ├── phf v0.7.24
    │ │ │ └── phf_shared v0.7.24
    │ │ │ ├── సిఫాషర్ v0.2.3
    │ │ │ └── యూనికేస్ v1.4.2
    │ │ │ [బిల్డ్-డిపెండెన్సీలు] │ │ │ └── version_check v0.1.5
    ...

  • std ("#![no_std]")కి కట్టుబడి ఉండని అప్లికేషన్‌ల కోసం, అసమకాలిక ప్రోగ్రామింగ్ టెక్నిక్‌లకు మద్దతు "అసింక్" ఫంక్షన్, ఎసిన్క్ మూవ్ { ... } బ్లాక్ మరియు ".వెయిట్" ఆపరేటర్ ఆధారంగా అమలు చేయబడుతుంది. నాన్-బ్లాకింగ్ హ్యాండ్లర్ల ప్రధాన కమాండ్ ఫ్లో రాయడం సులభతరం చేస్తుంది.
  • ఎక్స్‌టెన్సిబుల్ మాడ్యూల్ హైరార్కీ డెఫినిషన్ స్కీమ్‌కు మద్దతు పార్సర్‌కు జోడించబడింది. ఉదాహరణకు, "foo/bar/baz.rs" మాడ్యూల్ వాస్తవంగా లేనప్పటికీ, కింది నిర్మాణం లోపాన్ని ఉత్పత్తి చేయదు (నిర్మాణం ఇప్పటికీ అర్థపరంగా చెల్లదు మరియు లోపానికి కారణం కావచ్చు, కానీ మార్పులను ఇక్కడ చూడవచ్చు మరియు అన్వయించవచ్చు స్థూల మరియు షరతులతో కూడిన సంకలన స్థాయి):

    #[cfg(FALSE)] mod foo {
    మోడ్ బార్ {
    మోడ్ బాజ్;
    }
    }

  • rustc కంపైలర్ "-C codegen-units" ఫ్లాగ్‌ను ఇంక్రిమెంటల్ మోడ్‌లో ఉపయోగించగల సామర్థ్యాన్ని జోడించింది. క్యాచ్_అన్‌వైండ్ యొక్క అమలు మళ్లీ పని చేయబడింది, తద్వారా అన్‌వైండింగ్ ప్రక్రియ నిలిపివేయబడితే మరియు మినహాయింపులు ఇవ్వబడకపోతే దాని పనితీరు ప్రభావం ఉండదు.
  • aarch64-unknown-none, aarch64-unknown-none-softfloat, arm64-apple-tvos మరియు x86_64-apple-tvos ప్లాట్‌ఫారమ్‌లకు స్థాయి XNUMX మద్దతు అందించబడింది. మూడవ స్థాయి ప్రాథమిక మద్దతును కలిగి ఉంటుంది, కానీ ఆటోమేటెడ్ టెస్టింగ్ మరియు అధికారిక నిర్మాణాల ప్రచురణ లేకుండా.
  • APIల యొక్క కొత్త భాగం స్థిరీకరించబడిన వాటితో సహా స్థిరమైన వర్గానికి బదిలీ చేయబడింది
    PathBuf:: సామర్థ్యంతో,
    PathBuf:: సామర్థ్యం,
    PathBuf:: clear,
    PathBuf::reserve,
    PathBuf::reserve_exact,
    PathBuf:: కుంచించుకు_కు_ఫిట్,
    {f32|f64}::to_int_unchecked,
    లేఅవుట్::align_to,
    లేఅవుట్::pad_to_align,
    లేఅవుట్:: శ్రేణి మరియు
    లేఅవుట్ :: పొడిగించండి.

  • ప్రామాణిక లైబ్రరీ యొక్క విస్తరించిన విధులు:
    • ప్రత్యేక "vec![]" వేరియంట్ జోడించబడింది, అది నేరుగా Vec::new()లో ప్రతిబింబిస్తుంది, ఇది స్థిరాంకాలకి బదులుగా సందర్భానుసారంగా "vec![]"ని ఉపయోగించడానికి అనుమతిస్తుంది.
    • మార్చడానికి లక్షణం యొక్క అమలు (impl) జోడించబడింది:: తప్పుకానిది హాష్.
    • OsString స్మార్ట్ పాయింటర్‌లను అమలు చేస్తుంది డెరెఫ్‌మట్ и ఇండెక్స్‌మట్, "&mut OsStr" తిరిగి వస్తుంది.
    • యూనికోడ్ 13కి మద్దతు జోడించబడింది.
    • స్ట్రింగ్‌లో అమలు చేయబడింది నుండి<&mut str>.
    • IoSlice లక్షణాన్ని అమలు చేస్తుంది కాపీ.
    • వెక్ నుండి అమలు చేయబడింది<[T; N]>.
    • proc_macro::LexError fmt::Display మరియు ఎర్రర్‌ని అమలు చేస్తుంది.
  • స్థిరాంకాలకి బదులుగా ఏదైనా సందర్భంలో ఉపయోగించవచ్చో లేదో నిర్ణయించే “const” లక్షణం, అన్ని పూర్ణాంకాల రకాల కోసం from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes మరియు to_ne_bytes పద్ధతులలో ఉపయోగించబడుతుంది.
  • Windowsలో GNU ప్లాట్‌ఫారమ్‌ల కోసం ".lib"కి బదులుగా ".a" ఆకృతిలో స్టాటిక్ లైబ్రరీలను రూపొందించడానికి మద్దతు జోడించబడింది.
  • LLVM కోసం కనీస అవసరాలు LLVM వెర్షన్ 8కి పెంచబడ్డాయి.

మూలం: opennet.ru

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