Ang ikaanim na pag-update ng wika ng programa ng Ruby 2.6.0 ay narito

RubyLinux

Pagkatapos ng isang taon ng pag-unlad, ang Ruby 2.6.0 bitawan ay nai-publish, isang dinamikong object na nakatuon sa wika ng programa, na nailalarawan sa pamamagitan ng mataas na kahusayan sa pag-unlad ng software at pagsasama ng pinakamahusay na mga tampok ng Perl, Java, Python, Smalltalk, Eiffel, Ada at Lisp.

Ang code ng proyekto ay ipinamamahagi sa ilalim ng mga lisensya ng BSD ("2-sugnay na BSDL") at "Ruby", na tumutukoy sa pinakabagong lisensya ng GPL at ganap na sumusunod sa GPLv3.

Ang Ruby 2.6 ay ang pang-anim na pangunahing bersyon, inihanda bilang bahagi ng isang nakaplanong proseso ng pag-unlad, na nagsasangkot ng paglalaan ng isang taon upang maghanda ng mga pagpapahusay sa pagganap at lumikha ng mga bersyon ng pagwawasto tuwing 2-3 buwan.

Pangunahing mga bagong tampok sa Ruby 2.6.0

Sa bagong labas na ito ni Ruby nagdagdag ng isang pang-eksperimentong pagpapatupad ng JIT compiler, na nagbibigay-daan sa iyo upang makabuluhang mapabuti ang pagganap ng mga aplikasyon sa wikang Ruby.

Hindi tulad ng tradisyonal na JIT compiler, na bumubuo ng mga tagubilin sa makina nang mabilis, ang ipinanukalang JIT compiler sa Ruby ay unang nagsusulat ng C code sa disk, pagkatapos ay tinawag ang panlabas na C compiler upang makabuo ng mga tagubilin sa makina (suportado ng GCC, Clang at Microsoft VC ++).

Upang paganahin ang JIT, dapat mong tukuyin ang opsyong "–jit" kapag sinisimulan ang ruby ​​o itakda ang opsyong ito sa variable ng kapaligiran ng RUBYOPT.

Kung ikukumpara sa Ruby 2.5, ang pagsasama ng JIT ay nag-average ng 1.7 beses sa pagganap ng mga intensive application ng CPU.

Sa parehong oras, ang pag-unlad ay pang-eksperimento pa rin at hindi angkop para sa mga pag-load na nauugnay sa memorya ng masinsinang gawain.

Ang iba pang mga pagpapabuti na nakuha sa bersyon na ito ay ang RubyVM :: AbstractSyntaxTree pang-eksperimentong module, na nagbibigay ng isang paraan ng pag-parse na nagpoproseso ng naipasa na mga string bilang Ruby code at nagbabalik ng isang Abstract Syntax Tree (AST) para sa code na ito.

Ngayon ang alias na "#pagkatapos" ay maaaring magamit upang ma-access ang pamamaraang "Kernel # magbunga_ sa sarili". Para sa mga pamamaraan ng "Array # |" at "Array # -" nagmungkahi ng mas maraming nababasa na mga alias "Array # union" at "Array # Difference".

Ang mga patuloy na pangalan ay maaari nang magsimula sa malalaking titik maliban sa ASCII.

Ibinigay din ang suporta para sa Transient Heap, theap na inilaan para sa mga bagay na may isang maikling habang-buhay na gumagamit ng mga tukoy na klase (Array, Hash, Object, Struct).

ruby-on-rails

Halimbawa, salamat sa theap, ang paglikha ng maliit, panandaliang mayroon nang mga hash ay mas mabilis nang doble ngayon. Ipinakita ng pagsubok sa rdoc ang pagtaas ng ani na 6-7%.

Upang madagdagan ang pagganap ng mga switch ng konteksto, iminungkahi ang katutubong pagpapatupad ng mga coroutine para sa arm32, arm64, ppc64le, win32, win64, x86, at amd64 na arkitektura. Ang "Fiber.yield" at "Fiber # resume" sa mga 64-bit na system ng Linux ngayon ay tumatakbo nang halos 5 beses nang mas mabilis.

Sa pangkalahatan, ang mga masinsinang programa ay nagpapakita ng pagtaas ng pagganap ng 5%.

Pangunahing pagpapabuti sa Ruby 2.6.0

Natanggap ang isang na-update na bersyon ng RubyGems 3.0.1, kung saan hindi na ipinagpatuloy ang suporta para sa mga pagpipiliang "–ri" at "–rdoc", sa halip na dapat mong gamitin ang "–document" at "–no-document".

Ang Bundler ay naka-install na ngayon bilang default upang pamahalaan ang mga dependency ng gem.

Nagdagdag ng suporta para sa hindi natapos na mga saklaw, halimbawa, "ary [1 ..]" o "(1 ..). Ang bawat {…} ».

Sa iba pang mga pagpapabuti na maaaring ma-highlight, maaari mong makita ang:

  • Ang pagpipiliang pagbubukod ay naidagdag sa pamamaraan ng Kernel # system upang itaas ang isang pagbubukod sa error sa halip na bumalik ng hindi totoo.
  • Ang oneshot mode ay naging idinagdag sa module ng saklaw, na sinuri kung ang bawat hilera ay nagpapatupad ng hindi bababa sa isang beses.
  • Ang Enumerator :: Chain class at ang "Enumerable # chain" at "Enumerator # +" na mga pamamaraan na ipinatupad dito ay idinagdag upang lumikha ng mga tanikala ng mga binilang na halaga.
  • Ang suporta para sa mga operator «<<» at «>>» ay naidagdag sa mga module ng Proc at Paraan, halimbawa, ang konstruksyon «(f << g) .call (3)» ay magkapareho sa «f (g (3 )) ".

Paano i-install ang Ruby 2.6.0 sa Linux?

Upang makuha ang bagong bersyon ng Ruby, buksan lamang ang isang terminal sa iyong system at i-type ang isa sa mga sumusunod na utos

Debian, Ubuntu at mga derivatives

sudo apt-get install ruby-full

CentOS, Fedora, at RHEL

sudo yum install ruby

Gentoo

sudo emerge dev-lang/ruby

Arch Linux, Manjaro, Antergos at derivatives

sudo pacman -S ruby

openSUSE

sudo zypper install ruby

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Daniel dijo

    Ang apt-get yum atbp na mga utos ay pupunta sa mga default na repository ng mga pamamahagi, na sa pangkalahatan ay luma na at wala kang bersyon 2.6 ngunit isa pang lumang bersyon.