Derxistina zimanê bernamenûsê Ruby 3.1

Ruby 3.1.0 serbest hat berdan, zimanek bernamesaziyek dînamîkî ya ku di pêşkeftina bernameyê de pir bikêr e û taybetmendiyên çêtirîn ên Perl, Java, Python, Smalltalk, Eiffel, Ada û Lisp vedihewîne. Koda projeyê di bin lîsansa BSD ("2-bend BSDL") û "Ruby" de tê belav kirin, ku guhertoya herî dawî ya lîsansa GPL-ê vedibêje û bi GPLv3 re bi tevahî hevaheng e.

Pêşveçûnên sereke:

  • Berhevkarek nû ya ceribandinê ya JIT-ê, YJIT, hate zêdekirin, ku ji hêla pêşdebirên platforma e-bazirganiya Shopify ve hatî afirandin wekî beşek ji destpêşxeriyek ji bo baştirkirina performansa bernameyên Ruby yên ku çarçoveya Rails bikar tînin û gelek rêbazan dibêjin. Cûdahiya sereke ji berhevkarê MJIT JIT-a ku berê hatî bikar anîn, ku li ser bingeha pêvajoyên tevahî rêbazan e û berhevkarek derveyî bi zimanê C bikar tîne, ev e ku YJIT Guhertoya Block Basic Lazy (LBBV) bikar tîne û berhevkarek JIT-ê ya yekbûyî dihewîne. Bi LBBV re, JIT pêşî tenê destpêka rêbazê berhev dike, û yên mayî jî demek şûnda berhev dike, piştî ku cûreyên guhêrbar û argumanên têne bikar anîn di dema darvekirinê de têne destnîşankirin. Dema ku YJIT-ê bikar tîne, dema ku ceribandina railsbench-ê dimeşîne,% 22 zêdebûnek di performansê de hate tomar kirin, û di ceribandina şilav-dervekirinê de% 39 zêde bû. YJIT niha ji bo piştgirîkirina OS-yên mîna unix-ê yên li ser pergalên bi mîmariya x86-64 ve sînorkirî ye û ji hêla xwerû ve hatî asteng kirin (ji bo çalakkirin, di rêza fermanê de ala "--yjit" diyar bike).
  • Performansa çêtir a berhevkarê kevn MJIT JIT. Ji bo projeyên ku Rails bikar tînin, mezinahiya cache-ya herî zêde ya xwerû (--jit-max-cache) ji 100-ê heya 10000 rêwerzan zêde bûye. Ji bo rêbazên ku ji zêdetirî 1000 rêwerzan hene, karanîna JIT-ê rawestand. Ji bo piştgirîkirina Zeitwerk of Rails, dema ku TracePoint ji bo bûyerên polê were çalak kirin, koda JIT êdî nayê avêtin.
  • Ew debug.gem debuggerek bi tevahî ji nû ve hatî nivîsandin vedihewîne, ku piştgirî dide xeletkirina ji dûr ve, sepana debugkirî hêdî nake, entegrasyonê bi navbeynkarên debugkirinê yên pêşkeftî (VSCode û Chrome) re piştgirî dike, dikare ji bo debugkirina sepanên pir-têl û pir-pêvajoyê were bikar anîn, peyda dike. navgînek darvekirina kodê REPL, kapasîteyên şopandina pêşkeftî pêşkêşî dike, dikare perçeyên kodê tomar bike û dubare bike. Debugger lib/debug.rb ku berê hatibû pêşkêş kirin ji belavkirina bingehîn hate rakirin.
    Derxistina zimanê bernamenûsê Ruby 3.1
  • Di raporên şopandina vegerê de ronîkirina dîtbarî ya xeletiyan pêk aniye. Nîşankirina xeletiyê bi karanîna pakêta gem a çêkirî û xwerû-çalakkirî error_highlight tê peyda kirin. Ji bo neçalakkirina nîşankirina xeletiyê, hûn dikarin mîhenga "--disable-error_highlight" bikar bînin. $ ruby ​​test.rb test.rb:1:in " ": rêbaza nedîyar "dem" ji bo 1:Integer (NoMethodError) 1.time {} ^^^^^ Mebesta te? caran
  • Perçeya hesabên înteraktîf IRB (REPL, Read-Eval-Print-Loop) temamkirina otomatîkî ya koda têketinê pêk tîne (dema ku hûn dinivîsin, îşaretek bi vebijarkên ji bo domandina têketinê tê xuyang kirin, di navbera wan de hûn dikarin bi Tab an Shift+ bigerin. Bişkojka Tab). Piştî bijartina vebijarka berdewamkirinê, qutiyek diyalogê li nêzîkê tê xuyang kirin ku belgeyên ku bi tiştê hilbijartî ve girêdayî ye nîşan dide. Kurtebirra klavyeyê Alt+d dikare were bikar anîn da ku bigihîje tevahî belgeyan.
    Derxistina zimanê bernamenûsê Ruby 3.1
  • Hevoksaziya ziman naha dihêle ku dema gazîkirina fonksiyonan nirxên bi tîpên haş û argumanên peyva sereke werin avêtin. Mînakî, li şûna bêjeya "{x: x, y: y}" hûn niha dikarin "{x:, y:}" diyar bikin, û li şûna "foo(x: x, y: y)" - foo( x:, y:)".
  • Piştgiriya îstîqrarkirî ya ji bo hevberdanên nimûneyên yek-xêz (ary => [x, y, z]), ku êdî wekî ceribandinê nayên nîşan kirin.
  • Operatora "^" ya di hevokên şablonê de niha dikare bêjeyên keyfî hebin, mînak: Prime.each_cons(2).lazy.find_all{_1 di [n, ^(n + 2)]}.take(3).to_a #= > ? [[3, 5], [5, 7], [11, 13]]
  • Di maçên qalibên yek-xêz de, hûn dikarin parantezê derxin: [0, 1] => _, x {y: 2} => y: x #=> 1 y #=> 2
  • Zimanê şîrovekirina tîpa RBS, ku destûrê dide te ku hûn strukturên bernameyê û celebên bikar anîne diyar bikin, ji bo destnîşankirina sînorê jorîn a parametreyên tîpê bi karanîna sembola "<"-ê, piştgirî zêde kiriye ji bo navên cûreyên gelemperî, piştgirî zêde kiriye. berhevokên ji bo birêvebirina gemaran, performansa çêtir kirin û ji bo pirtûkxaneyên çêkirî û standard gelek îmzeyên nû bicîh kirin.
  • Piştgiriya ceribandinê ya ji bo hawîrdorên pêşkeftina yekbûyî li analyzera celebê statîk TypePro hate zêdekirin, ku li ser bingeha analîza kodê bêyî agahdariya celebê eşkere şîroveyên RBS-ê diafirîne (mînak, pêvekek ji bo yekkirina TypePro bi edîtorê VSCode re hatî amadekirin).
  • Rêzkirina pêkanîna gelek peywiran hate guheztin. Bo nimûne, berê pêkhateyên bêjeya “foo[0], bar[0] = baz, qux” bi rêza baz, qux, foo, bar dihatin kirin, lê niha foo, bar, baz, qux.
  • Piştgiriya ceribandinê ya ji bo veqetandina bîra ji bo rêzan bi karanîna mekanîzmaya VWA (Veqetandina Firehiya Guherbar) zêde kir.
  • Guhertoyên nûvekirî yên modulên gem ên çêkirî û yên ku di pirtûkxaneya standard de hene. Pakêtên net-ftp, net-imap, net-pop, net-smtp, matrix, prime û debug têne çêkirin.

Source: opennet.ru

Add a comment