Efter ett års utveckling publiceras Ruby 2.6.0-versionen, ett dynamiskt objektorienterat programmeringsspråk, som kännetecknas av hög effektivitet för mjukvaruutveckling och innehåller de bästa funktionerna i Perl, Java, Python, Smalltalk, Eiffel, Ada och Lisp.
Projektkoden distribueras under BSD-licenser ("2-paragraf BSDL") och "Ruby", som hänvisar till den senaste GPL-licensen och är helt GPLv3-kompatibel.
Ruby 2.6 är den sjätte stora versionen, förberedd som en del av en planerad utvecklingsprocess, som innebär att man avsätter ett år för att förbereda funktionella förbättringar och skapa korrigerande versioner var 2-3: e månad.
De viktigaste nya funktionerna i Ruby 2.6.0
Med den här nya versionen av Ruby lade till en experimentell implementering av JIT-kompilatorn, vilket gör att du kan förbättra prestandan för applikationer på rubinspråket avsevärt.
Till skillnad från traditionella JIT-kompilatorer, som genererar maskininstruktioner i farten, skriver den föreslagna JIT-kompilatorn i Ruby först C-koden till disken och ringer sedan den externa C-kompilatorn för att generera maskininstruktionerna (GCC-stöd, Clang och Microsoft VC ++).
För att aktivera JIT måste du ange alternativet "–jit" när du startar rubin eller ställa in detta alternativ i RUBYOPT-miljövariabeln.
Jämfört med Ruby 2.5 är inkluderingen av JIT i genomsnitt 1.7 gånger prestandan för CPU-intensiva applikationer.
Samtidigt är utvecklingen fortfarande experimentell och olämplig för belastningar i samband med minneintensivt arbete.
Andra förbättringar som erhölls i denna version var RubyVM :: AbstractSyntaxTree experimentmodul, som tillhandahåller en analyseringsmetod som behandlar de skickade strängarna som Ruby-kod och returnerar ett Abstract Syntax Tree (AST) för den här koden.
Aliaset "#then" kan nu användas för att komma åt "Kernel # yield_self" -metoden. För "Array # |" - metoder och "Array # -" föreslog mer läsbara alias "Array # union" och "Array # Difference".
Konstanta namn kan nu börja med andra stora bokstäver än ASCII.
Support tillhandahölls också för Transient Heap, theap avsedd för objekt med kort livslängd med specifika klasser (Array, Hash, Object, Struct).
Tack vare theap är det till exempel dubbelt så snabbt att skapa små, kortlivade befintliga haschar. Rdoc-testet visade en ökning i utbytet med 6-7%.
För att öka prestandan för kontextväxlar föreslås infödda implementeringar av coroutines för arkitekturerna arm32, arm64, ppc64le, win32, win64, x86 och amd64. "Fiber.yield" och "Fiber # resume" på 64-bitars Linux-system körs nu nästan 5 gånger snabbare.
Generellt visar intensiva program en prestationsökning på 5%.
Stora förbättringar i Ruby 2.6.0
En uppdaterad version av RubyGems 3.0.1 har tagits emot, där stöd för "–ri" och "–rdoc" -alternativen har upphört, istället för som du ska använda "–dokument" och "–dokument".
Bundler är nu installerat som standard för att hantera gemberoenden.
Lagt till stöd för oavslutade intervall, till exempel "ary [1 ..]" eller "(1 ..). Varje {…} ".
Av de andra förbättringarna som kan markeras kan du hitta:
- Undantagsalternativet har lagts till i Kernel # -systemmetoden för att höja ett undantag vid fel istället för att returnera falskt.
- Oneshot-läget har varit läggs till i täckningsmodulen, som kontrollerar om varje rad körs minst en gång.
- Enumerator :: Chain-klassen och metoderna "Enumerable # chain" och "Enumerator # +" har lagts till för att skapa kedjor med uppräknade värden.
- Stöd för operatörerna «<<» och «>>» har lagts till i modulerna Proc och Method, till exempel är konstruktionen «(f << g). Call (3)» är identisk med «f (g (3) )) ".
Hur installerar jag Ruby 2.6.0 på Linux?
För att få den här nya versionen av Ruby, öppna bara en terminal på ditt system och skriv ett av följande kommandon
Debian, Ubuntu och derivat
sudo apt-get install ruby-full
CentOS, Fedora och RHEL
sudo yum install ruby
Gentoo
sudo emerge dev-lang/ruby
Arch Linux, Manjaro, Antergos och derivat
sudo pacman -S ruby
openSUSE
sudo zypper install ruby
Kommandona apt-get yum etc går till standardförvaren för distributionerna, som vanligtvis är gamla och du kommer inte att ha version 2.6 utan en annan gammal version.