विकास के एक वर्ष के बाद, रूबी 2.6.0 रिलीज़ प्रकाशित हुई है, एक गतिशील ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा, जो उच्च सॉफ्टवेयर विकास दक्षता द्वारा विशेषता है और इसमें पर्ल, जावा, पायथन, स्मॉलटॉक, एफिल, एडा और लिस्प की सर्वोत्तम विशेषताएं शामिल हैं।
प्रोजेक्ट कोड बीएसडी लाइसेंस के तहत वितरित किया जाता है ("2-क्लॉज बीएसडीएल") और "रूबी", जो नवीनतम जीपीएल लाइसेंस को संदर्भित करता है और जीपीएलवी3 के साथ पूरी तरह से संगत है।
रूबी 2.6 छठा प्रमुख संस्करण है, एक नियोजित विकास प्रक्रिया के हिस्से के रूप में तैयार किया गया है, जिसमें कार्यात्मक सुधार तैयार करने के लिए एक वर्ष आवंटित करना और हर 2-3 महीने में सुधारात्मक रिलीज़ तैयार करना शामिल है।
रूबी 2.6.0 में प्रमुख नई सुविधाएँ
रूबी की इस नई रिलीज़ के साथ JIT कंपाइलर का प्रायोगिक कार्यान्वयन जोड़ा गया, जो आपको रूबी भाषा में अनुप्रयोगों के प्रदर्शन में उल्लेखनीय सुधार करने की अनुमति देता है।
पारंपरिक जेआईटी कंपाइलर्स के विपरीत, जो तुरंत मशीन निर्देश उत्पन्न करते हैं, रूबी में प्रस्तावित जेआईटी कंपाइलर पहले डिस्क पर सी कोड लिखता है, फिर मशीन निर्देश उत्पन्न करने के लिए बाहरी सी कंपाइलर को कॉल करता है (जीसीसी समर्थित हैं)। , क्लैंग, और माइक्रोसॉफ्ट वीसी++ ).
JIT को सक्षम करने के लिए, रूबी शुरू करते समय "-जिट" विकल्प निर्दिष्ट किया जाना चाहिए या इस विकल्प को RUBYOPT पर्यावरण चर में सेट करना होगा।
रूबी 2.5 की तुलना में, जेआईटी का समावेश सीपीयू-गहन अनुप्रयोगों के प्रदर्शन का औसत 1.7 गुना है।
साथ ही, विकास अभी भी प्रयोगात्मक है और स्मृति-गहन कार्य से जुड़े भार के लिए खराब रूप से अनुकूल है।
इस संस्करण में जो अन्य सुधार प्राप्त हुए वे थे प्रायोगिक मॉड्यूल RubyVM::AbstractSyntaxTree, जो एक पार्सिंग विधि प्रदान करता है जो पारित स्ट्रिंग्स को रूबी कोड के रूप में संसाधित करता है और इस कोड के लिए एक अमूर्त सिंटैक्स ट्री (एएसटी, एब्सट्रैक्ट सिंटैक्स ट्री) लौटाता है।
"#then" उपनाम का उपयोग अब "कर्नेल # यील्ड_सेल्फ" विधि तक पहुंचने के लिए किया जा सकता है। विधियों के लिए "सरणी # |" और "ऐरे # -" ने अधिक पठनीय उपनाम "ऐरे # यूनियन" और "ऐरे # अंतर" का सुझाव दिया।
स्थिर नाम अब गैर-ASCII बड़े अक्षरों से शुरू हो सकते हैं।
ट्रांसिएंट हीप के लिए समर्थन भी प्रदान किया गया था, थेप का उद्देश्य विशिष्ट वर्गों (ऐरे, हैश, ऑब्जेक्ट, स्ट्रक्चर) का उपयोग करके छोटे जीवनकाल वाली वस्तुओं के लिए था।
उदाहरण के लिए, थेप के लिए धन्यवाद, छोटे, अल्पकालिक मौजूदा हैश बनाना अब दोगुना तेज़ है। Rdoc परीक्षण में प्रदर्शन में 6-7% की वृद्धि देखी गई।
संदर्भ स्विच के प्रदर्शन को बढ़ाने के लिए, कोरटाइन के मूल कार्यान्वयन प्रस्तावित हैं। आर्म32, आर्म64, पीपीसी64एलई, विन32, विन64, x86 और एएमडी64 आर्किटेक्चर के लिए। 64-बिट लिनक्स सिस्टम पर "फाइबर.यील्ड" और "फाइबर # रिज्यूमे" अब लगभग 5 गुना तेजी से चलते हैं।
सामान्य तौर पर, गहन कार्यक्रम 5% की प्रदर्शन वृद्धि दिखाते हैं।
रूबी 2.6.0 में महत्वपूर्ण सुधार
रूबीजेम्स 3.0.1 का अद्यतन संस्करण प्राप्त हुआ, जिसमें "-ri" और "-rdoc" विकल्पों के लिए समर्थन बंद कर दिया गया है, इसके बजाय आपको "-document" और "-no-document" का उपयोग करना चाहिए।
रत्न निर्भरता को प्रबंधित करने के लिए बंडलर अब डिफ़ॉल्ट रूप से स्थापित है।
अनटर्मिनेटेड श्रेणियों के लिए समर्थन जोड़ा गया, उदाहरण के लिए "एरी [1 ..]" या "(1 ..)। प्रत्येक{…}"।
जिन अन्य सुधारों पर प्रकाश डाला जा सकता है उनमें से आप पा सकते हैं:
- गलत रिटर्न देने के बजाय त्रुटि पर अपवाद बढ़ाने के लिए कर्नेल # सिस्टम विधि में अपवाद विकल्प जोड़ा गया है।
- वनशॉट मोड रहा है कवरेज मॉड्यूल में जोड़ा गया, जो जांचता है कि प्रत्येक पंक्ति को कम से कम एक बार निष्पादित किया जा रहा है या नहीं।
- एन्यूमरेटर::चेन क्लास और इसमें लागू "एन्यूमरेटर # चेन" और "एन्यूमरेटर # +" तरीकों को एन्यूमरेटेड मानों की स्ट्रिंग बनाने के लिए जोड़ा जाता है।
- ऑपरेटरों के लिए समर्थन "<<" और ">>" को प्रोक और मेथड मॉड्यूल में जोड़ा गया है, उदाहरण के लिए, निर्माण "(f << g).call (3)" "f (g (3)" के समान है ))"।
लिनक्स पर रूबी 2.6.0 कैसे स्थापित करें?
रूबी का यह नया संस्करण प्राप्त करने के लिए, बस अपने सिस्टम पर एक टर्मिनल खोलें और निम्न में से एक कमांड टाइप करें
डेबियन, उबंटू और डेरिवेटिव
sudo apt-get install ruby-full
CentOS, फेडोरा, और RHEL
sudo yum install ruby
Gentoo
sudo emerge dev-lang/ruby
आर्क लिनक्स, मंज़रो, एंटरगोज़ और डेरिवेटिव
sudo pacman -S ruby
openSUSE
sudo zypper install ruby
एपीटी-गेट यम आदि कमांड वितरण के डिफ़ॉल्ट रिपॉजिटरी में जाते हैं, जो आमतौर पर पुराने होते हैं और आपके पास संस्करण 2.6 नहीं बल्कि कुछ अन्य पुराने संस्करण होंगे।