|
| 1 | +--- |
| 2 | +layout: news_post |
| 3 | +title: "Publicado Ruby 3.3.0-preview2" |
| 4 | +author: "naruse" |
| 5 | +translator: vtamara |
| 6 | +date: 2023-09-14 00:00:00 +0000 |
| 7 | +lang: es |
| 8 | +--- |
| 9 | + |
| 10 | +{% assign release = site.data.releases | where: "version", "3.3.0-preview2" | first %} |
| 11 | + |
| 12 | +Nos complace anunciar la publicación de Ruby {{ release.version }}. Ruby 3.3 |
| 13 | +añade un nuevo compilador JIT en puro Ruby llamado RJIT, usa Lrama |
| 14 | +como generador del analizador sintáctico así como muchas mejoras |
| 15 | +de desempeño especialmente de YJIT. |
| 16 | + |
| 17 | +## RJIT |
| 18 | + |
| 19 | +* Se introdujo RJIT un compilador JIT en puro Ruby que remplaza a MJIT. |
| 20 | + * RJIT soporta sólo la arquitectura x86\_64 en plataformas Unix. |
| 21 | + * A diferencia de MJIT, no require de un compilador C en tiempo de ejecución. |
| 22 | +* RJIT existe sólo con propósitos experimentales. |
| 23 | + * Debería seguir usando YJIT en producción. |
| 24 | +* Si le interesa desarrollar un compilador JIT para Ruby, por favor |
| 25 | + revise la [presentación de k0kubun en el día 3 de RubyKaigi](https://rubykaigi.org/2023/presentations/k0kubun.html#day3). |
| 26 | + |
| 27 | +## Usa Lrama en lugar de Bison |
| 28 | + |
| 29 | +* Remplaza Bison con [el generador de analizadores sintácticos LALR Lrama](https://github.com/yui-knk/lrama) [Característica #19637](https://bugs.ruby-lang.org/issues/19637) |
| 30 | + * Si tiene interés por favor vea [la visión futura de los analizadores sintácticos de Ruby](https://rubykaigi.org/2023/presentations/spikeolaf.html) |
| 31 | + |
| 32 | +## YJIT |
| 33 | + |
| 34 | +* Mejoras mayores en desempeño respecto a 3.2 |
| 35 | + * Mejorado el soporte para argumentos splat y para el resto de argumentos. |
| 36 | + * Los registros se localizan para operaciones en pila de la máquina virtual. |
| 37 | + * Se compilan más llamados con argumentos opcionales. |
| 38 | + * Los manejadores de excepciones también se compilan. |
| 39 | + * Las variables de instancia ya no salen al interprete con Formas de Objetos |
| 40 | + mega-mórficas. |
| 41 | + * Se optimizaron de manera especial `Integer#!=`, `String#!=`, |
| 42 | + `Kernel#block_given?`, `Kernel#is_a?`, `Kernel#instance_of?` y |
| 43 | + `Module#===`. |
| 44 | + * Ahora es 3 veces más rápido que el interprete normal con optcarrot! |
| 45 | +* Los metadatos para el código compilado usan mucha menos memoria. |
| 46 | +* Generación de código más compacto en ARM64 |
| 47 | +* Opción para iniciar YJIT en modo pausado para después habilitarlo |
| 48 | + manualmente |
| 49 | + * `--yjit-pause` y `RubyVM::YJIT.resume` |
| 50 | + * Esto puede usarse para habilitar YJIT sólo después de que su aplicación |
| 51 | + haya completado el arranque. |
| 52 | +* La estadística `ratio_in_yjit` producida por `--yjit-stats` ahora está |
| 53 | + disponible en compilaciones publicadas, ya no se requiere una |
| 54 | + estadística especial o una compilación de desarrollo. |
| 55 | +* La opción para salir del modo con trazas ahora soporta muestreo |
| 56 | + * `--trace-exits-sample-rate=N` |
| 57 | +* Pruebas más extensas y correcciones a múltiples fallas |
| 58 | + |
| 59 | + |
| 60 | + |
| 61 | +## Otros Características Nuevas Notables |
| 62 | + |
| 63 | +### Lenguaje |
| 64 | + |
| 65 | +## Mejoras en desempeño |
| 66 | + |
| 67 | +* `defined?(@ivar)` se optimiza con Formas de Objetos. |
| 68 | + |
| 69 | +## Otros cambios notables desde 3.2 |
| 70 | + |
| 71 | +### IRB |
| 72 | + |
| 73 | +IRB ha recibido diversas mejoras, incluyendo --no limitadas a estas: |
| 74 | + |
| 75 | +- Integración avanzada `irb:rdbg` que provee una experiencia |
| 76 | + de depuración equivalente a la de `pry-byebug` |
| 77 | + ([doc](https://github.com/ruby/irb#debugging-with-irb)). |
| 78 | +- Soporte de paginador en ordenes como `ls` y `show_cmds`. |
| 79 | +- Las ordenes `ls` y `show_cmds` dan información más precisa y útil. |
| 80 | + |
| 81 | +Además, IRB ha experimentado una re-factorización extensa y ha recibido |
| 82 | +docenas de correcciones a fallas que facilitan ampliaciones futuras. |
| 83 | + |
| 84 | + |
| 85 | +## Incidentes de compatibilidad |
| 86 | + |
| 87 | +Nota: Correciones a falla que excluía características. |
| 88 | + |
| 89 | +### Constantes elminadas |
| 90 | + |
| 91 | +Las siguientes constantes que eran despreciadas han sido eliminadas. |
| 92 | + |
| 93 | + |
| 94 | +### Métodos eliminados |
| 95 | + |
| 96 | +Los siguientes métodos que eran despreciados han sido eliminados. |
| 97 | + |
| 98 | + |
| 99 | +## Problemas de compatibilidad con Stdlib |
| 100 | + |
| 101 | +### Eliminación de `ext/readline` |
| 102 | + |
| 103 | +* Tenemos `reline` que es una implementación en Ruby puro compatible con |
| 104 | + el API de `ext/readline`. Dependeremos de `reline` a futuro. Si |
| 105 | + necesita usar `ext/readline`, puede instalar `ext/readline` vía rubygems.org |
| 106 | + con `gem install readline-ext`. |
| 107 | +* Ya no necesitamos instalar librerías como `libreadline` o `libedit`. |
| 108 | + |
| 109 | +## Actualizaciones al API en C |
| 110 | + |
| 111 | +### APIs en C actualizados |
| 112 | + |
| 113 | +Los siguientes APIs han sido actualizados. |
| 114 | + |
| 115 | + |
| 116 | + |
| 117 | +### APIs en C eliminados |
| 118 | + |
| 119 | +Los siguientes APIs despreciados han sido eliminados. |
| 120 | + |
| 121 | +## Actualizaciones a la librería estándar |
| 122 | + |
| 123 | +RubyGems y Bundler avisan cuando el usuario requiere gemas que están |
| 124 | +programadas para convertirse en gemas incluidas en versiones futuras |
| 125 | +de Ruby. |
| 126 | + |
| 127 | +Las siguientes gemas predeterminadas se han actualizado. |
| 128 | + |
| 129 | +* RubyGems 3.5.0.dev |
| 130 | +* bigdecimal 3.1.4 |
| 131 | +* bundler 2.5.0.dev |
| 132 | +* csv 3.2.8 |
| 133 | +* erb 4.0.3 |
| 134 | +* fiddle 1.1.2 |
| 135 | +* fileutils 1.7.1 |
| 136 | +* irb 1.7.4 |
| 137 | +* nkf 0.1.3 |
| 138 | +* optparse 0.4.0.pre.1 |
| 139 | +* psych 5.1.0 |
| 140 | +* reline 0.3.8 |
| 141 | +* stringio 3.0.9 |
| 142 | +* strscan 3.0.7 |
| 143 | +* syntax_suggest 1.1.0 |
| 144 | +* time 0.2.2 |
| 145 | +* timeout 0.4.0 |
| 146 | +* uri 0.12.2 |
| 147 | +* yarp 0.9.0 |
| 148 | + |
| 149 | +Las siguientes gemas incluidas han sido actualizadas. |
| 150 | + |
| 151 | +* minitest 5.19.0 |
| 152 | +* test-unit 3.6.1 |
| 153 | +* rexml 3.2.6 |
| 154 | +* rss 0.3.0 |
| 155 | +* net-imap 0.3.7 |
| 156 | +* rbs 3.2.1 |
| 157 | +* typeprof 0.21.8 |
| 158 | +* debug 1.8.0 |
| 159 | + |
| 160 | +La siguiente gema predeterminada pasa a ser gema incluida. |
| 161 | + |
| 162 | +* racc 1.7.1 |
| 163 | + |
| 164 | +Ver la publicación en GitHub como |
| 165 | +[Logger](https://github.com/ruby/logger/releases) o |
| 166 | +bien la bitácora de cambios con detalles de las gemas predeterminadas |
| 167 | +y las gemas incluidas. |
| 168 | + |
| 169 | +Ver más detalles en el archivo |
| 170 | +[NEWS](https://github.com/ruby/ruby/blob/{{ release.tag }}/NEWS.md) |
| 171 | +o en [la bitácora de cambios](https://github.com/ruby/ruby/compare/v3_2_0...{{ release.tag }}). |
| 172 | + |
| 173 | +¡Con estos cambios, [{{ release.stats.files_changed }} archivos cambiados, {{ release.stats.insertions }} inserciones(+), {{ release.stats.deletions }} eliminaciones(-)](https://github.com/ruby/ruby/compare/v3_2_0...{{ release.tag }}#file_bucket) |
| 174 | +desde Ruby 3.2.0! |
| 175 | + |
| 176 | +## Descargas |
| 177 | + |
| 178 | +* <{{ release.url.gz }}> |
| 179 | + |
| 180 | + SIZE: {{ release.size.gz }} |
| 181 | + SHA1: {{ release.sha1.gz }} |
| 182 | + SHA256: {{ release.sha256.gz }} |
| 183 | + SHA512: {{ release.sha512.gz }} |
| 184 | + |
| 185 | +* <{{ release.url.xz }}> |
| 186 | + |
| 187 | + SIZE: {{ release.size.xz }} |
| 188 | + SHA1: {{ release.sha1.xz }} |
| 189 | + SHA256: {{ release.sha256.xz }} |
| 190 | + SHA512: {{ release.sha512.xz }} |
| 191 | + |
| 192 | +* <{{ release.url.zip }}> |
| 193 | + |
| 194 | + SIZE: {{ release.size.zip }} |
| 195 | + SHA1: {{ release.sha1.zip }} |
| 196 | + SHA256: {{ release.sha256.zip }} |
| 197 | + SHA512: {{ release.sha512.zip }} |
| 198 | + |
| 199 | +## Qué es Ruby |
| 200 | + |
| 201 | +Ruby primero fue desarrollado por Matz (Yukihiro Matsumoto) en 1993, |
| 202 | +y ahora es desarrollado como Código Abieto. Corre en múltiples |
| 203 | +plataformas y es usado en todo el mundo especialmente para desarrollo web. |
0 commit comments