Nakon godinu dana razvoja objavljeno je izdanje Ruby 2.6.0, dinamički objektno orijentisani programski jezik, koji se odlikuje visokom efikasnošću razvoja softvera i uključuje najbolje karakteristike Perla, Jave, Pythona, Smalltalka, Eiffela, Ade i Lispa.
Kôd projekta distribuira se pod BSD licencama ("BSDL sa 2 klauzule") i "Ruby", koji se odnosi na najnoviju GPL licencu i u potpunosti je u skladu sa GPLv3.
Ruby 2.6 je šesta glavna verzija, pripremljen kao dio planiranog razvojnog procesa, koji uključuje odvajanje godine za pripremu funkcionalnih poboljšanja i stvaranje korektivnih verzija svaka 2-3 mjeseca.
Glavne nove funkcije u Ruby 2.6.0
S ovim novim izdanjem Rubyja dodao eksperimentalnu implementaciju JIT kompajlera, što vam omogućava da značajno poboljšate performanse aplikacija na jeziku Ruby.
Za razliku od tradicionalnih JIT kompajlera, koji generiraju mašinske upute u letu, predloženi JIT kompajler u Rubyu prvo zapisuje C kod na disk, a zatim poziva vanjski C kompajler da generira mašinske upute (podržani GCC, Clang i Microsoft VC ++).
Da biste omogućili JIT, morate navesti opciju „–jit“ prilikom pokretanja ruby ili postaviti ovu opciju u varijabli okruženja RUBYOPT.
U poređenju sa Ruby 2.5, uključivanje JIT-a u prosjeku je 1.7 puta veće od performansi CPU intenzivnih aplikacija.
U isto vrijeme, razvoj je i dalje eksperimentalan i neprikladan za opterećenja povezana s intenzivno memorijskim radom.
Ostala poboljšanja koja su postignuta u ovoj verziji je RubyVM :: AbstractSyntaxTree eksperimentalni modul, koji pruža metodu raščlanjivanja koja obrađuje prosljeđene nizove kao Ruby kôd i vraća apstraktno sintaksno stablo (AST) za ovaj kôd.
Sada se alias "#then" može koristiti za pristup metodi "Kernel # yield_self". Za metode "Array # |" i "Array # -" predložio je čitljivije pseudonime "Array # union" i "Array # Difference".
Konstantna imena sada mogu počinjati velikim slovima koja nisu ASCII.
Podržana je i Privremena hrpa, namijenjena objektima s kratkim životnim vijekom koristeći određene klase (Array, Hash, Object, Struct).
Na primjer, zahvaljujući theap-u, stvaranje postojećih malih kratkotrajnih hashova sada je dvostruko brže. Rdoc test pokazao je porast prinosa za 6-7%.
Da bi se povećale performanse prebacivanja konteksta, predložene su nativne implementacije podprograma za arhitekture arm32, arm64, ppc64le, win32, win64, x86 i amd64. "Fiber.yield" i "Fiber # resume" na 64-bitnim Linux sistemima sada rade gotovo pet puta brže.
Generalno, intenzivni programi pokazuju porast performansi od 5%.
Glavna poboljšanja u Ruby 2.6.0
Primljena je ažurirana verzija RubyGems 3.0.1, u kojem je ukinuta podrška za opcije „–ri“ i „–rdoc“, umjesto koje biste trebali koristiti „–document“ i „–no-document“.
Paket je sada instaliran prema zadanim postavkama za upravljanje ovisnostima o draguljima.
Dodana je podrška za nedovršene raspone, na primjer, "ary [1 ..]" ili "(1 ..). Svaki {…} ".
Od ostalih poboljšanja koja se mogu istaknuti, možete pronaći:
- Opcija iznimke dodana je Kernel # sistemskoj metodi kako bi se pokrenula iznimka zbog greške umjesto vraćanja false.
- Režim onehot je bio dodan modulu pokrivenosti, koji provjerava da li se svaki red izvršava barem jednom.
- Klasa Enumerator :: Chain i u nju implementirane metode "Enumerable # chain" i "Enumerator # +" dodaju se za stvaranje lanaca pobrojanih vrijednosti.
- Podrška za operatore «<<» i «>>» dodana je modulima Proc i Method, na primjer, konstrukcija «(f << g) .call (3)» identična je «f (g (3 )) ".
Kako instalirati Ruby 2.6.0 na Linux?
Da biste dobili ovu novu verziju Rubyja, samo otvorite terminal na vašem sistemu i unesite jednu od sljedećih naredbi
Debian, Ubuntu i derivati
sudo apt-get install ruby-full
CentOS, Fedora i RHEL
sudo yum install ruby
Gentoo
sudo emerge dev-lang/ruby
Arch Linux, Manjaro, Antergos i derivati
sudo pacman -S ruby
openSUSE
sudo zypper install ruby
Naredbe apt-get yum itd idu u zadana spremišta distribucija, koja su uglavnom stara i nećete imati verziju 2.6 već drugu staru verziju.