Nakon godinu dana razvoja objavljeno je izdanje Ruby 2.6.0, dinamični objektno orijentirani programski jezik, koji karakterizira visoka učinkovitost razvoja softvera i uključuje najbolje značajke Perla, Jave, Pythona, Smalltalka, Eiffela, Ade i Lispa.
Kôd projekta distribuira se pod BSD licencama ("BSDL s 2 klauzule") i "Ruby", koji se odnosi na najnoviju GPL licencu i u potpunosti je u skladu s GPLv3.
Ruby 2.6 je šesta glavna verzija, pripremljen kao dio planiranog razvojnog procesa, koji uključuje dodjelu godine za pripremu funkcionalnih poboljšanja i izradu korektivnih verzija svaka 2-3 mjeseca.
Glavne nove značajke u Ruby 2.6.0
S ovim novim izdanjem Ruby dodao eksperimentalnu implementaciju JIT kompajlera, što vam omogućuje značajno poboljšanje izvedbe aplikacija na jeziku Ruby.
Za razliku od tradicionalnih JIT-ovih kompajlera, koji u letu generiraju strojne upute, predloženi JIT-ov kompajler u Rubyu prvo zapisuje C kôd na disk, a zatim poziva vanjski C kompajler da generira strojne upute (podržani GCC, Clang i Microsoft VC ++).
Da biste omogućili JIT, morate odrediti opciju „–jit“ prilikom pokretanja ruby ili postaviti ovu opciju u varijabli okruženja RUBYOPT.
U usporedbi s Ruby 2.5, uključivanje JIT-a u prosjeku je 1.7 puta veće od performansi CPU intenzivnih aplikacija.
Istodobno, 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 čitljiviji alias "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 korištenjem određenih klasa (Array, Hash, Object, Struct).
Na primjer, zahvaljujući theap-u, stvaranje malih kratkotrajnih postojećih 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 izvorne implementacije podprograma za arhitekture arm32, arm64, ppc64le, win32, win64, x86 i amd64. "Fiber.yield" i "Fiber # resume" na 64-bitnim Linux sustavima sada rade gotovo pet puta brže.
Općenito, intenzivni programi pokazuju porast izvedbe 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 radi podizanja iznimke zbog pogreške umjesto vraćanja false.
- Način oneshot je bio dodan modulu pokrivenosti, koji provjerava izvršava li se svaki redak 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 sustavu i upišite 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.