|
| 1 | +--- |
| 2 | +layout: news_post |
| 3 | +title: "Publicación de Ruby 4.0.0 preview2" |
| 4 | +author: "naruse" |
| 5 | +translator: vtamara |
| 6 | +date: 2025-11-17 00:00:00 +0000 |
| 7 | +lang: es |
| 8 | +--- |
| 9 | + |
| 10 | +{% assign release = site.data.releases | where: "version", "4.0.0-preview2" | first %} |
| 11 | +Nos complace anunciar el lanzamiento de Ruby {{ release.version }}. |
| 12 | +Ruby 4.0 actualiza su versión de Unicode a 17.0.0, entre otras novedades. |
| 13 | + |
| 14 | +## Cambios en el lenguaje |
| 15 | + |
| 16 | +* `*nil` ya no llama a `nil.to_a`, de forma similar a como `**nil` |
| 17 | + no llama a `nil.to_hash`. [[Característica #21047]] |
| 18 | + |
| 19 | +## Actualizaciones de clases principales |
| 20 | + |
| 21 | +Nota: Solo se enumeran las actualizaciones más importantes de las clases |
| 22 | +principales. |
| 23 | + |
| 24 | +* Binding |
| 25 | + |
| 26 | +* `Binding#local_variables` ya no incluye parámetros numerados. |
| 27 | + Además, `Binding#local_variable_get` y `Binding#local_variable_set` |
| 28 | + rechazan el manejo de parámetros numerados. |
| 29 | + [[Falla #21049]] |
| 30 | + |
| 31 | +* IO |
| 32 | + |
| 33 | +* `IO.select` acepta +Float::INFINITY+ como argumento de tiempo de espera. |
| 34 | + [[Característica #20610]] |
| 35 | + |
| 36 | +* String |
| 37 | + |
| 38 | +* Actualización a Unicode versión 17.0.0 y Emoji versión 17.0. |
| 39 | + [[Característica #19908]][[Característica #20724]][[Característica #21275]] |
| 40 | + (también aplica a Regexp) |
| 41 | + |
| 42 | + |
| 43 | +## Actualizaciones de la biblioteca estándar |
| 44 | + |
| 45 | +Nota: Solo se enumeran las actualizaciones más importantes de las bibliotecas |
| 46 | +estándar. |
| 47 | + |
| 48 | +* ostruct 0.6.1 |
| 49 | +* pstore 0.2.0 |
| 50 | +* benchmark 0.4.0 |
| 51 | +* logger 1.7.0 |
| 52 | +* rdoc 6.13.1 |
| 53 | +* win32ole 1.9.2 |
| 54 | +* irb 1.15.2 |
| 55 | +* reline 0.6.1 |
| 56 | +* readline 0.0.4 |
| 57 | +* fiddle 1.1.6 |
| 58 | + |
| 59 | +## Problemas de compatibilidad |
| 60 | + |
| 61 | +Nota: Se excluyen las correcciones de errores de características. |
| 62 | + |
| 63 | +## Problemas de compatibilidad con la biblioteca estándar |
| 64 | + |
| 65 | +## Actualizaciones de la API de C |
| 66 | + |
| 67 | + |
| 68 | +## JIT |
| 69 | + |
| 70 | +* YJIT |
| 71 | + * Estadísticas de YJIT |
| 72 | + * `ratio_in_yjit` ya no funciona en la compilación predeterminada. |
| 73 | + Use `--enable-yjit=stats` en `configure` para habilitarlo |
| 74 | + con `--yjit-stats`. |
| 75 | + * Se agregó `invalidate_everything` a las estadísticas |
| 76 | + predeterminadas, que se incrementa cuando TracePoint invalida |
| 77 | + todo el código. |
| 78 | + * Se agregaron las opciones `mem_size:` y `call_threshold:` a |
| 79 | + `RubyVM::YJIT.enable`. |
| 80 | +* ZJIT |
| 81 | + * Se agregó un compilador JIT experimental basado en métodos. |
| 82 | + Use `--enable-zjit` en `configure` para habilitar el soporte `--zjit`. |
| 83 | + * A partir de Ruby 4.0.0-preview2, ZJIT aún no está listo para acelerar |
| 84 | + la mayoría de los benchmarks. |
| 85 | + Por favor, absténgase de evaluar ZJIT por el momento. Manténgase |
| 86 | + atento al lanzamiento de Ruby 4.0. |
| 87 | +* RJIT |
| 88 | + * Se eliminó `--rjit`. Trasladaremos la implementación de la API JIT de |
| 89 | + terceros al repositorio [ruby/rjit](https://github.com/ruby/rjit). |
| 90 | + |
| 91 | +## Cambios varios |
| 92 | + |
| 93 | +Consulte [NEWS](https://github.com/ruby/ruby/blob/{{ release.tag }}/NEWS.md) |
| 94 | +o los [registros de commits](https://github.com/ruby/ruby/compare/v3_4_0...{{ release.tag }}) |
| 95 | +para obtener más detalles. |
| 96 | + |
| 97 | +Con estos cambios, ¡[{{ release.stats.files_changed }} archivos modificados, {{ release.stats.insertions }} inserciones (+), {{ release.stats.deletions }} eliminaciones (-)](https://github.com/ruby/ruby/compare/v3_4_0...{{ release.tag }}#file_bucket) |
| 98 | +desde Ruby 3.4.0! |
| 99 | + |
| 100 | +## Descarga |
| 101 | + |
| 102 | +* <{{ release.url.gz }}> |
| 103 | + |
| 104 | +TAMAÑO: {{ release.size.gz }} |
| 105 | +SHA1: {{ release.sha1.gz }} |
| 106 | +SHA256: {{ release.sha256.gz }} |
| 107 | +SHA512: {{ release.sha512.gz }} |
| 108 | + |
| 109 | +* <{{ release.url.xz }}> |
| 110 | + |
| 111 | +TAMAÑO: {{ release.size.xz }} |
| 112 | +SHA1: {{ release.sha1.xz }} |
| 113 | +SHA256: {{ release.sha256.xz }} |
| 114 | +SHA512: {{ release.sha512.xz }} |
| 115 | + |
| 116 | +* <{{ release.url.zip }}> |
| 117 | + |
| 118 | +TAMAÑO: {{ release.size.zip }} |
| 119 | +SHA1: {{ release.sha1.zip }} |
| 120 | +SHA256: {{ release.sha256.zip }} |
| 121 | +SHA512: {{ release.sha512.zip }} |
| 122 | + |
| 123 | +## ¿Qué es Ruby? |
| 124 | + |
| 125 | +Ruby fue desarrollado por primera vez por Matz (Yukihiro Matsumoto) en 1993, |
| 126 | +y actualmente se desarrolla como software de código abierto. Se ejecuta en múltiples plataformas |
| 127 | +y se utiliza en todo el mundo, especialmente para el desarrollo web. |
| 128 | + |
| 129 | +[Característica #21047]: https://bugs.ruby-lang.org/issues/21047 |
| 130 | +[Falla #21049]: https://bugs.ruby-lang.org/issues/21049 |
| 131 | +[Característica #20610]: https://bugs.ruby-lang.org/issues/20610 |
| 132 | +[Característica #19908]: https://bugs.ruby-lang.org/issues/19908 |
| 133 | +[Característica #20724]: https://bugs.ruby-lang.org/issues/20724 |
| 134 | +[Característica #21275]: https://bugs.ruby-lang.org/issues/21275 |
0 commit comments