Μετά από ένα χρόνο ανάπτυξης, δημοσιεύεται η έκδοση Ruby 2.6.0, μια δυναμική αντικειμενοστρεφή γλώσσα προγραμματισμού, που χαρακτηρίζεται από υψηλή απόδοση ανάπτυξης λογισμικού και ενσωματώνει τα καλύτερα χαρακτηριστικά των Perl, Java, Python, Smalltalk, Eiffel, Ada και Lisp.
Ο κωδικός έργου διανέμεται με τις άδειες BSD ("2-όρος BSDL") και "Ruby", που αναφέρονται στην τελευταία άδεια GPL και είναι πλήρως συμβατές με GPLv3.
Το Ruby 2.6 είναι η έκτη σημαντική έκδοση, προετοιμάστηκε ως μέρος μιας προγραμματισμένης διαδικασίας ανάπτυξης, η οποία περιλαμβάνει τη διάθεση ενός έτους για την προετοιμασία λειτουργικών βελτιώσεων και τη δημιουργία διορθωτικών εκδόσεων κάθε 2-3 μήνες.
Κύρια νέα χαρακτηριστικά στο Ruby 2.6.0
Με αυτή τη νέα κυκλοφορία του Ruby πρόσθεσε μια πειραματική εφαρμογή του μεταγλωττιστή JIT, το οποίο σας επιτρέπει να βελτιώσετε σημαντικά την απόδοση των εφαρμογών στη γλώσσα Ruby.
Σε αντίθεση με τους παραδοσιακούς μεταγλωττιστές JIT, οι οποίοι δημιουργούν εντολές μηχανής εν κινήσει, ο προτεινόμενος μεταγλωττιστής JIT στο Ruby γράφει πρώτα τον κώδικα C στο δίσκο και στη συνέχεια καλεί τον εξωτερικό μεταγλωττιστή C για να δημιουργήσει τις οδηγίες του μηχανήματος (υποστηρίζεται από GCC, Clang και Microsoft VC ++).
Για να ενεργοποιήσετε το JIT, πρέπει να καθορίσετε την επιλογή "–jit" κατά την έναρξη του ρουμπίνι ή να ορίσετε αυτήν την επιλογή στη μεταβλητή περιβάλλοντος RUBYOPT.
Σε σύγκριση με το Ruby 2.5, η συμπερίληψη του JIT είναι κατά μέσο όρο 1.7 φορές υψηλότερη απόδοσης εφαρμογών εντατικής CPU.
Ταυτόχρονα, η ανάπτυξη εξακολουθεί να είναι πειραματική και ακατάλληλη για φορτία που σχετίζονται με εργασίες εντατικής μνήμης.
Άλλες βελτιώσεις που επιτεύχθηκαν σε αυτήν την έκδοση ήταν το RubyVM :: AbstractSyntaxTree πειραματική ενότητα, η οποία παρέχει μια μέθοδο ανάλυσης που επεξεργάζεται τις συμβολοσειρές που έχουν περάσει ως κώδικα Ruby και επιστρέφει ένα Abstract Syntax Tree (AST) για αυτόν τον κώδικα.
Τώρα το ψευδώνυμο "#then" μπορεί να χρησιμοποιηθεί για πρόσβαση στη μέθοδο "Kernel # yield_self". Για τις μεθόδους "Array # |" και το "Array # -" πρότεινε πιο ευανάγνωστα ψευδώνυμα "Array # union" και "Array # Difference".
Τα σταθερά ονόματα μπορούν τώρα να ξεκινούν με κεφαλαία γράμματα εκτός από το ASCII.
Παρέχεται επίσης υποστήριξη για το Transient Heap, το οποίο προορίζεται για αντικείμενα μικρής διάρκειας ζωής χρησιμοποιώντας συγκεκριμένες κλάσεις (Array, Hash, Object, Struct).
Για παράδειγμα, χάρη στο theap, η δημιουργία μικρών, βραχύβιων υπαρχόντων κατακερματισμών είναι τώρα διπλάσια. Η δοκιμή rdoc έδειξε αύξηση της απόδοσης 6-7%.
Για να αυξηθεί η απόδοση των διακοπτών περιβάλλοντος, προτείνονται εγγενείς εφαρμογές κορουτίνες για αρχιτεκτονικές arm32, arm64, ppc64le, win32, win64, x86 και amd64. Τα "Fiber.yield" και "Fiber # resume" σε συστήματα Linux 64-bit λειτουργούν πλέον σχεδόν 5 φορές πιο γρήγορα.
Γενικά, τα εντατικά προγράμματα δείχνουν αύξηση της απόδοσης κατά 5%.
Σημαντικές βελτιώσεις στο Ruby 2.6.0
Λήφθηκε μια ενημερωμένη έκδοση του RubyGems 3.0.1, στην οποία η υποστήριξη για τις επιλογές "–ri" και "–rdoc" έχει διακοπεί, αντί για τις οποίες θα πρέπει να χρησιμοποιήσετε το "–document" και "–no-document".
Το Bundler είναι πλέον εγκατεστημένο από προεπιλογή για τη διαχείριση των εξαρτήσεων στοιχειών.
Προστέθηκε υποστήριξη για ημιτελή εύρη, για παράδειγμα, "ary [1 ..]" ή "(1 ..). Καθε {…} ".
Από τις άλλες βελτιώσεις που μπορούν να επισημανθούν, μπορείτε να βρείτε:
- Η επιλογή εξαίρεσης έχει προστεθεί στη μέθοδο συστήματος Kernel # για να δημιουργήσει μια εξαίρεση στο σφάλμα αντί να επιστρέψει το false.
- Η λειτουργία oneshot ήταν προστέθηκε στην ενότητα κάλυψης, η οποία ελέγχει εάν κάθε σειρά εκτελείται τουλάχιστον μία φορά.
- Η μέθοδος Enumerator :: Chain και οι μέθοδοι "Enumerable # chain" και "Enumerator # +" που εφαρμόζονται σε αυτήν προστίθενται για τη δημιουργία αλυσίδων απαριθμημένων τιμών.
- Υποστήριξη για τους χειριστές «<<» και «>>» έχει προστεθεί στις μονάδες Proc και Method, για παράδειγμα, η κατασκευή «(f << g) .call (3)» είναι ίδια με το «f (g (3 )) ".
Πώς να εγκαταστήσετε το Ruby 2.6.0 σε Linux;
Για να αποκτήσετε αυτήν τη νέα έκδοση του Ruby, απλώς ανοίξτε ένα τερματικό στο σύστημά σας και πληκτρολογήστε μία από τις ακόλουθες εντολές
Debian, Ubuntu και παράγωγα
sudo apt-get install ruby-full
CentOS, Fedora και RHEL
sudo yum install ruby
Gentoo
sudo emerge dev-lang/ruby
Arch Linux, Manjaro, Antergos και παράγωγα
sudo pacman -S ruby
openSUSE
sudo zypper install ruby
Οι εντολές apt-get yum etc πηγαίνουν στα προεπιλεγμένα αποθετήρια των διανομών, τα οποία είναι γενικά παλιά και δεν θα έχετε την έκδοση 2.6 αλλά μια άλλη παλιά έκδοση.