ரூபி 3.1 நிரலாக்க மொழியின் வெளியீடு

ரூபி 3.1.0 வெளியிடப்பட்டது, இது ஒரு மாறும் பொருள் சார்ந்த நிரலாக்க மொழியாகும், இது நிரல் மேம்பாட்டில் மிகவும் திறமையானது மற்றும் பெர்ல், ஜாவா, பைதான், ஸ்மால்டாக், ஈபிள், அடா மற்றும் லிஸ்ப் ஆகியவற்றின் சிறந்த அம்சங்களை உள்ளடக்கியது. திட்டக் குறியீடு BSD ("2-clause BSDL") மற்றும் "Ruby" உரிமங்களின் கீழ் விநியோகிக்கப்படுகிறது, இது GPL உரிமத்தின் சமீபத்திய பதிப்பைக் குறிக்கிறது மற்றும் GPLv3 உடன் முழுமையாக இணக்கமானது.

முக்கிய மேம்பாடுகள்:

  • ரெயில்ஸ் கட்டமைப்பைப் பயன்படுத்தும் மற்றும் பல முறைகளை அழைக்கும் ரூபி புரோகிராம்களின் செயல்திறனை மேம்படுத்தும் முயற்சியின் ஒரு பகுதியாக Shopify இ-காமர்ஸ் தளத்தின் டெவலப்பர்களால் உருவாக்கப்பட்ட புதிய சோதனைச் செயலாக்கத்தில் உள்ள JIT கம்பைலர், YJIT சேர்க்கப்பட்டுள்ளது. முன்னர் பயன்படுத்தப்பட்ட MJIT JIT கம்பைலரிலிருந்து முக்கிய வேறுபாடு, இது முழு முறைகளையும் செயலாக்குவதை அடிப்படையாகக் கொண்டது மற்றும் C மொழியில் வெளிப்புற கம்பைலரைப் பயன்படுத்துகிறது, YJIT லேஸி பேசிக் பிளாக் வெர்ஷனிங்கை (LBBV) பயன்படுத்துகிறது மற்றும் ஒரு ஒருங்கிணைந்த JIT கம்பைலரைக் கொண்டுள்ளது. LBBV உடன், JIT முதலில் முறையின் தொடக்கத்தை மட்டுமே தொகுக்கிறது, மேலும் சில நேரம் கழித்து மீதமுள்ளவற்றை தொகுக்கிறது, செயல்படுத்தும் போது பயன்படுத்தப்படும் மாறிகள் மற்றும் வாதங்களின் வகைகள் தீர்மானிக்கப்பட்ட பிறகு. YJIT ஐப் பயன்படுத்தும் போது, ​​railsbench சோதனையை இயக்கும் போது செயல்திறனில் 22% அதிகரிப்பு மற்றும் திரவ-ரெண்டர் சோதனையில் 39% அதிகரிப்பு பதிவு செய்யப்பட்டது. YJIT தற்போது x86-64 கட்டமைப்பைக் கொண்ட கணினிகளில் unix போன்ற OSகளுக்கான ஆதரவை மட்டுமே கொண்டுள்ளது மற்றும் முன்னிருப்பாக முடக்கப்பட்டுள்ளது (செயல்படுத்த, கட்டளை வரியில் "--yjit" கொடியைக் குறிப்பிடவும்).
  • பழைய MJIT JIT கம்பைலரின் மேம்படுத்தப்பட்ட செயல்திறன். ரெயில்களைப் பயன்படுத்தும் திட்டங்களுக்கு, இயல்புநிலை அதிகபட்ச கேச் அளவு (--jit-max-cache) 100ல் இருந்து 10000 வழிமுறைகளாக அதிகரிக்கப்பட்டுள்ளது. 1000 க்கும் மேற்பட்ட வழிமுறைகளைக் கொண்ட முறைகளுக்கு JIT ஐப் பயன்படுத்துவதை நிறுத்தியது. Zeitwerk of Rails ஐ ஆதரிக்க, வகுப்பு நிகழ்வுகளுக்கு TracePoint இயக்கப்படும் போது JIT குறியீடு நிராகரிக்கப்படாது.
  • இது முற்றிலும் மீண்டும் எழுதப்பட்ட debug.gem பிழைத்திருத்தத்தை உள்ளடக்கியது, இது தொலைநிலை பிழைத்திருத்தத்தை ஆதரிக்கிறது, பிழைத்திருத்தப்பட்ட பயன்பாட்டை மெதுவாக்காது, மேம்பட்ட பிழைத்திருத்த இடைமுகங்களுடன் (VSCode மற்றும் Chrome) ஒருங்கிணைப்பை ஆதரிக்கிறது, பல-திரிக்கப்பட்ட மற்றும் பல-செயல்முறை பயன்பாடுகளை பிழைத்திருத்தத்திற்கு பயன்படுத்தலாம், வழங்குகிறது. ஒரு REPL குறியீடு செயல்படுத்தும் இடைமுகம், மேம்பட்ட டிரேசிங் திறன்களை வழங்குகிறது, குறியீடு துணுக்குகளைப் பதிவுசெய்து மீண்டும் இயக்க முடியும். முன்பு வழங்கப்பட்ட பிழைத்திருத்தி lib/debug.rb அடிப்படை விநியோகத்திலிருந்து அகற்றப்பட்டது.
    ரூபி 3.1 நிரலாக்க மொழியின் வெளியீடு
  • கால் பேக் ட்ரேஸ் அறிக்கைகளில் உள்ள பிழைகளின் காட்சி சிறப்பம்சமாக செயல்படுத்தப்பட்டது. உள்ளமைக்கப்பட்ட மற்றும் இயல்புநிலை-செயல்படுத்தப்பட்ட ஜெம் தொகுப்பைப் பயன்படுத்தி பிழைக் கொடியிடல் வழங்கப்படுகிறது error_highlight. பிழைக் கொடியிடுதலை முடக்க, “--disable-error_highlight” அமைப்பைப் பயன்படுத்தலாம். $ ruby ​​test.rb test.rb:1:in "": undefined method "time" for 1:Integer (NoMethodError) 1.time {} ^^^^^ நீங்கள் சொன்னீர்களா? முறை
  • ஊடாடும் கணக்கீடுகளின் ஷெல் IRB (REPL, Read-Eval-Print-Loop) உள்ளிடப்பட்ட குறியீட்டை தானாக நிறைவு செய்வதை செயல்படுத்துகிறது (நீங்கள் தட்டச்சு செய்யும் போது, ​​தொடர்ந்து உள்ளீட்டிற்கான விருப்பங்களுடன் ஒரு குறிப்பு காட்டப்படும், அதற்கு இடையில் நீங்கள் Tab அல்லது Shift+ உடன் நகர்த்தலாம். தாவல் விசை). தொடர்ச்சி விருப்பத்தைத் தேர்ந்தெடுத்த பிறகு, தேர்ந்தெடுக்கப்பட்ட உருப்படியுடன் தொடர்புடைய ஆவணங்களைக் காண்பிக்கும் ஒரு உரையாடல் பெட்டி அருகில் காட்டப்படும். முழு ஆவணத்தையும் அணுக Alt+d விசைப்பலகை குறுக்குவழியைப் பயன்படுத்தலாம்.
    ரூபி 3.1 நிரலாக்க மொழியின் வெளியீடு
  • மொழி தொடரியல் இப்போது ஹாஷ் எழுத்துக்களில் உள்ள மதிப்புகள் மற்றும் செயல்பாடுகளை அழைக்கும் போது முக்கிய வாதங்களை தவிர்க்க அனுமதிக்கிறது. எடுத்துக்காட்டாக, “{x: x, y: y}” என்ற வெளிப்பாட்டிற்குப் பதிலாக இப்போது “{x:, y:}” என்றும், “foo(x: x, y: y)” என்பதற்குப் பதிலாக - foo( x:, y:)".
  • ஒற்றை வரி முறை பொருத்தங்களுக்கான (ary => [x, y, z]) உறுதிப்படுத்தப்பட்ட ஆதரவு, அவை இனி சோதனைக்குரியதாகக் கொடியிடப்படாது.
  • பேட்டர்ன் மேட்ச்களில் உள்ள "^" ஆபரேட்டர் இப்போது தன்னிச்சையான வெளிப்பாடுகளைக் கொண்டிருக்கலாம், உதாரணமாக: Prime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.take(3).to_a #= > ? [[3, 5], [5, 7], [11, 13]]
  • ஒற்றை வரி முறை பொருத்தங்களில், அடைப்புக்குறிகளைத் தவிர்க்கலாம்: [0, 1] => _, x {y: 2} => y: x #=> 1 y #=> 2
  • நிரலின் கட்டமைப்பு மற்றும் பயன்படுத்தப்படும் வகைகளைத் தீர்மானிக்க உங்களை அனுமதிக்கும் RBS வகை சிறுகுறிப்பு மொழி, "<" குறியீட்டைப் பயன்படுத்தி வகை அளவுருக்களின் மேல் வரம்பைக் குறிப்பிடுவதற்கான ஆதரவைச் சேர்த்தது, பொதுவான வகைகளின் மாற்றுப்பெயர்களுக்கான ஆதரவைச் சேர்த்தது, செயல்படுத்தப்பட்ட ஆதரவு ரத்தினங்களை நிர்வகிப்பதற்கான சேகரிப்புகள், மேம்பட்ட செயல்திறன் மற்றும் உள்ளமைக்கப்பட்ட மற்றும் நிலையான நூலகங்களுக்கு பல புதிய கையொப்பங்களை செயல்படுத்தியது.
  • ஒருங்கிணைந்த மேம்பாட்டு சூழல்களுக்கான சோதனை ஆதரவு TypePro நிலையான வகை பகுப்பாய்வியில் சேர்க்கப்பட்டுள்ளது, இது வெளிப்படையான வகைத் தகவல் இல்லாமல் குறியீடு பகுப்பாய்வு அடிப்படையில் RBS சிறுகுறிப்புகளை உருவாக்குகிறது (உதாரணமாக, VSCode எடிட்டருடன் TypePro ஐ ஒருங்கிணைக்க ஒரு துணை நிரல் தயாரிக்கப்பட்டுள்ளது).
  • பல பணிகளைச் செயலாக்கும் வரிசை மாற்றப்பட்டுள்ளது. எடுத்துக்காட்டாக, முன்பு "foo[0], bar[0] = baz, qux" என்ற வெளிப்பாட்டின் கூறுகள் baz, qux, foo, bar வரிசையில் செயலாக்கப்பட்டன, ஆனால் இப்போது foo, bar, baz, qux.
  • VWA (மாறி அகல ஒதுக்கீடு) பொறிமுறையைப் பயன்படுத்தி சரங்களுக்கான நினைவக ஒதுக்கீட்டிற்கான சோதனை ஆதரவு சேர்க்கப்பட்டது.
  • உள்ளமைக்கப்பட்ட ஜெம் தொகுதிகளின் புதுப்பிக்கப்பட்ட பதிப்புகள் மற்றும் நிலையான நூலகத்தில் சேர்க்கப்பட்டுள்ளன. net-ftp, net-imap, net-pop, net-smtp, matrix, Prime மற்றும் debug தொகுப்புகள் உள்ளமைக்கப்பட்டவை.

ஆதாரம்: opennet.ru

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