
Nos complace anunciar el lanzamiento de Ruby 4.0.0-preview2.
Ruby 4.0 actualiza su versión de Unicode a 17.0.0, entre otras novedades.

## Cambios en el lenguaje

* `*nil` ya no llama a `nil.to_a`, de forma similar a como `**nil`
  no llama a `nil.to_hash`. [[Característica #21047]]

## Actualizaciones de clases principales

Nota: Solo se enumeran las actualizaciones más importantes de las clases
principales.

* Binding

* `Binding#local_variables` ya no incluye parámetros numerados.
  Además, `Binding#local_variable_get` y `Binding#local_variable_set`
  rechazan el manejo de parámetros numerados.
  [[Falla #21049]]

* IO

* `IO.select` acepta +Float::INFINITY+ como argumento de tiempo de espera.
  [[Característica #20610]]

* String

* Actualización a Unicode versión 17.0.0 y Emoji versión 17.0.
  [[Característica #19908]][[Característica #20724]][[Característica #21275]]
  (también aplica a Regexp)


## Actualizaciones de la biblioteca estándar

Nota: Solo se enumeran las actualizaciones más importantes de las bibliotecas
estándar.

* ostruct 0.6.1
* pstore 0.2.0
* benchmark 0.4.0
* logger 1.7.0
* rdoc 6.13.1
* win32ole 1.9.2
* irb 1.15.2
* reline 0.6.1
* readline 0.0.4
* fiddle 1.1.6

## Problemas de compatibilidad

Nota: Se excluyen las correcciones de errores de características.

## Problemas de compatibilidad con la biblioteca estándar

## Actualizaciones de la API de C


## JIT

* YJIT
    * Estadísticas de YJIT
        * `ratio_in_yjit` ya no funciona en la compilación predeterminada.
            Use `--enable-yjit=stats` en `configure` para habilitarlo
            con `--yjit-stats`.
        * Se agregó `invalidate_everything` a las estadísticas
            predeterminadas, que se incrementa cuando TracePoint invalida
            todo el código.
    * Se agregaron las opciones `mem_size:` y `call_threshold:` a
      `RubyVM::YJIT.enable`.
* ZJIT
    * Se agregó un compilador JIT experimental basado en métodos.
      Use `--enable-zjit` en `configure` para habilitar el soporte `--zjit`.
    * A partir de Ruby 4.0.0-preview2, ZJIT aún no está listo para acelerar
      la mayoría de los benchmarks.
      Por favor, absténgase de evaluar ZJIT por el momento. Manténgase
      atento al lanzamiento de Ruby 4.0.
* RJIT
    * Se eliminó `--rjit`. Trasladaremos la implementación de la API JIT de
      terceros al repositorio [ruby/rjit](https://github.com/ruby/rjit).

## Cambios varios

Consulte [NEWS](https://github.com/ruby/ruby/blob/v4.0.0-preview2/NEWS.md)
o los [registros de commits](https://github.com/ruby/ruby/compare/v3_4_0...v4.0.0-preview2)
para obtener más detalles.

Con estos cambios, ¡[3607 archivos modificados, 197451 inserciones (+), 285607 eliminaciones (-)](https://github.com/ruby/ruby/compare/v3_4_0...v4.0.0-preview2#file_bucket)
desde Ruby 3.4.0!

## Descarga

* <https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.0-preview2.tar.gz>

TAMAÑO: 23444451
SHA1: 132e450bbee3f61ed0b463ed1e2bd3a3a324339c
SHA256: 0a3330dae710302e11f7f0323e83219ab3c6517984691a312c662f329c5120e1
SHA512: b5e681cc84be59148485b9a2212dcf54d61cfee27431ceddb49bedc8baa913ec8b36da43242cb4f1791b25e4bfc1dcf72b5527288a0656f2933da898d0e0b40f

* <https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.0-preview2.tar.xz>

TAMAÑO: 17554228
SHA1: f8e8b98ea85ac82610ab601a21dc9a90c5c56a97
SHA256: 0b92b15466d77a9d7e59e4a75f050d42cd50fe96c951d2b3b9f8029394cd9a43
SHA512: 7afaa8d8e832ef0ded28f1caf874da69f16105e1b3aad5947c6911364159b4c6ebd3d7ea5d7d86708e9f2f06a047921b8302ca6e75ec429a3da846845f896976

* <https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.0-preview2.zip>

TAMAÑO: 28933540
SHA1: 48a235cfbfd4252dce81da870c792e32309e62b9
SHA256: f5c68ee44dfcb76b61c07c437fa945814dfc516570b1c921506ac886960160ca
SHA512: 508c685e46a641c74e2968daf650559503ce2bcaac3403654713adb2345c3ede2bace929294a1367afecac5edd6b2c42fa833f5313456f78c79151d310c860cf

## ¿Qué es Ruby?

Ruby fue desarrollado por primera vez por Matz (Yukihiro Matsumoto) en 1993,
y actualmente se desarrolla como software de código abierto. Se ejecuta en múltiples plataformas
y se utiliza en todo el mundo, especialmente para el desarrollo web.

[Característica #21047]: https://bugs.ruby-lang.org/issues/21047
[Falla #21049]: https://bugs.ruby-lang.org/issues/21049
[Característica #20610]: https://bugs.ruby-lang.org/issues/20610
[Característica #19908]: https://bugs.ruby-lang.org/issues/19908
[Característica #20724]: https://bugs.ruby-lang.org/issues/20724
[Característica #21275]: https://bugs.ruby-lang.org/issues/21275
