ரஸ்ட் 1.68 பொது-நோக்க நிரலாக்க மொழியின் வெளியீடு, Mozilla திட்டத்தால் நிறுவப்பட்டது, ஆனால் இப்போது சுயாதீனமான இலாப நோக்கற்ற அமைப்பான Rust Foundation இன் அனுசரணையில் உருவாக்கப்பட்டது, வெளியிடப்பட்டது. மொழி நினைவகப் பாதுகாப்பில் கவனம் செலுத்துகிறது மற்றும் குப்பை சேகரிப்பான் மற்றும் இயக்க நேரத்தைப் பயன்படுத்துவதைத் தவிர்க்கும் அதே வேளையில் அதிக வேலை இணைத்தன்மையை அடைவதற்கான வழிமுறைகளை வழங்குகிறது (இயக்க நேரம் நிலையான நூலகத்தின் அடிப்படை துவக்கம் மற்றும் பராமரிப்புக்கு குறைக்கப்படுகிறது).
ரஸ்டின் நினைவக கையாளுதல் முறைகள், சுட்டிகளைக் கையாளும் போது ஏற்படும் பிழைகளிலிருந்து டெவலப்பரைக் காப்பாற்றுவதோடு, நினைவகப் பகுதியை விடுவித்த பிறகு அணுகுவது, பூஜ்ய சுட்டிகளைத் தவிர்ப்பது, இடையக மீறல்கள் போன்றவை போன்ற குறைந்த அளவிலான நினைவகக் கையாளுதலால் ஏற்படும் சிக்கல்களிலிருந்து பாதுகாக்கிறது. நூலகங்களை விநியோகிக்க, கட்டமைக்க மற்றும் சார்புகளை நிர்வகிக்க, திட்டம் சரக்கு தொகுப்பு மேலாளரை உருவாக்குகிறது. நூலகங்களை வழங்குவதற்கு crates.io களஞ்சியம் துணைபுரிகிறது.
குறிப்புச் சரிபார்ப்பு, பொருளின் உரிமையைக் கண்காணித்தல், பொருளின் ஆயுட்காலம் (நோக்குகள்) ஆகியவற்றைக் கண்காணிப்பது மற்றும் குறியீடு செயலாக்கத்தின் போது நினைவக அணுகலின் சரியான தன்மையை மதிப்பிடுதல் ஆகியவற்றின் மூலம் தொகுக்கும் நேரத்தில் ரஸ்டில் நினைவகப் பாதுகாப்பு வழங்கப்படுகிறது. ரஸ்ட் முழு எண் வழிதல்களுக்கு எதிராக பாதுகாப்பை வழங்குகிறது, பயன்பாட்டிற்கு முன் மாறி மதிப்புகளை கட்டாயமாக துவக்க வேண்டும், நிலையான நூலகத்தில் பிழைகளை சிறப்பாக கையாளுகிறது, இயல்புநிலையாக மாறாத குறிப்புகள் மற்றும் மாறிகளின் கருத்தைப் பயன்படுத்துகிறது, தருக்க பிழைகளைக் குறைக்க வலுவான நிலையான தட்டச்சு வழங்குகிறது.
முக்கிய கண்டுபிடிப்புகள்:
- சரக்கு தொகுப்பு மேலாளர் மற்றும் crates.io களஞ்சியமானது ஸ்பார்ஸ் நெறிமுறைக்கான ஆதரவை உறுதிப்படுத்தியுள்ளது, இது களஞ்சியத்தில் இருக்கும் அனைத்து தொகுப்புகளின் கிடைக்கக்கூடிய பதிப்புகளைப் பிரதிபலிக்கும் ஒரு குறியீட்டுடன் வேலை செய்வதற்கான புதிய வழியை வரையறுக்கிறது. புதிய நெறிமுறையானது, crates.io உடன் பணிபுரியும் வேகத்தை கணிசமாக அதிகரிக்கவும், களஞ்சியத்தில் உள்ள தொகுப்புகளின் எண்ணிக்கையில் மேலும் வளர்ச்சியுடன் அளவிடுதல் சிக்கல்களைத் தீர்க்கவும் உங்களை அனுமதிக்கிறது.
முழு அட்டவணையைப் பதிவிறக்குவதால் ஏற்படும் தாமதங்களைக் குறைக்க, Git ஐப் பயன்படுத்தி குறியீட்டை அணுகுவதற்குப் பதிலாக Sparse ஆனது, HTTPS மூலம் நேரடியாகப் பதிவிறக்குவதை உள்ளடக்கியது, ஒரு குறிப்பிட்ட திட்டத்தின் சார்புகளை உள்ளடக்கியது. குறியீட்டுத் தரவை வழங்க, index.crates.io என்ற புதிய சேவை பயன்படுத்தப்படுகிறது. இயல்பாக, புதிய நெறிமுறை Rust 1.70 கிளையில் பயன்படுத்த திட்டமிடப்பட்டுள்ளது, அதற்கு முன், அதை இயக்க, நீங்கள் சூழல் மாறி "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" ஐ அமைக்கலாம் அல்லது 'நெறிமுறை =' அளவுருவை "[பதிவுகளில் சேர்க்கலாம். crates-io]" .cargo/config.toml கோப்பின் பிரிவு 'sparse'.
- "பின்!" மேக்ரோ சேர்க்கப்பட்டது, இது "T" வெளிப்பாட்டிலிருந்து அதன் நிலையின் உள்ளூர் பின்னிங் மூலம் பின்<&mut T> கட்டமைப்பை உருவாக்க உங்களை அனுமதிக்கிறது (பெட்டி:: பின் போலல்லாமல், இது குவியலில் நினைவகத்தை ஒதுக்காது, ஆனால் பிணைக்கிறது அடுக்கு மட்டத்தில்).
- ஒரு இயல்புநிலை நினைவக ஒதுக்கீடு பிழை கையாளுதல் முன்மொழியப்பட்டது, நிலையான ஒதுக்கீடு தொகுப்பைப் பயன்படுத்தும் போது பயன்படுத்தப்படுகிறது. alloc (std இல்லாமல்) மட்டுமே இயக்கும் பயன்பாடுகள் இப்போது நினைவக ஒதுக்கீடு தோல்வியடையும் போது "panic!" ஹேண்ட்லரை அழைக்கும், இது விருப்பமாக "#[panic_handler]" ஐப் பயன்படுத்தி இடைமறிக்கப்படலாம். std நூலகத்தைப் பயன்படுத்தும் புரோகிராம்கள் பிழைத் தகவலை stderrக்கு அச்சிட்டு செயலிழக்கச் செய்யும்.
- API இன் ஒரு புதிய பகுதி நிலையான வகைக்கு நகர்த்தப்பட்டது, இதில் பண்புகளின் முறைகள் மற்றும் செயலாக்கங்கள் உறுதிப்படுத்தப்பட்டுள்ளன:
- {core,std}::pin::pin!
- impl இருந்து {f32,f64}க்கு
- std::path::MAIN_SEPARATOR_STR
- PathBuf க்கான DerefMut
- மாறிலிகளுக்குப் பதிலாக எந்தச் சூழலிலும் அதைப் பயன்படுத்துவதற்கான சாத்தியத்தை நிர்ணயிக்கும் “const” பண்புக்கூறு, VecDeque ::new செயல்பாட்டில் பயன்படுத்தப்படுகிறது.
- ஆண்ட்ராய்டு இயங்குதளத்தில் வேலை செய்ய, குறைந்தபட்சம் NDK r25 (API 19) தேவை, அதாவது. குறைந்தபட்ச ஆதரவு Android பதிப்பு 4.4 (KitKat) ஆக உயர்த்தப்பட்டுள்ளது.
- மூன்றாம் நிலை ஆதரவு Sony PlayStation Vita இயங்குதளத்திற்கு (armv7-sony-vita-newlibeabihf) செயல்படுத்தப்பட்டுள்ளது. மூன்றாம் நிலை அடிப்படை ஆதரவை உள்ளடக்கியது, ஆனால் தானியங்கு சோதனை இல்லாமல், அதிகாரப்பூர்வ உருவாக்கங்களை வெளியிடுதல் அல்லது குறியீட்டை உருவாக்க முடியுமா என்பதைச் சரிபார்த்தல்.
ஆதாரம்: opennet.ru