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

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

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

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

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

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

    "assert_eq" மற்றும் "assert_ne" மேக்ரோக்கள் தூண்டப்படும்போது காட்டப்படும் செய்திகளின் வெளியீடும் மீண்டும் செய்யப்பட்டுள்ளது. fn main() { assert_eq!("🦀", "🐟", "ferris ஒரு மீன் அல்ல"); } 'assertion தோல்வியடைந்ததில் 'main' என்ற த்ரெட் பீதியடைந்தது: `(left == வலது)` இடது: `»🦀»`, வலது: `»🐟»`: ferris ஒரு மீன் அல்ல', src/main.rs:2:5 'main' என்ற த்ரெட் பீதியடைந்தது src/main.rs:2:5: assertion `left == வலது` தோல்வியடைந்தது: ferris ஒரு மீன் அல்ல இடது: "🦀" வலது: "🐟"

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

ஆதாரம்: opennet.ru

DDoS பாதுகாப்பு, VPS VDS சர்வர்கள் கொண்ட தளங்களுக்கு நம்பகமான ஹோஸ்டிங் வாங்கவும் 🔥 DDoS பாதுகாப்புடன் கூடிய நம்பகமான இணையதள ஹோஸ்டிங், VPS, VDS சர்வர்களை வாங்குங்கள் | ProHoster