Famoahana ny fiteny fandaharana Ruby 3.1

Navoaka ny Ruby 3.1.0, fiteny fandaharana miompana amin'ny zavatra mavitrika izay tena mahomby amin'ny fampivoarana fandaharana ary mampiditra ny endri-javatra tsara indrindra amin'ny Perl, Java, Python, Smalltalk, Eiffel, Ada ary Lisp. Ny fehezan-dalΓ na momba ny tetikasa dia zaraina eo ambanin'ny fahazoan-dΓ lana BSD (β€œ2-clause BSDL”) sy β€œRuby”, izay manondro ny dikan-teny farany amin'ny fahazoan-dΓ lana GPL ary mifanaraka tanteraka amin'ny GPLv3.

Fanatsarana lehibe:

  • Nampiana ny mpanangom-bokatra JIT an-dalam-panandramana vaovao, YJIT, noforonin'ireo mpamorona ny sehatra e-varotra Shopify ho ampahany amin'ny hetsika hanatsarana ny fahombiazan'ny programa Ruby izay mampiasa ny rafitra Rails ary miantso fomba maro. Ny fahasamihafana lehibe amin'ny compiler MJIT JIT teo aloha, izay mifototra amin'ny fanodinana fomba rehetra ary mampiasa compiler ivelany amin'ny fiteny C, dia ny YJIT dia mampiasa Lazy Basic Block Versioning (LBBV) ary misy compiler JIT mitambatra. Miaraka amin'ny LBBV, ny JIT dia tsy manangona afa-tsy ny fiandohan'ny fomba, ary manangona ny ambiny fotoana fohy aorian'ny famaritana ireo karazana varimbazaha sy hevitra ampiasaina mandritra ny famonoana. Rehefa mampiasa YJIT, dia nisy fitomboana 22% tamin'ny zava-bita rehefa nihazakazaka ny fitsapana railsbench, ary nitombo 39% tamin'ny fitsapana ranon-javatra. YJIT dia voafetra amin'izao fotoana izao amin'ny fanohanana ireo OSes mitovy amin'ny unix amin'ny rafitra misy maritrano x86-64 ary kilemaina amin'ny alΓ lan'ny default (mba hampavitrika, mariho ny saina "--yjit" ao amin'ny tsipika baiko).
  • Fanatsarana ny fampiratiana MJIT JIT taloha. Ho an'ny tetikasa mampiasa Rails, ny haben'ny cache farany indrindra (--jit-max-cache) dia nitombo avy amin'ny 100 ka hatramin'ny 10000 toromarika. Nitsahatra ny fampiasana JIT ho an'ny fomba misy torolΓ lana mihoatra ny 1000. Mba hanohanana ny Zeitwerk of Rails, dia tsy ariana intsony ny kaody JIT rehefa alefa ny TracePoint ho an'ny hetsika an-dakilasy.
  • Tafiditra ao anatin'izany ny debugger debug.gem naverina nosoratana tanteraka, izay manohana ny debugging lavitra, tsy mampiadana ny fampiharana debugged, manohana ny fampidirana miaraka amin'ny interface debug (VSCode sy Chrome), azo ampiasaina amin'ny debugging multi-threaded sy multi-process fampiharana, manome interface famonoana kaody REPL, manome fahaiza-manao trace mandroso, afaka mirakitra sy mamerina ny sombin-kaody. Ny debugger lib/debug.rb natolotra teo aloha dia nesorina tamin'ny fizarana fototra.
    Famoahana ny fiteny fandaharana Ruby 3.1
  • Nampiharina ny fanasongadinana an-tsary ny lesoka amin'ny tatitry ny trace miverina. Ny fanevan'ny hadisoana dia omena amin'ny alΓ lan'ny fonosana vita amin'ny vatosoa error_highlight. Mba hanesorana ny fanevan'ny fahadisoana dia azonao atao ny mampiasa ny "--disable-error_highlight". $ ruby ​​​​test.rb test.rb:1:in" ": fomba tsy voafaritra "fotoana" ho an'ny 1:Integer (NoMethodError) 1.time {} ^^^^^ Ny tianao holazaina ve? fotoana
  • Ny akoran'ny kajy ifanakalozan-kevitra IRB (REPL, Read-Eval-Print-Loop) dia mametraka ny famitana mandeha ho azy ny kaody nampidirina (rehefa manoratra ianao dia misy soso-kevitra aseho miaraka amin'ny safidy hanohizana ny fampidirana, izay ahafahanao mihetsika miaraka amin'ny Tab na Shift + Fanalahidin'ny tabilao). Rehefa avy nisafidy ny safidy fanohizana, dia misy boaty fifampiresahana eo akaikiny izay mampiseho ny antontan-taratasy mifandraika amin'ilay singa voafantina. Azo ampiasaina hidirana amin'ny antontan-taratasy feno ny hitsin-dΓ lana fitendry Alt+d.
    Famoahana ny fiteny fandaharana Ruby 3.1
  • Ny syntax amin'ny fiteny izao dia mamela ny soatoavina amin'ny litera tenifototra sy ny tohan-kevitry ny teny fanalahidy hotsidihana rehefa miantso asa. Ohatra, raha tokony ho ny teny hoe "{x: x, y: y}" dia azonao atao ny mamaritra ny "{x:, y:}", ary raha tokony ho "foo(x: x, y: y)" - foo( x:, sy:)".
  • Fanohanana marim-pototra ho an'ny lalao mifanentana amin'ny tsipika tokana (ary => [x, y, z]), izay tsy voasokajy ho andrana intsony.
  • Ny opΓ©rateur "^" amin'ny lamina mifanandrify amin'izao fotoana izao dia mety ahitana fomba fiteny tsy misy dikany, ohatra: Prime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.take(3).to_a #= > ? [[3, 5], [5, 7], [11, 13]]
  • Amin'ny lalao mifanandrify amin'ny tsipika tokana, azonao atao ny manala fononteny: [0, 1] => _, x {y: 2} => y: x #=> 1 y #=> 2
  • Ny fiteny fanamafisam-peo karazana RBS, izay ahafahanao mamaritra ny firafitry ny programa sy ny karazana ampiasaina, dia nanampy fanohanana amin'ny famaritana ny fetra ambony amin'ny masontsivana karazana amin'ny fampiasana ny marika "<", fanampiana fanampiny ho an'ny solon'anarana amin'ny karazana generic, nampihatra fanohanana ho an'ny fanangonana ho an'ny fitantanana vatosoa, fanatsarana fampisehoana ary fametrahana sonia vaovao maro ho an'ny tranomboky anatiny sy mahazatra.
  • Ny fanohanana ara-panandramana ho an'ny tontolo fampandrosoana mitambatra dia nampiana tao amin'ny TypePro static type analyzer, izay miteraka RBS annotation mifototra amin'ny famakafakana kaody tsy misy fampahalalana karazana mazava (ohatra, misy add-on efa nomanina mba hampidirana ny TypePro amin'ny VSCode editor).
  • Niova ny filaharan'ny fikarakarana andraikitra maro. Ohatra, teo aloha ny singa amin'ny teny hoe "foo[0], bar[0] = baz, qux" dia nokarakaraina tamin'ny lamina baz, qux, foo, bar, fa ankehitriny foo, bar, baz, qux.
  • Fanampiana andrana natao ho an'ny fizarana fahatsiarovana ho an'ny tady mampiasa ny mekanika VWA (Variable Width Allocation).
  • Ny dikan-teny nohavaozina amin'ny maody vita amin'ny vatosoa sy ireo tafiditra ao amin'ny tranomboky mahazatra. Ny fonosana net-ftp, net-imap, net-pop, net-smtp, matrix, prime ary debug dia napetraka ao anatiny.

Source: opennet.ru

Add a comment