Dimittis de lingua programmandi Ruby 3.1

Ruby 3.1.0 dimissum est, linguam programmandi dynamicam objecti-orientati quae in progressione progressione valde efficax est et incorporavit optimas lineas Perl, Java, Python, Smalltalk, Eiffel, Adae et Lisp. Codex exertus sub BSD ("2-clause BSDL") ac licentias "Ruby" distributus est, quod spectat ad postremam versionem licentiae GPL ac plene cum GPLv3 compatitur.

Praecipua meliora:

  • Novum experimentum in-processus JIT compilator, YJIT, adiectum est, creatum ab cyclis de Shopify suggestuum e-commercii partem incepti ad operandum programmata Ruby quae in cancellis compage utuntur et multum modos appellant. Clavis differentia a compilator MJIT JIT antea adhibita, quae in tota methodis expediendis nititur et compilator externo in lingua C utitur, est YJIT utatur iners Basic Clausus Versionis (LBBV) et compilator JIT integram continet. Cum LBBV, JIT primum solum methodi initium conficit, reliquas aliquanto post conficit, post variabilium et argumentorum genera in executione determinatas. Cum utendo YJIT, 22% incrementa in effectu scripta sunt cum test ferriviaria currit, et 39% augmentum in liquido reddunt experimentum. YJIT nunc limitatur ad systema unix-similis OSes in architectura x86-64 et per defaltam debilitatum (movere, denotare "--yjit" vexillum in linea praecepti).
  • MJIT JIT COMPILATOR VETERIS MELI- fectio. Pro inceptis utens Rails, defectus amplitudinis cache maximae (--jit-max-cache) ab 100 ad 10000 instructiones aucta est. Substitit usura JIT pro modis plusquam 1000 instructiones. Ad Zeitwerk Rails, JIT signum iam non abicitur, cum TracePoint potest pro eventibus classium.
  • Rescripta debug.gem debugger omnino includit, quae debugging remotam sustinet, applicationem debugged non retardat, subsidia integrationem cum progressu debugging interfaces (VSCode et Chrome), adhiberi potest ad debugging multi-linea et multi-linea applicationes, praebet. a REPL signum exsecutionis interfaciei offert antecedens facultates repetens, notare potest et codicem excerpta remonstrare. Lib/debug.rb antea oblatum debugger a basi distributione remotum est.
    Dimittis de lingua programmandi Ruby 3.1
  • Effectum visivae errorum in lucem reducendi vestigium relationum. Error languens praebetur utendo constructo-in et defaltam-enabledo sarcina gemmarum error_highlight. Ut inactivum erroris languescentem, "-disable-error_highlight" uti potes. $ test.rb test.rb:1: in " ": Modus indefinitus "tempus" pro 1: Integrum (NoMethodError) 1.time {} ^^^^^ Visne? temporibus
  • Testa calculorum interactivorum IRB (REPL, Read-Eval-Print-Loop) instrumentorum automaticorum complementum codicis initi (ut tu typus, admonitus exhibetur cum optionibus ad initus permanentem, inter quas cum Tab vel Shift+ movere potes. Clavis Tab). Post optionem continuam deligendo, arca dialogus prope monstratur quae documenta cum item selectis adiuncta exhibet. keyboard brevis Alt+d adhiberi potest ad plenam documentorum accessionem.
    Dimittis de lingua programmandi Ruby 3.1
  • Lingua syntaxin nunc permittit valores in litteris et keywords argumentis omittendi cum functiones vocant. Exempli gratia, loco vocis "{x: x, y: y}" nunc denotare potes "{x:, y:}", et loco "foo(x: x, y: y)" - foo( x:, y: )".
  • Firmamentum est firmamentum unius-lineae par (ary => [x, y, z]), quae experimentalem amplius languescere non possunt.
  • "^" operator in forma compositus nunc continere potest voces arbitrarias, exempli gratia: Prime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.accipe(3).to_a #= > ? [[3, 5], [5, 7].
  • In una linea exemplaris par, parenthesi omittere potes: [0, 1] => _, x {y: 2} => y: x #=> 1 y #=> 2
  • RBS typus linguae annotationis, quae structuram programmatis et generum usus determinare sinit, subsidium adiecit ad modum superiorem moduli generis parametri utens "<" symbolum, additamentum subsidii ad aliases generum generum, subsidia ad effectum deducenda. collectiones ad gemmas administrandas, meliores effectus et multas novas subscriptiones ad fabricandas in bibliothecas normas aedificandas et ad effectum deductas.
  • Probatio experimentalis ad ambitus evolutionis integras analysris TypePro static adiectum est, quod RBS annotationes in codice analysi substructas sine specie informationis expressa generat (exempli gratia, additamentum ad integrationem TypePro cum VSCode editore paratum est).
  • Ordo dispensandi plures provincias mutatus est. Exempli gratia, antea composita vocum "foo[0], bar[0] = baz, qux" in ordine discurrebant baz, qux, foo, bar, nunc foo, bar, baz, qux.
  • Instrumentum experimentum addidit ad destinationem memoriae pro chordis adhibitis mechanismum VWA (variabilis Latitudo) mechanismum.
  • Renovata sunt versiones constructa in gemma modulorum et ea quae in bibliotheca normaria continentur. Reti ftp, net-imap, rete-pop, net-smtp, matrix, fasciculi primi et debug aedificati sunt in.

Source: opennet.ru