Vuoden kehityksen jälkeen julkaistaan Ruby 2.6.0 -julkaisu, dynaaminen olio-ohjelmointikieli, jolle on ominaista korkea ohjelmistokehityksen tehokkuus ja joka sisältää Perlin, Java: n, Pythonin, Smalltalkin, Eiffelin, Adan ja Lispin parhaat ominaisuudet.
Projektikoodi jaetaan BSD-lisensseillä ("2-lauseke BSDL") ja "Ruby", jotka viittaavat uusimpaan GPL-lisenssiin ja ovat täysin GPLv3-yhteensopivia.
Ruby 2.6 on kuudes pääversio, joka on valmistettu osana suunniteltua kehitysprosessia, johon sisältyy vuoden käyttö toiminnallisten parannusten valmistelemiseen ja korjaavien versioiden luomiseen 2-3 kuukauden välein.
Tärkeimmät uudet ominaisuudet Ruby 2.6.0: ssa
Tämän uuden Ruby-julkaisun kanssa lisäsi JIT-kääntäjän kokeellisen toteutuksen, jonka avulla voit parantaa merkittävästi Ruby-kielen sovellusten suorituskykyä.
Toisin kuin perinteiset JIT-kääntäjät, jotka tuottavat koneohjetta lennossa, ehdotettu Rubitin JIT-kääntäjä kirjoittaa ensin C-koodin levylle ja kutsuu sitten ulkoista C-kääntäjää luomaan koneohjeet (GCC tukee, Clang ja Microsoft VC ++).
Jos haluat ottaa JIT: n käyttöön, sinun on määritettävä "–jit" -vaihtoehto aloitettaessa rubiinia tai asetettava tämä vaihtoehto RUBYOPT-ympäristömuuttujaan.
Ruby 2.5: een verrattuna JIT: n sisällyttäminen on keskimäärin 1.7-kertainen CPU-intensiivisten sovellusten suorituskykyyn verrattuna.
Samaan aikaan kehitys on edelleen kokeellista ja ei sovellu huonosti muistiin liittyvään työhön liittyviin kuormiin.
Muita parannuksia, jotka saatiin tässä versiossa, olivat RubyVM :: AbstractSyntaxTree kokeellinen moduuli, joka tarjoaa jäsentämismenetelmän, joka käsittelee välitetyt merkkijonot Ruby-koodina ja palauttaa tälle koodille abstraktin syntaksipuun (AST).
Nyt aliasta "#then" voidaan käyttää menetelmään "Kernel # yield_self". "Array # |" - menetelmille ja "Array # -" ehdotti luettavampia aliaksia "Array # union" ja "Array # Difference".
Jatkuvat nimet voivat nyt alkaa muilla isoilla kirjaimilla kuin ASCII.
Tukea tarjottiin myös lyhytaikaisille esineille tarkoitettuun Transient Heap -tuotteeseen tietyillä luokilla (Array, Hash, Object, Struct).
Esimerkiksi theapin ansiosta pienten, lyhytaikaisten olemassa olevien hashien luominen on nyt kaksinkertaista. Rdoc-testi osoitti tuoton kasvavan 6-7%.
Kontekstikytkimien suorituskyvyn parantamiseksi ehdotetaan korutiineiden natiivia toteutuksia arkkitehtuureille arm32, arm64, ppc64le, win32, win64, x86 ja amd64. "Fiber.yield" ja "Fiber # resume" 64-bittisissä Linux-järjestelmissä toimivat nyt lähes viisi kertaa nopeammin.
Yleensä intensiivisten ohjelmien suorituskyky kasvaa 5%.
Suurimmat parannukset Ruby 2.6.0: ssa
Päivitetty versio RubyGems 3.0.1: stä on vastaanotettu, jossa "–ri" - ja "–rdoc" -vaihtoehtojen tuki on lopetettu. Sen sijaan sinun tulisi käyttää "–document" ja "–no-document".
Bundler on nyt asennettu oletuksena hallitsemaan helmi-riippuvuuksia.
Lisätty tuki keskeneräisille alueille, esimerkiksi "ary [1 ..]" tai "(1 ..). Jokainen {…} ».
Muista korostettavista parannuksista löydät:
- Poikkeusasetus on lisätty Kernel # system -menetelmään, jotta virheestä saataisiin poikkeus virheellisen palauttamisen sijaan.
- Onehot-tila on ollut lisätään kattavuusmoduuliin, joka tarkistaa, suoritetaanko kukin rivi ainakin kerran.
- Enumerator :: Chain -luokka ja siihen toteutetut "Enumerable # chain" - ja "Enumerator # +" -menetelmät lisätään luodaksesi lueteltujen arvojen ketjuja.
- Tuki operaattoreille «<<» ja «>>» on lisätty Proc- ja Method-moduuleihin, esimerkiksi rakenne «(f << g) .puhelu (3)» on identtinen «f (g (3) )) ".
Kuinka asentaa Ruby 2.6.0 Linuxiin?
Saadaksesi uuden Ruby-version, avaa vain päätelaite järjestelmässäsi ja kirjoita jokin seuraavista komennoista
Debian, Ubuntu ja johdannaiset
sudo apt-get install ruby-full
CentOS, Fedora ja RHEL
sudo yum install ruby
Gentoo
sudo emerge dev-lang/ruby
Arch Linux, Manjaro, Antergos ja johdannaiset
sudo pacman -S ruby
openSUSE
sudo zypper install ruby
Apt-get yum etc -komennot menevät jakelujen oletustietovarastoihin, jotka ovat yleensä vanhoja, eikä sinulla ole versiota 2.6, vaan toista vanhaa versiota.