|
| 1 | +--- |
| 2 | +layout: news_post |
| 3 | +title: "Ruby 2.5.0 Publicado" |
| 4 | +author: "naruse" |
| 5 | +translator: "vtamara" |
| 6 | +date: 2017-12-25 00:00:00 +0000 |
| 7 | +lang: es |
| 8 | +--- |
| 9 | + |
| 10 | +Nos complace anunciar la publicación de Ruby 2.5.0. |
| 11 | + |
| 12 | +Ruby 2.5.0 es la primera versión estable de la serie 2.5 de Ruby. |
| 13 | +Introduce muchas características nuevas y mejoras en desempeño. |
| 14 | +Los cambios más notables son los siguientes: |
| 15 | + |
| 16 | +## Nuevas características |
| 17 | + |
| 18 | +* El uso de `rescue`/`else`/`ensure` ahora es permitido directamente |
| 19 | + dentro de bloques `do`/`end`. |
| 20 | + [[Característica #12906]](https://bugs.ruby-lang.org/issues/12906) |
| 21 | +* Agregada `yield_self` para ceder al bloque dado su contexto. |
| 22 | + A diferencia de `tap`, retorna el resultado del bloque. |
| 23 | + [[Característica #6721]](https://bugs.ruby-lang.org/issues/6721) |
| 24 | +* Soporta medición de cobertura de ramas y de cobertura de métodos. |
| 25 | + La cobertura de ramas indica que ramas se ejecutan y cuales no. |
| 26 | + La cobertura de métodos indica que métodos son llamados y cuales no. |
| 27 | + Al ejecutar un conjunto de pruebas con estas nuevas características, sabrá |
| 28 | + que ramas y que métodos se ejecutan, y evaluará la cobertura total del |
| 29 | + conjunto de pruebas de manera más rigurosa. |
| 30 | + [[Característica #13901]](https://bugs.ruby-lang.org/issues/13901) |
| 31 | +* Hash#slice [[Característica #8499]](https://bugs.ruby-lang.org/issues/8499) |
| 32 | + y Hash#transform_keys [[Característica #13583]](https://bugs.ruby-lang.org/issues/13583) |
| 33 | +* Struct.new puede crear clases que aceptan argumentos con palabra clave. |
| 34 | + [[Característica #11925]](https://bugs.ruby-lang.org/issues/11925) |
| 35 | +* Enumerable#any?, all?, none?, y one? aceptan un patrón como argumento. |
| 36 | + [[Característica #11286]](https://bugs.ruby-lang.org/issues/11286) |
| 37 | +* Se ha eliminado la búsqueda de constantes en el nivel superior |
| 38 | + cuando no se encuentran en una clase. |
| 39 | + [[Característica #11547]](https://bugs.ruby-lang.org/issues/11547) |
| 40 | +* Una de sus librerías más amadas, `pp.rb`, ahora se carga automaticamente. |
| 41 | + Ya no necesita escribir `require "pp"`. |
| 42 | + [[Característica #14123]](https://bugs.ruby-lang.org/issues/14123) |
| 43 | +* Impresión de la trazas y del mensaje de error en orden inverso (las llamadas |
| 44 | + más antiguas primero, las más recientes al final). Cuando aparece una |
| 45 | + traza larga en su terminal (TTY), puede encontrar facilmente la línea |
| 46 | + causante al final de la traza. Note que el orden se invierte sólo cuando |
| 47 | + la traza se imprime directamente en la terminal. |
| 48 | + [[Característica #8661]](https://bugs.ruby-lang.org/issues/8661) [experimental] |
| 49 | + |
| 50 | +## Mejoras en desempeño |
| 51 | + |
| 52 | +* Mejora del 5 al 10% en desempeño al eliminar todas las instrucciones `trace` |
| 53 | + del bytecode general (secuencias de instrucciones). |
| 54 | + La instrucción `trace` se añadió para dar soporte a `TracePoint`. |
| 55 | + Sin embargo, en la mayoría de casos, `TracePoint` no se usa y las |
| 56 | + instrucciones `trace` son gasto puro. En cambio, ahora usamos una técnica |
| 57 | + de instrumentación dinámica. |
| 58 | + Ver detalles en la [[Características #14104]](https://bugs.ruby-lang.org/issues/14104). |
| 59 | +* Pasar un bloque por un parámetro de bloque (e.g. `def foo(&b); bar(&b); end`) |
| 60 | + es cerca de 3 veces más rápido que en Ruby 2.4 por la técnica de |
| 61 | + "localización diferida de Proc" |
| 62 | + [[Característica #14045]](https://bugs.ruby-lang.org/issues/14045) |
| 63 | +* Se reescribió Mutex para disminuir su tamaño y aumentar su rapidez. |
| 64 | + [[Característica #13517]](https://bugs.ruby-lang.org/issues/13517) |
| 65 | +* ERB ahora genera el código de una plantilla dos veces más rápido que |
| 66 | + en Ruby 2.4. |
| 67 | +* Mejorado el desempeño de algunos métodos incorporados incluyendo |
| 68 | + `Array#concat`, `Enumerable#sort_by`, `String#concat`, `String#index`, |
| 69 | + `Time#+` y más. |
| 70 | +* IO.copy_stream usa copy_file_range(2) para copiar con la opción offload |
| 71 | + en Linux (es decir sin leer ni escribir el contenido sino añadiendo |
| 72 | + una referencia cuando el sistema de archivos lo permite). |
| 73 | + [[Característica #13867]](https://bugs.ruby-lang.org/issues/13867) |
| 74 | + |
| 75 | +## Otros cambios notables desde la versión 2.4 |
| 76 | + |
| 77 | +* SecureRandom ahora prefiere fuentes proveidas por el sistema operativo |
| 78 | + en lugar de OpenSSL. |
| 79 | + [[Falla #9569]](https://bugs.ruby-lang.org/issues/9569) |
| 80 | +* Promovidas cmath, csv, date, dbm, etc, fcntl, fiddle, fileutils, gdbm, ipaddr, |
| 81 | + scanf, sdbm, stringio, strscan, webrick, zlib de la librería estándar |
| 82 | + a gemas por omisión. |
| 83 | +* Actualización a [Onigmo](https://github.com/k-takata/Onigmo/) 6.1.3. |
| 84 | + * Añade el [operador ausente](https://github.com/k-takata/Onigmo/issues/87). |
| 85 | + * Note que [Ruby 2.4.1](https://www.ruby-lang.org/en/news/2017/03/22/ruby-2-4-1-released/) también incluye este cambio. |
| 86 | +* Actualización a Psych 3.0.2. |
| 87 | +* Actualización a RubyGems 2.7.3. |
| 88 | +* Actualización a RDoc 6.0.1. |
| 89 | + * [Cambia el analizador léxico de IRB por uno basado en Ripper](https://github.com/ruby/rdoc/pull/512). |
| 90 | + Esto mejora considerablemente la velocidad de generación de la |
| 91 | + documentación. |
| 92 | + * Resueltas muchas fallas de los últimos diez años. |
| 93 | + * Soporta la nueva sintaxis de las versiones más recientes de Ruby. |
| 94 | +* Actualizada versión soportada de Unicode a 10.0.0. |
| 95 | +* `Thread.report_on_exception` ahora queda en `true` por omisión. |
| 96 | + Este cambio ayuda a depurar programas de multiples hilos. |
| 97 | + [[Característica #14143]](https://bugs.ruby-lang.org/issues/14143) |
| 98 | +* IO#write ahora recibe múltiples argumentos. |
| 99 | + [[Característica #9323]](https://bugs.ruby-lang.org/issues/9323) |
| 100 | + |
| 101 | +Ver detalles en [NEWS](https://github.com/ruby/ruby/blob/v2_5_0/NEWS) |
| 102 | +o en la [bitácora de commits](https://github.com/ruby/ruby/compare/v2_4_0...v2_5_0). |
| 103 | + |
| 104 | +Con esos cambios, |
| 105 | +[6158 archivos cambiaron, 348484 inserciones (+), 82747 eliminaciones(-)](https://github.com/ruby/ruby/compare/v2_4_0...v2_5_0) |
| 106 | +desde Ruby 2.4.0! |
| 107 | + |
| 108 | +¡Feliz navidad, felices festividades y disfrute programando con Ruby 2.5! |
| 109 | + |
| 110 | + |
| 111 | +## Descargas |
| 112 | + |
| 113 | +* <https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz> |
| 114 | + |
| 115 | + SIZE: 15834941 bytes |
| 116 | + SHA1: 58f77301c891c1c4a08f301861c26b1ea46509f6 |
| 117 | + SHA256: 46e6f3630f1888eb653b15fa811d77b5b1df6fd7a3af436b343cfe4f4503f2ab |
| 118 | + SHA512: 0712fe68611f5d0cd6dd54b814f825478e64b6a62bdf67bce431f4dca2dc00b1a33f77bebfbcd0a151118a1152554ab457decde435b424aa1f004bc0aa40580d |
| 119 | + |
| 120 | +* <https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.zip> |
| 121 | + |
| 122 | + SIZE: 19495617 bytes |
| 123 | + SHA1: 700b6f55d689a5c8051c8c292b9e77a1b50bf96e |
| 124 | + SHA256: 94559ea6e3c619423da604e503ce1dc1c465d6e0747a07fbdc5f294acaf14c24 |
| 125 | + SHA512: e4324064cee8c65b80192e3eff287e915d2d40464d300744c36fb326ae4b1846911400a99d4332192d8a217009d3a5209b43eb5e8bc0b739035bef89cc493e84 |
| 126 | + |
| 127 | +* <https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.bz2> |
| 128 | + |
| 129 | + SIZE: 13955820 bytes |
| 130 | + SHA1: 827b9a3bcffa86d1fc9ed96d403cb9dc37731688 |
| 131 | + SHA256: d87eb3021f71d4f62e5a5329628ac9a6665902173296e551667edd94362325cc |
| 132 | + SHA512: 8f6fdf6708e7470f55bc009db2567cd8d4e633ad0678d83a015441ecf5b5d88bd7da8fb8533a42157ff83b74d00b6dc617d39bbb17fc2c6c12287a1d8eaa0f2c |
| 133 | + |
| 134 | +* <https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.xz> |
| 135 | + |
| 136 | + SIZE: 11292472 bytes |
| 137 | + SHA1: 9c7babcf9e299be3f197d9091024ae458f1a1273 |
| 138 | + SHA256: 1da0afed833a0dab94075221a615c14487b05d0c407f991c8080d576d985b49b |
| 139 | + SHA512: 55714a33d7661fe8b432f73c34fd67b49699f8b79df1cbd680a74899124d31111ab0f444677672aac1ba725820182940d485efb2db0bf2bc96737c5d40c54578 |
0 commit comments