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

வெளியிடப்பட்டது கணினி நிரலாக்க மொழி வெளியீடு துரு 1.39, Mozilla திட்டத்தால் நிறுவப்பட்டது. மொழி நினைவக பாதுகாப்பில் கவனம் செலுத்துகிறது, தானியங்கி நினைவக நிர்வாகத்தை வழங்குகிறது, மேலும் குப்பை சேகரிப்பான் அல்லது இயக்க நேரத்தைப் பயன்படுத்தாமல் உயர் பணி இணையான நிலையை அடைவதற்கான வழிமுறையை வழங்குகிறது.

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

முக்கிய புதுமைகள்:

  • நிலைப்படுத்தப்பட்டது "அசின்க்" செயல்பாடு, அசின்க் நகர்வு { ... } பிளாக் மற்றும் ". காத்திருப்பு" ஆபரேட்டர் ஆகியவற்றின் அடிப்படையில் ஒரு புதிய ஒத்திசைவற்ற நிரலாக்க தொடரியல், முக்கிய கட்டளை ஓட்டத்தைத் தடுக்காத ஹேண்ட்லர்களை எழுதுவதை எளிதாக்குகிறது. ஒத்திசைவற்ற I/O க்கு முன்னர் வழங்கப்பட்ட API உடன் ஒப்பிடும்போது, ​​async/.await கன்ஸ்ட்ரக்ட்கள் புரிந்து கொள்ள எளிமையானவை, அதிகம் படிக்கக்கூடியவை, மேலும் சுழல்கள், நிபந்தனை அறிக்கைகள் மற்றும் விதிவிலக்குகள் ஆகியவற்றின் அடிப்படையில் பழக்கமான ஓட்டக் கட்டுப்பாட்டு நுட்பங்களைப் பயன்படுத்தி சிக்கலான ஒத்திசைவற்ற தொடர்புகளைச் செயல்படுத்த உங்களை அனுமதிக்கிறது.

    Async-await தொடரியல், அவற்றின் செயல்பாட்டை இடைநிறுத்தக்கூடிய செயல்பாடுகளை உருவாக்கவும், பிரதான தொடரிழையில் கட்டுப்பாட்டைத் திரும்பவும், பின்னர் அவை நிறுத்திய இடத்திலிருந்து செயல்படுத்தலைத் தொடரவும் உங்களை அனுமதிக்கிறது. எடுத்துக்காட்டாக, I/O ஐச் செயலாக்கும்போது அத்தகைய இடைநிறுத்தம் தேவைப்படுகிறது, இதில் அடுத்த தரவு வரும் வரை காத்திருக்கும் போது மற்ற வேலைகளைச் செய்யலாம். "அசின்க் எஃப்என்" மற்றும் "அசின்க் மூவ்" மூலம் வரையறுக்கப்பட்ட செயல்பாடுகள் மற்றும் தொகுதிகள் ஒரு பண்பைத் தருகின்றன காலத்திற்காக , இது ஒத்திவைக்கப்பட்ட ஒத்திசைவற்ற கணக்கீட்டு பிரதிநிதித்துவத்தை வரையறுக்கிறது. நீங்கள் நேரடியாக ஒத்திவைக்கப்பட்ட கணக்கீட்டைத் தொடங்கலாம் மற்றும் ".await" ஆபரேட்டரைப் பயன்படுத்தி முடிவைப் பெறலாம். கூடுதல் மேல்நிலை இல்லாமல் சிக்கலான உள்ளமைக்கப்பட்ட கட்டுமானங்களை உருவாக்க அனுமதிக்கும் .waiit என்று அழைக்கப்படும் வரை எந்த செயலும் செய்யப்படவில்லை அல்லது முன்கூட்டியே திட்டமிடப்படவில்லை.

    async fn first_function() -> u32 { ..}
    ...
    எதிர்காலத்தை விடுங்கள் = first_function();
    ...
    முடிவை விடுங்கள்: u32 = எதிர்காலம். காத்திருக்கவும்;

  • நிலைப்படுத்தப்பட்டது "#![அம்சம்(பைண்ட்_பை_மூவ்_பேட்டர்ன்_கார்ட்ஸ்)]", பிணைப்பு வகையுடன் மாறிகளைப் பயன்படுத்த அனுமதிக்கிறது "மூலம்-நகர்வு"வார்ப்புருக்களில் மற்றும் வெளிப்பாட்டின் "if" பிரிவில் இந்த மாறிகளுக்கான குறிப்புகளைப் பயன்படுத்தவும் "போட்டியில்". எடுத்துக்காட்டாக, பின்வரும் கட்டுமானங்கள் இப்போது அனுமதிக்கப்படுகின்றன:

    fn முக்கிய() {
    வரிசையை விடுங்கள்: பெட்டி<[u8; 4]> = பெட்டி:: புதிய ([1, 2, 3, 4]);

    பொருத்த வரிசை {
    எண்கள்
    என்றால் nums.iter().sum::() == 10

    => {
    துளி (எண்கள்);
    }
    _ => அணுக முடியவில்லை!(),
    }
    }

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

    எஃப்என் லென்(
    #[cfg(windows)] ஸ்லைஸ்: &[u16], // விண்டோஸில் அளவுருவைப் பயன்படுத்தவும்
    #[cfg(அல்ல(விண்டோஸ்))] ஸ்லைஸ்: &[u8], // மற்ற OS இல் பயன்படுத்தவும்
    ) -> பயன்படுத்தவும் {
    slice.len()
    }

  • என்எல்எல் (நான்-லெக்சிகல் லைஃப்டைம்ஸ்) நுட்பத்தைப் பயன்படுத்தி மாறிகள் (கடன் சரிபார்ப்பு) கடன் வாங்குவதைச் சரிபார்க்கும் போது கண்டறியப்பட்ட சிக்கல்கள் பற்றிய எச்சரிக்கைகள், மொழிபெயர்க்கப்பட்டது அபாயகரமான பிழைகள் வகைக்குள். கடன் வாங்கிய மாறிகளின் வாழ்நாளை கணக்கில் எடுத்துக்கொள்வதற்கான புதிய பொறிமுறையை அடிப்படையாகக் கொண்ட சரிபார்ப்பு அமைப்பு பழைய சரிபார்ப்புக் குறியீட்டால் கவனிக்கப்படாத சில சிக்கல்களை அடையாளம் காண முடிந்தது என்பதை நினைவில் கொள்வோம். இத்தகைய சரிபார்ப்புகளுக்கான பிழை வெளியீடு முந்தைய வேலைக் குறியீட்டுடன் பொருந்தக்கூடிய தன்மையைப் பாதிக்கலாம் என்பதால், முதலில் பிழைகளுக்குப் பதிலாக எச்சரிக்கைகள் வழங்கப்பட்டன. Rust 2018 பயன்முறையில் இயங்கும் போது எச்சரிக்கைகள் இப்போது பிழைகளால் மாற்றப்பட்டுள்ளன. அடுத்த வெளியீட்டில், பிழை வெளியீடு ரஸ்ட் 2015 பயன்முறையிலும் செயல்படுத்தப்படும், இது இறுதியாக பழைய கடன் சரிபார்ப்பிலிருந்து விடுபடும்;
  • மாறிலிகளுக்குப் பதிலாக எந்தச் சூழலிலும் பயன்படுத்துவதற்கான சாத்தியத்தை நிர்ணயிக்கும் “const” பண்புக்கூறு, Vec::new, String::new, LinkedList::new, str::len, [T]::len செயல்பாடுகளுக்குப் பயன்படுத்தப்படுகிறது. , str::as_bytes,
    abs, wrapping_abs மற்றும் overflowing_abs;

  • நிலைப்படுத்தப்பட்ட முறைகள் உட்பட, APIகளின் புதிய பகுதி நிலையான வகைக்கு மாற்றப்பட்டது
    Pin::into_inner, Instant::checked_duration_ince and Instant::saturating_duration_fince;

  • சரக்கு தொகுப்பு மேலாளர் இப்போது உள்ளமைவு கோப்புகளுக்கு “.toml” நீட்டிப்பைப் பயன்படுத்தும் திறனைக் கொண்டுள்ளது. சரக்குகளிலிருந்து நேரடியாக நிலையான நூலகத்தை உருவாக்குவதற்கான ஆரம்ப ஆதரவு சேர்க்கப்பட்டது. சர்ச்சைக்குரிய "--அனைத்து" கொடிக்கு பதிலாக "--பணியிட" கொடி சேர்க்கப்பட்டது. மெட்டாடேட்டாவில் புதிய புலம் சேர்க்கப்பட்டுள்ளது"வெளியிட", இது ஜிட் டேக் மற்றும் பதிப்பு எண்ணைக் குறிப்பிடுவதன் மூலம் சார்புகளை வெளியிட உங்களை அனுமதிக்கிறது. பல்வேறு தொகுத்தல் நிலைகளின் செயலாக்க நேரங்களின் HTML அறிக்கையை உருவாக்க "-Ztimings" சோதனை விருப்பம் சேர்க்கப்பட்டது.
  • rustc கம்பைலரில், கண்டறியும் செய்திகளில் டெர்மினலில் பொருந்தாத குறியீட்டின் வால்களை டிரிம் செய்வது அடங்கும். இலக்கு தளங்களுக்கு மூன்றாம் நிலை ஆதரவை வழங்கியது
    i686-unknown-uefi மற்றும் sparc64-unknown-openbsd. மூன்றாம் நிலை அடிப்படை ஆதரவை உள்ளடக்கியது, ஆனால் தானியங்கு சோதனை மற்றும் அதிகாரப்பூர்வ உருவாக்கங்களின் வெளியீடு இல்லாமல்.

ஆதாரம்: opennet.ru

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