Sakin yaren shirye-shiryen Ruby 3.1

Ruby 3.1.0 an fito da shi, yaren shirye-shirye ne mai ƙarfi wanda ke da inganci sosai wajen haɓaka shirye-shirye kuma ya ƙunshi mafi kyawun fasali na Perl, Java, Python, Smalltalk, Eiffel, Ada da Lisp. An rarraba lambar aikin a ƙarƙashin lasisin BSD ("2-clause BSDL") da "Ruby", wanda ke nufin sabon sigar lasisin GPL kuma ya dace da GPLv3.

Babban haɓakawa:

  • An ƙara sabon gwajin gwaji a cikin tsarin JIT mai tarawa, YJIT, wanda masu haɓaka dandamali na e-commerce na Shopify suka kirkira a matsayin wani ɓangare na yunƙurin inganta ayyukan shirye-shiryen Ruby waɗanda ke amfani da tsarin Rails kuma suna kiran hanyoyin da yawa. Babban bambanci daga mai tarawa na MJIT JIT da aka yi amfani da shi a baya, wanda ya dogara ne akan sarrafa dukkan hanyoyin kuma yana amfani da na'ura mai tarawa na waje a cikin harshen C, shine YJIT yana amfani da Lazy Basic Block Versioning (LBBV) kuma ya ƙunshi haɗaɗɗen JIT mai haɗawa. Tare da LBBV, JIT ta fara tattara farkon hanyar kawai, kuma ta tattara sauran ɗan lokaci kaɗan, bayan an ƙayyade nau'ikan masu canji da muhawarar da aka yi amfani da su yayin aiwatarwa. Lokacin amfani da YJIT, an yi rikodin haɓaka 22% a cikin aiki yayin gudanar da gwajin railsbench, da haɓaka 39% a cikin gwajin samar da ruwa. YJIT a halin yanzu yana iyakance ga goyan baya ga OSes-kamar unix akan tsarin tare da gine-ginen x86-64 kuma an kashe shi ta tsohuwa (don kunna, saka alamar “--yjit” a cikin layin umarni).
  • Ingantacciyar aikin tsohuwar MJIT JIT mai tarawa. Don ayyukan ta amfani da Rails, matsakaicin matsakaicin matsakaicin ma'ajin (-jit-max-cache) an ƙara shi daga umarni 100 zuwa 10000. An dakatar da amfani da JIT don hanyoyin tare da umarni sama da 1000. Don tallafawa Zeitwerk na Rails, ba a daina zubar da lambar JIT lokacin da aka kunna TracePoint don abubuwan aji.
  • Ya haɗa da debug.gem debugger da aka sake rubutawa gaba ɗaya, wanda ke goyan bayan ɓarna mai nisa, baya jinkirin aikace-aikacen da aka gyara, yana goyan bayan haɗin kai tare da musaya na haɓakawa (VSCode da Chrome), ana iya amfani da su don lalata abubuwa da yawa da aikace-aikacen tsari da yawa, yana bayar da Ƙididdigar aiwatar da lambar REPL, tana ba da damar gano ci gaba, na iya yin rikodin da sake kunna snippets code. An cire lib/debug.rb wanda aka bayar a baya daga tushen rarraba.
    Sakin yaren shirye-shiryen Ruby 3.1
  • Aiwatar da nunin gani na kurakurai a cikin rahotannin gano kira. An bayar da tuta na kuskure ta amfani da ginanniyar ginannen ciki da tsohowar fakitin gem error_highlight. Don kashe alamar kuskure, zaku iya amfani da saitin "--disable-error_highlight". $ ruby ​​​​test.rb gwajin.rb:1:in" ": undefined method"time" for 1:Integer (NoMethodError) 1.time {} ^^^^^ Kina nufin? sau
  • Harsashi na lissafin ma'amala IRB (REPL, Read-Eval-Print-Madauki) yana aiwatar da kammalawa ta atomatik na lambar da aka shigar (kamar yadda kuke bugawa, ana nuna alamar tare da zaɓuɓɓuka don ci gaba da shigarwa, tsakanin waɗanda zaku iya motsawa tare da Tab ko Shift + Tab key). Bayan zaɓar zaɓin ci gaba, ana nuna akwatin maganganu kusa da ke nuna takaddun da ke da alaƙa da abin da aka zaɓa. Ana iya amfani da gajeriyar hanyar keyboard Alt+d don samun damar cikakkun takaddun bayanai.
    Sakin yaren shirye-shiryen Ruby 3.1
  • Rubutun harshe yanzu yana ba da damar ƙima a cikin ainihin hash da muhawarar kalmomi don tsallakewa yayin kiran ayyuka. Misali, maimakon kalmar “{x: x, y: y}” yanzu zaku iya tantance “{x:, y:}”, kuma maimakon “foo(x: x, y: y)” - foo( x:, yi:)".
  • Tsayayyen goyan baya don matches mai layi ɗaya (ary => [x, y, z]), waɗanda ba'a ƙara musu alama azaman gwaji ba.
  • Mai aiki da "^" a cikin matches na tsari yanzu zai iya ƙunsar maganganun sabani, misali: Prime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.take(3).zuwa_a #= > ? [3, 5], [5, 7], [11, 13]
  • A cikin matches na layi ɗaya, zaku iya barin bakan gizo: [0, 1] => _, x {y: 2} => y: x #=> 1 y #=> 2
  • Harshen annotation na nau'in RBS, wanda ke ba ku damar ƙayyade tsarin shirin da nau'ikan da aka yi amfani da su, ya ƙara tallafi don ƙayyadaddun ƙayyadaddun ƙayyadaddun nau'ikan nau'ikan nau'ikan ta amfani da alamar “<”, ƙarin tallafi don laƙabi na nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan laƙabi, aiwatar da tallafi don tarin don sarrafa duwatsu masu daraja, ingantattun ayyuka da aiwatar da sabbin sa hannun da yawa don ginanniyar dakunan karatu.
  • Tallafin gwaji don hadar da ci gaba da aka haɗa da nazarin nau'in tsararru na zamani, wanda ke haifar da bayanan nau'in rubutun da aka bayyana don haɗe nau'in nau'in lambar tare da Editan Verbrode).
  • An canza tsarin sarrafa ayyuka da yawa. Misali, a baya an sarrafa abubuwan da ke cikin kalmar “foo[0], bar[0] = baz, qux” a cikin tsari baz, qux, foo, bar, amma yanzu foo, bar, baz, qux.
  • Ƙara goyan bayan gwaji don rarraba ƙwaƙwalwar ajiya don kirtani ta amfani da tsarin VWA (Variable Width Allocation).
  • Sabbin nau'ikan kayan gini na gem da aka haɗa da waɗanda aka haɗa a daidaitaccen ɗakin karatu. An gina net-ftp, net-map, net-pop, net-smtp, matrix, firamare da fakitin gyarawa.

source: budenet.ru

Add a comment