Skip to content

Commit 2d6612d

Browse files
authored
Merge pull request #1887 from vtamara/es-20181106
Translation of 2018-11-06-ruby-2-6-0-preview3 (es)
2 parents 6f135ab + 22e442f commit 2d6612d

File tree

1 file changed

+145
-0
lines changed

1 file changed

+145
-0
lines changed
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
---
2+
layout: news_post
3+
title: "Publicado Ruby 2.6.0-preview3"
4+
author: "naruse"
5+
translator: "vtamara"
6+
date: 2018-11-06 00:00:00 +0000
7+
lang: es
8+
---
9+
10+
Nos complace anunciar la publicación de Ruby 2.6.0-preview3.
11+
12+
Ruby 2.6.0-preview3 es la tercera vista premiliminar de Ruby 2.6.0.
13+
Esta vista preliminar 3 se publica para probar nuevas
14+
características antes del Candidato a Publicación.
15+
16+
## JIT
17+
18+
Ruby 2.6 introduce una implementación inicial de un compilador JIT
19+
(Just-in-time).
20+
21+
Un compilador JIT busca mejorar el desempeño de cualquier ejecución de un
22+
programa en Ruby.
23+
A diferencia de los compiladores JIT ordinarios para otros lenguajes, el
24+
compilador JIT de Ruby hace la compilación JIT de manera única,
25+
emitiendo código C en un disco y lanzando el proceso ordinario de
26+
compilación en C para generar código nativo.
27+
Ver también: [MJIT organization by Vladimir Makarov](https://github.com/vnmakarov/ruby/tree/rtl_mjit_branch#mjit-organization).
28+
29+
Forma de uso: Sólo especifique `--jit` en la línea de ordenes o en la
30+
varialbe de entorno `$RUBYOPT`.
31+
Al especificar `--jit-verbose=1` se presentará información básica de la
32+
compilación JIT. Vea más opciones con `ruby --help`.
33+
34+
El propósito principal de esta versión JIT es darle oportunidad de
35+
comprobar que funciona en su plataforma y encontrar riesgos de seguridad
36+
antes de la versión 2.6.
37+
El compilador JIT es soportado cuando Ruby se construye con GCC, Clang o
38+
Microsoft VC++, que debe estar disponible en tiempo de ejecución. De
39+
lo contrario no podrá usarlo por el momento.
40+
41+
Con Ruby 2.6.0 preview3, hemos alcanzado una mejora en velocidad de 1.7 veces
42+
sobre Ruby 2.5 con una carga de trabajo intensiva en el uso de la CPU,
43+
denominada Optcarrot <https://gist.github.com/k0kubun/d7f54d96f8e501bbbc78b927640f4208>.
44+
Vamos a a mejorar el desempeño de cargas de trabajo intensivas en el uso
45+
de memoria tales como las aplicaciones Rails.
46+
47+
Este pendiente de la nueva era del desempeño de Ruby.
48+
49+
## RubyVM::AST [Experimental]
50+
51+
Ruby 2.6 introduce el módulo `RubyVM::AST`.
52+
53+
Este módulo tiene un método `parse` que puede reconocer código ruby en una cadena y retornar nodos del AST (Abstract Syntax Tree - Árbol de sintaxis abstract), y el método `parse_file` que reconoe código ruby en un archivo y retorna nodos del AST.
54+
También se introduce la clase `RubyVM::AST::Node`. Puede obtener información de la localización y los nodos hijos de objetos `Node`. Esta característica es experimental. No se garantiza compatibilidad de la estructura de los nodos AST.
55+
56+
## Nuevas características
57+
58+
* Se agregó el alias `then` a `Kernel#yield_self`. [[Característica #14594]](https://bugs.ruby-lang.org/issues/14594)
59+
60+
* `else` sin `rescue` ahora causa un error de sintaxis. [EXPERIMENTAL]
61+
62+
* Los nombres de constantes pueden comenzar con una letra mayúscula fuera de la tabla AASCII. [[Característica #13770]](https://bugs.ruby-lang.org/issues/13770)
63+
64+
* Rangos no acotados [[Característica #12912]](https://bugs.ruby-lang.org/issues/12912)
65+
66+
Se introduce un rango no acotado `(1..)`. Funciona como si no terminara. A continuación se presenta un uso típico:
67+
68+
ary[1..] # igual a ary[1..-1] sin el mágico -1
69+
(1..).each {|index| ... } # ciclo infinito desde el índice 1
70+
ary.zip(1..) {|elem, index| ... } # ary.each.with_index(1) { ... }
71+
72+
* Añadido `Binding#source_location`. [[Característica #14230]](https://bugs.ruby-lang.org/issues/14230)
73+
74+
Este método retorna la localización en la fuente de una unión, un arreglo de 2 elementos `__FILE__` y `__LINE__`. Tradicionalmente, la misma información podría recuperarse con `eval("[__FILE__, __LINE__]", binding)`, pero planeamos cambiar este comportamiento para que `Kernel#eval` ignore la localización de uniones en las fuentes [[Falla #4352]](https://bugs.ruby-lang.org/issues/4352). Así que los usuarios deberían emplear este método recién introducido en lugar de `Kernel#eval`.
75+
76+
* Añadir la opción `:exception` para que `Kernel.#system` lance un error en lugar de retornar `false`. [[Característica #14386]](https://bugs.ruby-lang.org/issues/14386)
77+
78+
## Mejoras en desempeño
79+
80+
* Mejorada la velocidad de `Proc#call` porque ya no necesitamos preocuparnos por `$SAFE`. [[Característica #14318]](https://bugs.ruby-lang.org/issues/14318)
81+
82+
Con la prueba de referencia `lc_fizzbuzz` que usa `Proc#call` repetidas veces podemos medir mejoras de 1.4 veces [[Falla #10212]](https://bugs.ruby-lang.org/issues/10212).
83+
84+
* Mejorada velocidad de `block.call` cuando `block` es un parámetro de
85+
bloque pasado a una función. [[Característica #14330]](https://bugs.ruby-lang.org/issues/14330)
86+
87+
Ruby 2.5 mejora el desempeño al pasar bloques. [[Característica #14045]](https://bugs.ruby-lang.org/issues/14045)
88+
Además, Ruby 2.6 mejora el desempeño al llamar bloques pasados.
89+
Con micro-pruebas de referencia podemos observar una mejora de 2.6 veces.
90+
91+
* Se introduce la estructura de datos Montón transitorio (Transient Heap - theap). [Falla #14858] [Característica #14989]
92+
theap es un montón usado para objetos en memoria de corta duración que son
93+
apuntados por clases específicas (Array, Hash, Object, and Struct).
94+
Por ejemplo, hacer objetos Hash pequeños y de corta duración es 2 veces
95+
más rápido. Con la prueba de referencia rdoc, observamos una mejora en
96+
desempeño de entre 6 y 7%.
97+
98+
## Otros cambios notables desde 2.5
99+
100+
* `$SAFE` es el estado global del proceso y podemos ponerlo nuevamente en `0`. [[Característica #14250]](https://bugs.ruby-lang.org/issues/14250)
101+
102+
* Es obsoleto pasar `safe_level` a `ERB.new`. Los argumentos `trim_mode` y `eoutvar` se cambian a argumentos de palabra clave (keyword arguments). [[Característica #14256]](https://bugs.ruby-lang.org/issues/14256)
103+
104+
* Mezclado RubyGems 3.0.0.beta2. Se eliminaron las opciones `--ri` y `--rdoc`. Por favor use las opciones `--document` y `--no-document` en lugar de esas.
105+
106+
* Mezclado [Bundler](https://github.com/bundler/bundler) como una gema por omisión.
107+
108+
Vea detalles en [NOTICIAS](https://github.com/ruby/ruby/blob/v2_6_0_preview3/NEWS)
109+
o en [la bitácora de commits](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_preview3).
110+
111+
Con esos cambios,
112+
[cambiaron 6474 archivos, 171888 inserciones(+), 46617 eliminaciones (-)](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_preview3)
113+
desde Ruby 2.5.0!
114+
115+
Disfrute programar con Ruby 2.6.0-preview3!
116+
117+
## Descargas
118+
119+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview3.tar.gz>
120+
121+
TAMAÑO: 17071670 bytes
122+
SHA1: 67836fda11fa91e0b988a6cc07989fbceda025b4
123+
SHA256: 60243e3bd9661e37675009ab66ba63beacf5dec748885b9b93916909f965f27a
124+
SHA512: 877278cd6e9b947f5bb6ed78136efb232dcc9c5c218b7236576171e7c3cd7f6b7d10d07d8402014a14aba1fcd1913a4370f0725c561ead41d8a3fe92029f7f76
125+
126+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview3.zip>
127+
128+
TAMAÑO: 21537655 bytes
129+
SHA1: 45f3c90dfffe03b746f21f24152666e361cbb41a
130+
SHA256: 9152af9e700349dcfa2eec196dd91587d42d70a6837fa2c415ebba1167587be1
131+
SHA512: 335de36cf56706326f4acc4bbd35be01e0ac5fff30d0a69b2e1630ba4c78f0e711822d1623d0099a517c824b154917d2f60be192dfb143a422cf1d17b38e1183
132+
133+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview3.tar.bz2>
134+
135+
TAMAÑO: 14973451 bytes
136+
SHA1: 5f2df5d8c5a3888ccb915d36a3532ba32cda8791
137+
SHA256: 1f09a2ac1ab26721923cbf4b9302a66d36bb302dc45e72112b41d6fccc5b5931
138+
SHA512: d1693625723796e8902f3e4c4fae444f2912af9173489f7cf18c99db2a217afc971b082fce7089e39f8edd54d762d2b4e72843c8306ed29b05ccb15ac03dbb5b
139+
140+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview3.tar.xz>
141+
142+
TAMAÑO: 12291692 bytes
143+
SHA1: 7f8216247745215e9645568e7a02140f9a029b31
144+
SHA256: 9856d9e0e32df9e5cdf01928eec363d037f1a76dab2abbf828170647beaf64fe
145+
SHA512: b4d3b17ecf96272c43cd7518c0b54dee63fc1150ad143e1d9c9d708506fe78676c80eb96cc47b8d46d1128bd483a53f16c944963a03d1f99f00131b74714df7b

0 commit comments

Comments
 (0)