Dimittis de lingua programmandi Ruby 3.2

Ruby 3.2.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:

  • Addidit portum initialem interpretis CRuby, qui codicem intermedium in WebAssembly componit ad currendum in navigatro vel sub curriculis standi sicut wasmtime. Ad commercium directum cum systemate operante cum separatim currit, API WASI (WebAssembly Interface) adhibetur. Inter alia, fascia VFS super WASI provisa est, quae totam Ruby applicationem ad exhibendum in unius fasciculi formam involucrum permittit. Cursor in navigatro adhiberi potest ad formandas exercitationes et operas interretiales sicut TryRuby. In stadio evolutionis currenti, portus feliciter transit principales et bootstrap testium consentaneas, quae sequela API non utuntur. Portus etiam fibris exceptionibus vel collectionibus purgamentorum non alit.
  • YJIT in-processus JIT compilator, ab e tincidunt officinarum Shopify suggestuum e-commercerum creatum ut pars incepti ad augendum programmata Ruby perficienda, qui cancelli compage utuntur et multum modos appellant, stabilis et parata declarata est. confectio usus. 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. YJIT praesto est pro x86-64 et arm64/aarch64 architecturae in Linux, MacOS, BSD et aliis suggestis UNIX.

    Dissimile Ruby, codicem YJIT in lingua rubigine scribitur et a rustc 1.58.0+ compilator pro compilatione requirit, sic constructum YJIT defectu debilitatum et ad libitum est. Cum utendo YJIT, 41% augetur effectus in historia, cum yjit-scamnum test currit cum interpretatione utens comparatur.

    Dimittis de lingua programmandi Ruby 3.2

  • Addidit additam tutelam contra negationem servitii oppugnationum cum notitias externas in inhabilis et tempore consumptis expressionibus regularibus (ReDoS). Parens algorithmus, quo artificio memorabili utitur, insigniter melius est. Exempli gratia, tempus exsecutionis expressionis '/^a*b?a*$/ =~ "a" * 50000 + "x" redactum est ab 10 ad 0.003 secundis. Sumptus optimizationis augmentum est in memoria consumptionis, cuius consumptio circiter X temporibus altior est quam magnitudo input data. Secunda mensura securitatis est facultas definiendi tempus (exempli gratia "Regexp.timeout = 10") quo ordinaria expressio procedendum est.
  • Syntax_suggest modus comprehenditur, qui adiuvat egritudinem causas errorum cum locutione absentis vel extra clausulam adiunctam. Singularis est `finis', absentis keyword (`do', `def`, `if`, etc.) ? 1 genus Canis > 2 defbark > 3 end 4 end
  • Facultas notandi argumenta pro erroribus ad typos et argumentis relatis, errori loco proponere modum adiectum est, verbi causa: test.rb:2:in `+': nil cogi in Integer summam = ary [0] + ary [1] ^^^^^^
  • Novam syntaxin addidit ad redirectionem argumentorum ad alios modos: def foo(*) bar(*) finem def baz(**) quux(**) finem.
  • Proponitur Ruby_vm/mjit/ compilator - variantes veteris MJIT JIT compilator, in lingua Ruby rescripta. Curavit MJIT currere in processu separato loco currens in filo laborantis MJIT.
  • In Bundler 2.4, dependentia processus pubGrub versionis detectoris utitur, etiam in praeposito in sarcina publica pro lingua Dart. Antea Molinillo algorithmus usus in RubyGems pergit, sed etiam in futuro substituendus est.
  • Renovata sunt versiones constructa in gemma modulorum et ea quae in bibliotheca normaria continentur.

Source: opennet.ru