ரஸ்ட் 1.73 நிரலாக்க மொழி வெளியீடு

ரஸ்ட் 1.73 பொது-நோக்க நிரலாக்க மொழியின் வெளியீடு, Mozilla திட்டத்தால் நிறுவப்பட்டது, ஆனால் இப்போது சுயாதீனமான இலாப நோக்கற்ற அமைப்பான Rust Foundation இன் அனுசரணையில் உருவாக்கப்பட்டது, வெளியிடப்பட்டது. மொழி நினைவகப் பாதுகாப்பில் கவனம் செலுத்துகிறது மற்றும் குப்பை சேகரிப்பான் மற்றும் இயக்க நேரத்தைப் பயன்படுத்துவதைத் தவிர்க்கும் அதே வேளையில் அதிக வேலை இணைத்தன்மையை அடைவதற்கான வழிமுறைகளை வழங்குகிறது (இயக்க நேரம் நிலையான நூலகத்தின் அடிப்படை துவக்கம் மற்றும் பராமரிப்புக்கு குறைக்கப்படுகிறது).

ரஸ்டின் நினைவக கையாளுதல் முறைகள், சுட்டிகளைக் கையாளும் போது ஏற்படும் பிழைகளிலிருந்து டெவலப்பரைக் காப்பாற்றுவதோடு, நினைவகப் பகுதியை விடுவித்த பிறகு அணுகுவது, பூஜ்ய சுட்டிகளைத் தவிர்ப்பது, இடையக மீறல்கள் போன்றவை போன்ற குறைந்த அளவிலான நினைவகக் கையாளுதலால் ஏற்படும் சிக்கல்களிலிருந்து பாதுகாக்கிறது. நூலகங்களை விநியோகிக்க, கட்டமைக்க மற்றும் சார்புகளை நிர்வகிக்க, திட்டம் சரக்கு தொகுப்பு மேலாளரை உருவாக்குகிறது. நூலகங்களை வழங்குவதற்கு crates.io களஞ்சியம் துணைபுரிகிறது.

குறிப்புச் சரிபார்ப்பு, பொருளின் உரிமையைக் கண்காணித்தல், பொருளின் ஆயுட்காலம் (நோக்குகள்) ஆகியவற்றைக் கண்காணிப்பது மற்றும் குறியீடு செயலாக்கத்தின் போது நினைவக அணுகலின் சரியான தன்மையை மதிப்பிடுதல் ஆகியவற்றின் மூலம் தொகுக்கும் நேரத்தில் ரஸ்டில் நினைவகப் பாதுகாப்பு வழங்கப்படுகிறது. ரஸ்ட் முழு எண் வழிதல்களுக்கு எதிராக பாதுகாப்பை வழங்குகிறது, பயன்பாட்டிற்கு முன் மாறி மதிப்புகளை கட்டாயமாக துவக்க வேண்டும், நிலையான நூலகத்தில் பிழைகளை சிறப்பாக கையாளுகிறது, இயல்புநிலையாக மாறாத குறிப்புகள் மற்றும் மாறிகளின் கருத்தைப் பயன்படுத்துகிறது, தருக்க பிழைகளைக் குறைக்க வலுவான நிலையான தட்டச்சு வழங்குகிறது.

முக்கிய கண்டுபிடிப்புகள்:

  • இயல்புநிலை நிரல் செயலிழப்பு ஹேண்ட்லர் (பீதி) வழங்கிய செய்திகளின் வடிவம் மறுவடிவமைப்பு செய்யப்பட்டுள்ளது. "பீதி!" மேக்ரோவில் உரை குறிப்பிடப்பட்டுள்ளது இப்போது மேற்கோள் குறிகள் இல்லாமல் ஒரு தனி வரியில் காட்டப்பட்டுள்ளது, செய்தியைப் படிக்க எளிதாக்குகிறது மற்றும் உள்ளமை மேற்கோள்கள் இருக்கும் போது அல்லது பல வரிகளில் பிளவுபடும்போது குழப்பத்தை நீக்குகிறது. fn முக்கிய() {கோப்பை விடுங்கள் = "ferris.txt"; பீதி!("ஓ! {கோப்பு:?} கிடைக்கவில்லை!"); } 'அடடா! “ferris.txt” கிடைக்கவில்லை!’, src/main.rs:3:5 த்ரெட் ‘மெயின்’ src/main.rs:3:5 இல் பீதியடைந்தது: இல்லை! "ferris.txt" கிடைக்கவில்லை!

    “assert_eq” மற்றும் “assert_ne” மேக்ரோக்கள் தூண்டப்படும்போது காட்டப்படும் செய்திகளின் வெளியீடும் மறுவேலை செய்யப்பட்டுள்ளது. fn main() { assert_eq!("🦀", "🐟", "ferris is not a fish"); } வலியுறுத்தல் தோல்வியடைந்ததில் 'முக்கிய' நூல் பீதியடைந்தது: `(இடது == வலது)` இடப்புறம்: `"🦀"`, வலது: `"🐟"`: பெர்ரிஸ் ஒரு மீன் அல்ல', src/main.rs: 2 :5 src/main.rs:2:5 த்ரெட் 'மெயின்' பீதியை ஏற்படுத்தியது: `இடது == வலது` என்ற உறுதிமொழி தோல்வியடைந்தது: பெர்ரிஸ் மீனம் இல்லை: "🦀" வலது: "🐟"

  • RFC 3184க்கு இணங்க, get(), set(), take() ஆகியவற்றின் மூலம் LocalKey> மற்றும் LocalKey> த்ரெட்-லோக்கல் (thread_local) சேமிப்பக விசைகளை நேரடியாக கையாளும் திறன் மற்றும் ரீப்ளேஸ்() முறைகள் சேர்க்கப்பட்டது , "with(|inner| ...)" மூடுதலைப் பயன்படுத்துவதற்குப் பதிலாக, "thread_local!"ஐப் பயன்படுத்தி புதிய தொடரிழைகளுக்குக் குறிப்பிடப்பட்ட இயல்புநிலை மதிப்புகளுக்கான கூடுதல் துவக்கக் குறியீட்டின் தேவையை நீக்குகிறது. மேக்ரோ. நூல்_உள்ளூர்! { நிலையான விஷயங்கள்: செல்> = Cell::new(Vec::new()); } fn f() { // இருந்தது THINGS.with(|i| i.set(vec![32, 1, 2])); // ஆனது THINGS.set(vec![3, 1, 2]); // ... // v = THINGS.with(|i| i.take()); // ஆனது let v: Vec = THINGS.take(); }
  • API இன் ஒரு புதிய பகுதி நிலையான வகைக்கு நகர்த்தப்பட்டது, இதில் பண்புகளின் முறைகள் மற்றும் செயலாக்கங்கள் உறுதிப்படுத்தப்பட்டுள்ளன:
    • கையொப்பமிடாத {integer}::div_ceil
    • கையொப்பமிடாத {integer}::next_multiple_of
    • கையொப்பமிடாத {integer}::checked_next_multiple_of
    • std::ffi::FromBytesUntilNulError
    • std::os::unix::fs::chown
    • std::os::unix::fs::fchown
    • std::os::unix::fs::lfchown
    • LocalKey::>::பெறவும்
    • LocalKey::>::செட்
    • LocalKey::>::எடு
    • LocalKey::>::மாற்று
    • LocalKey::>::with_borrow
    • LocalKey::>::with_borrow_mut
    • LocalKey::>::set
    • LocalKey::>::எடு
    • LocalKey::>::replace
  • மாறிலிகளுக்குப் பதிலாக எந்தச் சூழலிலும் பயன்படுத்துவதற்கான சாத்தியத்தை நிர்ணயிக்கும் "const" பண்புக்கூறு செயல்பாடுகளில் பயன்படுத்தப்படுகிறது:
    • rc:: பலவீனம்:: புதியது
    • ஒத்திசைவு:: பலவீனம்:: புதியது
    • NonNull::as_ref
  • கம்பைலர் GCC மற்றும் Clang போன்ற ".comment" பிரிவில் பதிப்புத் தகவலைப் பதிவுசெய்கிறது.
  • aarch64-unknown-teeos, csky-unknown-linux-gnuabiv2, riscv64-linux-android, riscv64gc-unknown-hermit, x86_64-unikraft-linux-musl மற்றும் x86_64x-unknown-linuXNUMX xXNUMX_XNUMX ஆகிய தளங்களுக்கு மூன்றாம் நிலை ஆதரவு செயல்படுத்தப்பட்டுள்ளது. -ஓஹோஸ். மூன்றாம் நிலை அடிப்படை ஆதரவை உள்ளடக்கியது, ஆனால் தானியங்கு சோதனை இல்லாமல், அதிகாரப்பூர்வ உருவாக்கங்களை வெளியிடுதல் அல்லது குறியீட்டை உருவாக்க முடியுமா என்பதைச் சரிபார்த்தல்.
  • இலக்கு இயங்குதளம் wasm32-wasi-preview1-threadsக்கான இரண்டாம் நிலை ஆதரவு செயல்படுத்தப்பட்டது. இரண்டாவது நிலை ஆதரவு சட்டசபை உத்தரவாதத்தை உள்ளடக்கியது.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்