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

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

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

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

  • வரி வடிவமைத்தல் தொகுதிகளில், எண் மற்றும் பெயரின் அடிப்படையில் ஒரு வரிக்குப் பிறகு வெளிப்படையாக பட்டியலிடப்பட்ட மாறிகளை மாற்றுவதற்கான முன்னர் கிடைக்கக்கூடிய திறனுடன் கூடுதலாக, வரியில் "{அடையாளம்}" என்ற வெளிப்பாட்டைச் சேர்ப்பதன் மூலம் தன்னிச்சையான அடையாளங்காட்டிகளை மாற்றும் திறன் செயல்படுத்தப்படுகிறது. எடுத்துக்காட்டாக: // முன்பு ஆதரிக்கப்பட்ட கட்டுமானங்கள்: println!("வணக்கம், {}!", get_person()); println!("வணக்கம், {0}!", get_person()); println!("வணக்கம், {நபர்}!", நபர் = get_person()); // இப்போது நீங்கள் குறிப்பிடலாம் நபர் = get_person(); println!("வணக்கம், {நபர்}!");

    வடிவமைத்தல் விருப்பங்களில் அடையாளங்காட்டிகளை நேரடியாகக் குறிப்பிடலாம். விடு (அகலம், துல்லியம்) = get_format(); get_scores() இல் (பெயர், மதிப்பெண்) {println!("{name}: {score:width$.precision$}"); }

    "பீதி!" மேக்ரோவைத் தவிர்த்து, சரம் வடிவமைப்பு வரையறையை ஆதரிக்கும் அனைத்து மேக்ரோக்களிலும் புதிய மாற்றீடு செயல்படுகிறது. ரஸ்ட் மொழியின் 2015 மற்றும் 2018 பதிப்புகளில், இதில் பீதி!("{அடையாளம்}") வழக்கமான சரமாக கருதப்படுகிறது (ரஸ்ட் 2021 இல் மாற்றீடு செயல்படுகிறது).

  • விண்டோஸ் இயங்குதளத்தில் std:: process:: கட்டளை அமைப்பு மாற்றப்பட்டுள்ளது, இதனால் கட்டளைகளை இயக்கும் போது, ​​பாதுகாப்பு காரணங்களுக்காக, தற்போதைய கோப்பகத்தில் இயங்கக்கூடிய கோப்புகளைத் தேடாது. நம்பத்தகாத கோப்பகங்களில் (CVE-2021-3013) புரோகிராம்கள் இயக்கப்பட்டால், தீங்கிழைக்கும் குறியீட்டை இயக்க இது பயன்படும் என்பதால், தற்போதைய கோப்பகம் விலக்கப்பட்டுள்ளது. புதிய இயங்கக்கூடிய கண்டறிதல் தர்க்கமானது ரஸ்ட் கோப்பகங்கள், பயன்பாட்டு கோப்பகம், விண்டோஸ் சிஸ்டம் கோப்பகம் மற்றும் PATH சூழல் மாறியில் குறிப்பிடப்பட்டுள்ள கோப்பகங்களைத் தேடுவதை உள்ளடக்கியது.
  • நிலையான நூலகம் "#[கட்டாயம்_பயன்படுத்த_பயன்படுத்த வேண்டும்]" எனக் குறிக்கப்பட்ட செயல்பாடுகளின் எண்ணிக்கையை விரிவுபடுத்தி, திரும்பப்பெறும் மதிப்பு புறக்கணிக்கப்பட்டால், ஒரு எச்சரிக்கையை வெளியிடுகிறது, இது ஒரு செயல்பாடு புதிய மதிப்பை வழங்குவதற்குப் பதிலாக மதிப்புகளை மாற்றும் எனக் கருதுவதால் ஏற்படும் பிழைகளைக் கண்டறிய உதவுகிறது.
  • API இன் ஒரு புதிய பகுதி நிலையான வகைக்கு நகர்த்தப்பட்டது, இதில் பண்புகளின் முறைகள் மற்றும் செயலாக்கங்கள் உறுதிப்படுத்தப்பட்டுள்ளன:
    • மெட்டாடேட்டா::is_symlink
    • பாதை:: is_symlink
    • {integer}::saturating_div
    • விருப்பம்:: unwrap_unchecked
    • முடிவு:: unwrap_unchecked
    • முடிவு:: unwrap_err_unchecked
  • மாறிலிகளுக்குப் பதிலாக எந்தச் சூழலிலும் பயன்படுத்துவதற்கான சாத்தியத்தை நிர்ணயிக்கும் "const" பண்புக்கூறு செயல்பாடுகளில் பயன்படுத்தப்படுகிறது:
    • காலம்:: புதியது
    • கால அளவு::checked_add
    • காலம்::நிறைவு_சேர்க்க
    • காலம்:: சரிபார்த்த_உப
    • காலம்::நிறைவு_உப
    • காலம்:: சரிபார்க்கப்பட்ட_முல்
    • காலம்::நிறைவு_முல்
    • காலம்::checked_div
  • "const" சூழல்களில் "*const T" சுட்டிகளை விலக்க அனுமதிக்கப்படுகிறது.
  • கார்கோ தொகுப்பு மேலாளரில், rust_version புலம் தொகுப்பு மெட்டாடேட்டாவில் சேர்க்கப்பட்டுள்ளது, மேலும் "--message-format" விருப்பம் "cargo install" கட்டளையில் சேர்க்கப்பட்டுள்ளது.
  • CFI (கட்டுப்பாட்டு ஓட்டம் ஒருமைப்பாடு) பாதுகாப்பு பொறிமுறைக்கான ஆதரவை கம்பைலர் செயல்படுத்துகிறது, இது ஒவ்வொரு மறைமுக அழைப்பிற்கும் முன் சில வகையான வரையறுக்கப்படாத நடத்தைகளைக் கண்டறிய காசோலைகளைச் சேர்க்கிறது. செயல்பாடுகளில் நினைவகத்தில் சேமிக்கப்பட்ட சுட்டிகளை மாற்றும் சுரண்டல்களின் பயன்பாடு.
  • கம்பைலர் எல்.எல்.வி.எம் கவரேஜ் ஒப்பீட்டு வடிவமைப்பின் பதிப்பு 5 மற்றும் 6க்கான ஆதரவைச் சேர்த்துள்ளது, சோதனையின் போது குறியீடு கவரேஜை மதிப்பிடப் பயன்படுகிறது.
  • கம்பைலரில், LLVM இன் குறைந்தபட்ச பதிப்பிற்கான தேவைகள் LLVM 12 ஆக உயர்த்தப்படுகின்றன.
  • x86_64-unknown-none இயங்குதளத்திற்கான மூன்றாம் நிலை ஆதரவு செயல்படுத்தப்பட்டது. மூன்றாம் நிலை அடிப்படை ஆதரவை உள்ளடக்கியது, ஆனால் தானியங்கு சோதனை இல்லாமல், அதிகாரப்பூர்வ உருவாக்கங்களை வெளியிடுதல் அல்லது குறியீட்டை உருவாக்க முடியுமா என்பதைச் சரிபார்த்தல்.

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

ஆதாரம்: opennet.ru

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