Útgáfa af Ruby forritunarmálinu 3.1

Ruby 3.1.0 kom út, kraftmikið hlutbundið forritunarmál sem er mjög skilvirkt í þróun forrita og inniheldur bestu eiginleika Perl, Java, Python, Smalltalk, Eiffel, Ada og Lisp. Verkefniskóðanum er dreift undir BSD ("2-lið BSDL") og "Ruby" leyfi, sem vísar til nýjustu útgáfu GPL leyfisins og er fullkomlega samhæft við GPLv3.

Helstu endurbætur:

  • Nýr tilraunabundinn JIT þýðanda, YJIT, hefur verið bætt við, búinn til af hönnuðum Shopify netverslunarvettvangsins sem hluti af átaki til að bæta árangur Ruby forrita sem nota Rails rammann og kalla margar aðferðir. Lykilmunurinn frá áður notaða MJIT JIT þýðandanum, sem byggir á því að vinna heilar aðferðir og notar ytri þýðanda á C tungumálinu, er að YJIT notar Lazy Basic Block Versioning (LBBV) og inniheldur samþættan JIT þýðanda. Með LBBV safnar JIT aðeins saman byrjun aðferðarinnar og setur restina saman nokkru síðar, eftir að tegundir breyta og rökum sem notaðar eru eru ákvarðaðar við framkvæmd. Þegar YJIT var notað, mældist 22% aukning á frammistöðu þegar railsbench prófið var keyrt og 39% aukning á vökvagjafaprófinu. YJIT er eins og er takmarkað við stuðning fyrir unix-lík stýrikerfi á kerfum með x86-64 arkitektúr og er sjálfgefið óvirkt (til að virkja, tilgreindu „--yjit“ fánann í skipanalínunni).
  • Bætt afköst gamla MJIT JIT þýðandans. Fyrir verkefni sem nota Rails hefur sjálfgefin hámarks skyndiminni (--jit-max-cache) verið aukin úr 100 í 10000 leiðbeiningar. Hætti að nota JIT fyrir aðferðir með meira en 1000 leiðbeiningum. Til að styðja Zeitwerk of Rails er JIT kóða ekki lengur hent þegar TracePoint er virkt fyrir bekkjarviðburði.
  • Það inniheldur algjörlega endurskrifað debug.gem kembiforrit, sem styður fjarkembiforrit, hægir ekki á kembiforritinu, styður samþættingu við háþróað kembiforritsviðmót (VSCode og Chrome), er hægt að nota til að kemba fjölþráða og fjölvinnsluforrit, veitir REPL kóða keyrsluviðmót, býður upp á háþróaða rakningargetu, getur tekið upp og endurspilað kóðabrot. Kembiforritið lib/debug.rb sem áður var boðið upp á hefur verið fjarlægt úr grunndreifingunni.
    Útgáfa af Ruby forritunarmálinu 3.1
  • Útfærði sjónræna auðkenningu á villum í endurkallaskýrslum. Villuflöggun er veitt með því að nota innbyggða og sjálfgefna gimsteinapakkann error_highlight. Til að slökkva á villuflöggun geturðu notað „--disable-error_highlight“ stillinguna. $ ruby ​​​​test.rb test.rb:1:in "": óskilgreind aðferð "tími" fyrir 1:Integer (NoMethodError) 1.time {} ^^^^^ Áttirðu við? sinnum
  • Skel gagnvirkra útreikninga IRB (REPL, Read-Eval-Print-Loop) útfærir sjálfvirka útfyllingu kóðans sem þú slærð inn (þegar þú slærð inn birtist vísbending með valkostum fyrir áframhaldandi innslátt, á milli sem þú getur fært með Tab eða Shift+ Tab takki). Eftir að framhaldsvalkosturinn hefur verið valinn birtist gluggi í nágrenninu sem sýnir skjölin sem tengjast völdum hlut. Hægt er að nota flýtilykla Alt+d til að fá aðgang að öllum skjölunum.
    Útgáfa af Ruby forritunarmálinu 3.1
  • Tungumálssetningafræðin gerir nú kleift að sleppa gildum í kjötkássabókstafum og lykilorðagreinum þegar hringt er í aðgerðir. Til dæmis, í stað orðtaksins "{x: x, y: y}" geturðu nú tilgreint "{x:, y:}", og í staðinn fyrir "foo(x: x, y: y)" - foo( x:, y: )".
  • Stöðugur stuðningur við einlínu mynstursamsvörun (ary => [x, y, z]), sem eru ekki lengur merkt sem tilraunastarfsemi.
  • "^" rekstraraðilinn í mynstursamsvörun getur nú innihaldið handahófskenndar tjáningar, til dæmis: Prime.each_cons(2).lazy.find_all{_1 í [n, ^(n + 2)]}.take(3).to_a #= > ? [[3, 5], [5, 7], [11, 13]]
  • Í einlínu mynstursamsvörun er hægt að sleppa sviga: [0, 1] => _, x {y: 2} => y: x #=> 1 y #=> 2
  • Skýringartungumál RBS tegundar, sem gerir þér kleift að ákvarða uppbyggingu forritsins og gerðir sem notaðar eru, hefur bætt við stuðningi við að tilgreina efri mörk tegundarbreyta með því að nota „<“ táknið, bætt við stuðningi við samheiti almennra tegunda, innleitt stuðning fyrir söfn til að stjórna gimsteinum, bætt afköst og innleitt margar nýjar undirskriftir fyrir innbyggð og stöðluð bókasöfn.
  • Tilraunastuðningur fyrir samþætt þróunarumhverfi hefur verið bætt við TypePro kyrrstöðutegundagreiningartækið, sem býr til RBS athugasemdir byggðar á kóðagreiningu án skýrra tegundaupplýsinga (til dæmis hefur verið útbúin viðbót til að samþætta TypePro við VSCode ritlinum).
  • Röð afgreiðslu margra verkefna hefur verið breytt. Til dæmis voru áður þættir orðtaksins „foo[0], bar[0] = baz, qux“ unnar í röðinni baz, qux, foo, bar, en nú foo, bar, baz, qux.
  • Bætti við tilraunastuðningi við minnisúthlutun fyrir strengi með því að nota VWA (Variable Width Allocation) vélbúnaðinn.
  • Uppfærðar útgáfur af innbyggðum gimsteinseiningum og þeim sem eru í venjulegu bókasafni. Net-ftp, net-imap, net-pop, net-smtp, matrix, prime og villuleitarpakkarnir eru innbyggðir.

Heimild: opennet.ru

Bæta við athugasemd