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

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

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

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

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

  • சுற்றுச்சூழலுக்கான அதிகரித்த தேவைகள் Linux கம்பைலர், கார்கோ தொகுப்பு மேலாளர் மற்றும் தரநிலை நூலகமான libstd ஆகியவற்றில், Glibc-க்கான குறைந்தபட்சத் தேவைகள் பதிப்பு 2.11-லிருந்து 2.17-ஆக உயர்த்தப்பட்டுள்ளன, மேலும் கெர்னல்கள் Linux பதிப்பு 2.6.32 முதல் 3.2 வரை. libstd-ஐக் கொண்டு உருவாக்கப்பட்ட ரஸ்ட் பயன்பாட்டு இயங்கு கோப்புகளுக்கும் இந்தக் கட்டுப்பாடுகள் பொருந்தும். RHEL 7, SLES 12-SP5 மற்றும் பிற விநியோகங்கள் இந்தப் புதிய தேவைகளுக்கு இணங்குகின்றன. Debian 8 மற்றும் Ubuntu 14.04. RHEL 6, SLES 11-SP4 ஆகியவற்றிற்கான ஆதரவு நிறுத்தப்படும். Debian 7 மற்றும் Ubuntu 12.04. பழைய கெர்னல் உள்ள சூழல்களில் ரஸ்ட் டூல்செயின் மூலம் உருவாக்கப்பட்ட இயங்கு கோப்புகளைப் பயன்படுத்தும் பயனர்களுக்கானது. Linuxஇணக்கத்தன்மையைப் பேணுவதற்காக, அவர்கள் தங்கள் கணினி அமைப்புகளை மேம்படுத்திக்கொள்ளவோ, பழைய கம்பைலர் வெளியீடுகளையே பயன்படுத்தவோ, அல்லது இடை அடுக்குகளுடன் கூடிய தங்களின் சொந்த libstd கிளையைத் தன்னிச்சையாகப் பராமரிக்கவோ பரிந்துரைக்கப்படுகிறது.

    பழையவற்றுக்கான ஆதரவை நிறுத்துவதற்கான காரணங்களில் Linuxபழைய சூழல்களுடன் இணக்கத்தன்மையைத் தொடர்ந்து பராமரிப்பதற்கு வரையறுக்கப்பட்ட வளங்களே உள்ளன என அமைப்புகள் குறிப்பிடுகின்றன. LLVM மற்றும் குறுக்கு-தொகுப்புக் கருவிகளுக்கான பதிப்புத் தேவைகள் அதிகரித்துள்ளதால், பழைய Glibc-க்கான ஆதரவிற்கு, தொடர்ச்சியான ஒருங்கிணைப்பு அமைப்பைச் சரிபார்க்கும்போது பழைய கருவிகளைப் பயன்படுத்த வேண்டியுள்ளது. பழைய கெர்னல்களுடன் இணக்கத்தன்மையை உறுதிசெய்ய இடைநிலைகளைப் பராமரிக்க வேண்டிய தேவையின்றி, libstd-இல் புதிய சிஸ்டம் அழைப்புகளைப் பயன்படுத்தும் திறனே, கெர்னல் பதிப்புத் தேவைகளை அதிகரித்துள்ளது.

  • IntoFuture பண்பு நிலைப்படுத்தப்பட்டது, இது IntoIterator ஐ ஒத்திருக்கிறது, ஆனால் "for ... in ..." லூப்களுக்குப் பதிலாக ".await" ஐப் பயன்படுத்துவதன் மூலம் பிந்தையவற்றிலிருந்து வேறுபடுகிறது. IntoFuture உடன் இணைந்தால், ".await" முக்கிய சொல்லானது எதிர்காலப் பண்பு மட்டுமல்ல, எதிர்காலமாக மாற்றக்கூடிய வேறு வகைகளையும் எதிர்பார்க்கலாம்.
  • துரு-பகுப்பாய்வி பயன்பாடு ரஸ்ட் வெளியீடுகளுடன் வழங்கப்பட்ட பயன்பாடுகளின் சேகரிப்பில் சேர்க்கப்பட்டுள்ளது. rustup (rustup கூறு சேர் rust-analyzer) ஐப் பயன்படுத்தி நிறுவலுக்கும் பயன்பாடு கிடைக்கிறது.
  • ரஸ்ட் பதிப்புகள் மற்றும் களஞ்சிய URLகள் போன்ற தொகுப்புகளுக்கு இடையே உள்ள பொதுவான புல மதிப்புகளின் நகல்களை அகற்ற சரக்கு தொகுப்பு மேலாளர் பணியிட மரபுரிமையை உள்ளடக்கியது. ஒரே நேரத்தில் பல இலக்கு தளங்களை உருவாக்குவதற்கான ஆதரவையும் சேர்த்தது (இப்போது நீங்கள் “--இலக்கு” ​​விருப்பத்தில் ஒன்றுக்கும் மேற்பட்ட அளவுருக்களைக் குறிப்பிடலாம்).
  • API இன் ஒரு புதிய பகுதி நிலையான வகைக்கு நகர்த்தப்பட்டது, இதில் பண்புகளின் முறைகள் மற்றும் செயலாக்கங்கள் உறுதிப்படுத்தப்பட்டுள்ளன:
    • எதிர்காலம்::இன்டூ ஃபியூச்சர்
    • num::Zero அல்லாத*::checked_mul
    • num::Zero அல்லாத*::checked_pow
    • எண்::பூஜ்ஜியமற்ற*::நிறைவு_முல்
    • எண்::பூஜ்ஜியமற்ற*::நிறைவு_பவ்
    • எண்::ZeroI*::abs
    • num::NonZeroI*::checked_abs
    • num::NonZeroI*::overflowing_abs
    • num::NonZeroI*::saturating_abs
    • num::NonZeroI*::unsigned_abs
    • num::NonZeroI*::wrapping_abs
    • எண்::NonZeroU*::checked_add
    • num::NonZeroU*:: checked_ next_power_of_to
    • எண்::NonZeroU*::saturating_add
    • os::unix::process::CommandExt::process_group
    • os::windows::fs::FileTypeExt::is_symlink_dir
    • os::windows::fs::FileTypeExt::is_symlink_file
  • C-இணக்கமான வகைகள், முன்பு std::ffi தொகுதியில் நிலைப்படுத்தப்பட்டு, கோர் மற்றும் alloc லைப்ரரியில் சேர்க்கப்பட்டுள்ளன:
    • core::ffi::CStr
    • core::ffi::FromBytesWithNulError
    • alloc::ffi::CString
    • alloc::ffi::FromVecWithNulError
    • alloc::ffi::IntoStringError
    • alloc::ffi::NulError
  • std::os::raw module இல் முன்பு நிலைப்படுத்தப்பட்ட C வகைகள் கோர்::ffi மற்றும் std::ffi தொகுதிகளில் சேர்க்கப்பட்டுள்ளன (உதாரணமாக, c_uint மற்றும் c_ulong வகைகள் uint மற்றும் ulong C வகைகளுக்கு முன்மொழியப்பட்டுள்ளன):
    • ffi::c_char
    • ffi::c_double
    • ffi::c_float
    • ffi::c_int
    • ffi::c_long
    • ffi::c_longlong
    • ffi::c_schar
    • ffi::c_short
    • ffi::c_uchar
    • ffi::c_uint
    • ffi::c_ulong
    • ffi::c_ulonglong
    • ffi::c_ushort
  • வாக்கெடுப்பு பொறிமுறையுடன் பயன்படுத்துவதற்கு குறைந்த-நிலை ஹேண்ட்லர்கள் நிலைப்படுத்தப்பட்டுள்ளன (எதிர்காலத்தில் இது புல் மற்றும் பின் போன்ற குறைந்த-நிலை கட்டமைப்புகளைப் பயன்படுத்தத் தேவையில்லாத எளிமையான API ஐ வழங்க திட்டமிடப்பட்டுள்ளது):
    • எதிர்காலம்::poll_fn
    • பணி:: தயார்!
  • மாறிலிகளுக்குப் பதிலாக எந்தச் சூழலிலும் அதைப் பயன்படுத்துவதற்கான சாத்தியத்தை நிர்ணயிக்கும் “const” பண்புக்கூறு, ஸ்லைஸ்::from_raw_parts செயல்பாட்டில் பயன்படுத்தப்படுகிறது.
  • தரவை மிகவும் சுருக்கமாகச் சேமிப்பதற்காக, Ipv4Addr, Ipv6Addr, SocketAddrV4 மற்றும் SocketAddrV6 கட்டமைப்புகளின் நினைவக அமைப்பு மாற்றப்பட்டுள்ளது. std::mem::transmute ஐப் பயன்படுத்தும் சிங்கிள் க்ரேட் பேக்கேஜ்களில் இணக்கத்தன்மை சிக்கல் இருக்கலாம்.
  • தளத்திற்கான ரஸ்ட் கம்பைலர் உருவாக்கத்தில் Windows PGO உகப்பாக்கங்கள் (சுயவிவர வழிகாட்டு உகப்பாக்கம்) பயன்படுத்தப்பட்டன, இது குறியீடு தொகுப்புச் செயல்திறனை 10-20% வரை அதிகரிக்க உதவியது.
  • கம்பைலர் சில கட்டமைப்புகளில் பயன்படுத்தப்படாத புலங்கள் பற்றிய புதிய எச்சரிக்கையை செயல்படுத்தியுள்ளது.

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

ஆதாரம்: opennet.ru

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