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

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

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

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

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

  • முக்கிய செயல்பாட்டிலிருந்து உங்கள் சொந்த வருவாய் குறியீடுகளை வரையறுக்க முடியும். முதலில், ரஸ்டின் முக்கிய செயல்பாடு "()" (அலகு) வகையை மட்டுமே தர முடியும், இது டெவலப்பர் "செயல்முறை:: வெளியேறு(குறியீடு)" செயல்பாட்டை வெளிப்படையாக அழைக்கும் வரையில் எப்போதும் வெற்றிகரமான வெளியேறும் நிலையைக் குறிக்கிறது. Rust 1.26 இல், முக்கிய செயல்பாட்டில் உள்ள நிலையற்ற டெர்மினேஷன் பண்பைப் பயன்படுத்தி, C நிரல்களில் EXIT_SUCCESS மற்றும் EXIT_FAILURE குறியீடுகளுடன் தொடர்புடைய "Ok" மற்றும் "Err" மதிப்புகளை திரும்பப் பெற முடிந்தது. Rust 1.61 இல், முடிவுப் பண்பு நிலையாக உள்ளது, மேலும் ஒரு குறிப்பிட்ட வருவாய் குறியீட்டைப் பிரதிநிதித்துவப்படுத்த ஒரு தனி ExitCode வகை முன்மொழியப்பட்டது, இது முன் வரையறுக்கப்பட்ட மாறிலிகளான SUCCESS மற்றும் FAILURE மற்றும் From முறை இரண்டையும் வழங்குவதன் மூலம் இயங்குதள-குறிப்பிட்ட வருவாய் வகைகளை சுருக்குகிறது. ஒரு தன்னிச்சையான திரும்பக் குறியீட்டை திரும்பப் பெற . std:: process::ExitCode ஐப் பயன்படுத்தவும்; fn main() -> ExitCode {if !check_foo() {Return ExitCode::from(8); } வெளியேறும் குறியீடு::வெற்றி }
  • "const fn" என்ற வெளிப்பாட்டைப் பயன்படுத்தி வரையறுக்கப்பட்ட செயல்பாடுகளின் கூடுதல் திறன்கள் நிலைப்படுத்தப்பட்டுள்ளன, இது வழக்கமான செயல்பாடுகள் என மட்டும் அழைக்கப்படலாம், ஆனால் மாறிலிகளுக்குப் பதிலாக எந்த சூழலிலும் பயன்படுத்தப்படலாம். இந்த செயல்பாடுகள் தொகுக்கும் நேரத்தில் கணக்கிடப்படுகின்றன, இயக்க நேரத்தில் அல்ல, எனவே அவை மாறிலிகளிலிருந்து மட்டுமே படிக்கும் திறன் போன்ற சில கட்டுப்பாடுகளுக்கு உட்பட்டவை. புதிய பதிப்பில், செயல்பாடு சுட்டிகளுடன் அடிப்படை செயல்பாடுகள் const செயல்பாடுகளுக்குள் அனுமதிக்கப்படுகின்றன (சுட்டிகளை உருவாக்குதல், அனுப்புதல் மற்றும் அனுப்புதல் அனுமதிக்கப்படுகிறது, ஆனால் சுட்டிக்காட்டி மூலம் செயல்பாட்டை அழைக்காது); டி: நகல் போன்ற கான்ஸ்ட் செயல்பாடுகளின் பொதுவான அளவுருக்களுக்கான பண்பு வரம்புகள்; மாறும் வகையில் அனுப்பக்கூடிய பண்புகள் (dyn Trait); செயல்பாட்டு வாதங்கள் மற்றும் திரும்ப மதிப்புகளுக்கான impl பண்பு வகைகள்.
  • ஸ்ட்ரீம் std இல் Stdin, Stdout மற்றும் Stderr ஐக் கையாளுகிறது::io இப்போது பூட்டப்பட்டிருக்கும் போது நிலையான வாழ்நாள் (“நிலையான”) உள்ளது, இது “let out = std::io::stdout().lock();” போன்ற கட்டுமானங்களை அனுமதிக்கிறது. ஒரு கைப்பிடியைப் பெற்று ஒரு வெளிப்பாட்டில் பூட்டை அமைப்பதன் மூலம்.
  • API இன் ஒரு புதிய பகுதி நிலையான வகைக்கு நகர்த்தப்பட்டது, இதில் பண்புகளின் முறைகள் மற்றும் செயலாக்கங்கள் உறுதிப்படுத்தப்பட்டுள்ளன:
    • பின்::static_mut
    • பின்::static_ref
    • Vec:: retain_mut
    • VecDeque::retain_mut
    • கர்சருக்கு எழுது
    • std::os::unix::net::SocketAddr::from_pathname
    • std:: process::ExitCode
    • std:: process:: முடித்தல்
    • std::thread::JoinHandle::is_finished
  • மாறிலிகளுக்குப் பதிலாக எந்தச் சூழலிலும் பயன்படுத்துவதற்கான சாத்தியத்தை நிர்ணயிக்கும் "const" பண்புக்கூறு செயல்பாடுகளில் பயன்படுத்தப்படுகிறது:
    • ::offset மற்றும் ::offset
    • ::wrapping_offset மற்றும் ::wrapping_offset
    • :: add மற்றும் :: add
    • ::sub மற்றும் ::sub
    • ::wrapping_add மற்றும் ::wrapping_add
    • ::wrapping_sub மற்றும் ::wrapping_sub
    • ::as_mut_ptr
    • ::as_ptr_range
    • ::as_mut_ptr_range

கூடுதலாக, ஃபார்ம்வேரில் பயன்படுத்தப்படும் Xous microkernel இயக்க முறைமையின் வளர்ச்சியின் போது 100 லைன் லைன்ஸ் லைன்ஸ். குறைபாடுகளில், புரிந்துகொள்ள முடியாத தொடரியல், முழுமையின்மை மற்றும் மொழியின் தொடர்ச்சியான வளர்ச்சி, திரும்பத் திரும்ப உருவாக்கப்படாமை, Crates.io மீதான சார்பு நம்பிக்கையின் பொதுவான சிக்கல்கள் மற்றும் பாதுகாப்பான குறியீட்டை எழுத ஒரு குறிப்பிட்ட ஒழுக்கத்தை பராமரிக்க வேண்டிய அவசியம் ஆகியவை அடங்கும். எதிர்பார்ப்புகளை மீறிய அம்சங்களில் குறியீட்டை மறுசீரமைப்பதற்கான கருவிகள் மற்றும் விரைவான முன்மாதிரியின் போது சேர்க்கப்பட்ட "ஹேக்குகளை" மீண்டும் உருவாக்குதல் ஆகியவை அடங்கும்.

ஆதாரம்: opennet.ru

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