-
Notifications
You must be signed in to change notification settings - Fork 629
Translation of 2018-11-06-ruby-2-6-0-preview3 (es) #1887
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
145 changes: 145 additions & 0 deletions
145
es/news/_posts/2018-11-06-ruby-2-6-0-preview3-released.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,145 @@ | ||
--- | ||
layout: news_post | ||
title: "Publicado Ruby 2.6.0-preview3" | ||
author: "naruse" | ||
translator: "vtamara" | ||
date: 2018-11-06 00:00:00 +0000 | ||
lang: es | ||
--- | ||
|
||
Nos complace anunciar la publicación de Ruby 2.6.0-preview3. | ||
|
||
Ruby 2.6.0-preview3 es la tercera vista premiliminar de Ruby 2.6.0. | ||
Esta vista preliminar 3 se publica para probar nuevas | ||
características antes del Candidato a Publicación. | ||
|
||
## JIT | ||
|
||
Ruby 2.6 introduce una implementación inicial de un compilador JIT | ||
(Just-in-time). | ||
|
||
Un compilador JIT busca mejorar el desempeño de cualquier ejecución de un | ||
programa en Ruby. | ||
A diferencia de los compiladores JIT ordinarios para otros lenguajes, el | ||
compilador JIT de Ruby hace la compilación JIT de manera única, | ||
emitiendo código C en un disco y lanzando el proceso ordinario de | ||
compilación en C para generar código nativo. | ||
Ver también: [MJIT organization by Vladimir Makarov](https://github.com/vnmakarov/ruby/tree/rtl_mjit_branch#mjit-organization). | ||
|
||
Forma de uso: Sólo especifique `--jit` en la línea de ordenes o en la | ||
varialbe de entorno `$RUBYOPT`. | ||
Al especificar `--jit-verbose=1` se presentará información básica de la | ||
compilación JIT. Vea más opciones con `ruby --help`. | ||
|
||
El propósito principal de esta versión JIT es darle oportunidad de | ||
comprobar que funciona en su plataforma y encontrar riesgos de seguridad | ||
antes de la versión 2.6. | ||
El compilador JIT es soportado cuando Ruby se construye con GCC, Clang o | ||
Microsoft VC++, que debe estar disponible en tiempo de ejecución. De | ||
lo contrario no podrá usarlo por el momento. | ||
|
||
Con Ruby 2.6.0 preview3, hemos alcanzado una mejora en velocidad de 1.7 veces | ||
sobre Ruby 2.5 con una carga de trabajo intensiva en el uso de la CPU, | ||
denominada Optcarrot <https://gist.github.com/k0kubun/d7f54d96f8e501bbbc78b927640f4208>. | ||
Vamos a a mejorar el desempeño de cargas de trabajo intensivas en el uso | ||
de memoria tales como las aplicaciones Rails. | ||
|
||
Este pendiente de la nueva era del desempeño de Ruby. | ||
|
||
## RubyVM::AST [Experimental] | ||
|
||
Ruby 2.6 introduce el módulo `RubyVM::AST`. | ||
|
||
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. | ||
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. | ||
|
||
## Nuevas características | ||
|
||
* Se agregó el alias `then` a `Kernel#yield_self`. [[Característica #14594]](https://bugs.ruby-lang.org/issues/14594) | ||
|
||
* `else` sin `rescue` ahora causa un error de sintaxis. [EXPERIMENTAL] | ||
|
||
* 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) | ||
|
||
* Rangos no acotados [[Característica #12912]](https://bugs.ruby-lang.org/issues/12912) | ||
|
||
Se introduce un rango no acotado `(1..)`. Funciona como si no terminara. A continuación se presenta un uso típico: | ||
|
||
ary[1..] # igual a ary[1..-1] sin el mágico -1 | ||
(1..).each {|index| ... } # ciclo infinito desde el índice 1 | ||
ary.zip(1..) {|elem, index| ... } # ary.each.with_index(1) { ... } | ||
|
||
* Añadido `Binding#source_location`. [[Característica #14230]](https://bugs.ruby-lang.org/issues/14230) | ||
|
||
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`. | ||
|
||
* 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) | ||
vtamara marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
## Mejoras en desempeño | ||
|
||
* Mejorada la velocidad de `Proc#call` porque ya no necesitamos preocuparnos por `$SAFE`. [[Característica #14318]](https://bugs.ruby-lang.org/issues/14318) | ||
|
||
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). | ||
|
||
* Mejorada velocidad de `block.call` cuando `block` es un parámetro de | ||
bloque pasado a una función. [[Característica #14330]](https://bugs.ruby-lang.org/issues/14330) | ||
|
||
Ruby 2.5 mejora el desempeño al pasar bloques. [[Característica #14045]](https://bugs.ruby-lang.org/issues/14045) | ||
Además, Ruby 2.6 mejora el desempeño al llamar bloques pasados. | ||
Con micro-pruebas de referencia podemos observar una mejora de 2.6 veces. | ||
|
||
* Se introduce la estructura de datos Montón transitorio (Transient Heap - theap). [Falla #14858] [Característica #14989] | ||
theap es un montón usado para objetos en memoria de corta duración que son | ||
apuntados por clases específicas (Array, Hash, Object, and Struct). | ||
Por ejemplo, hacer objetos Hash pequeños y de corta duración es 2 veces | ||
más rápido. Con la prueba de referencia rdoc, observamos una mejora en | ||
desempeño de entre 6 y 7%. | ||
|
||
## Otros cambios notables desde 2.5 | ||
|
||
* `$SAFE` es el estado global del proceso y podemos ponerlo nuevamente en `0`. [[Característica #14250]](https://bugs.ruby-lang.org/issues/14250) | ||
|
||
* 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) | ||
|
||
* 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. | ||
|
||
* Mezclado [Bundler](https://github.com/bundler/bundler) como una gema por omisión. | ||
|
||
Vea detalles en [NOTICIAS](https://github.com/ruby/ruby/blob/v2_6_0_preview3/NEWS) | ||
o en [la bitácora de commits](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_preview3). | ||
|
||
Con esos cambios, | ||
[cambiaron 6474 archivos, 171888 inserciones(+), 46617 eliminaciones (-)](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_preview3) | ||
desde Ruby 2.5.0! | ||
|
||
Disfrute programar con Ruby 2.6.0-preview3! | ||
|
||
## Descargas | ||
|
||
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview3.tar.gz> | ||
|
||
TAMAÑO: 17071670 bytes | ||
SHA1: 67836fda11fa91e0b988a6cc07989fbceda025b4 | ||
SHA256: 60243e3bd9661e37675009ab66ba63beacf5dec748885b9b93916909f965f27a | ||
SHA512: 877278cd6e9b947f5bb6ed78136efb232dcc9c5c218b7236576171e7c3cd7f6b7d10d07d8402014a14aba1fcd1913a4370f0725c561ead41d8a3fe92029f7f76 | ||
|
||
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview3.zip> | ||
|
||
TAMAÑO: 21537655 bytes | ||
SHA1: 45f3c90dfffe03b746f21f24152666e361cbb41a | ||
SHA256: 9152af9e700349dcfa2eec196dd91587d42d70a6837fa2c415ebba1167587be1 | ||
SHA512: 335de36cf56706326f4acc4bbd35be01e0ac5fff30d0a69b2e1630ba4c78f0e711822d1623d0099a517c824b154917d2f60be192dfb143a422cf1d17b38e1183 | ||
|
||
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview3.tar.bz2> | ||
|
||
TAMAÑO: 14973451 bytes | ||
SHA1: 5f2df5d8c5a3888ccb915d36a3532ba32cda8791 | ||
SHA256: 1f09a2ac1ab26721923cbf4b9302a66d36bb302dc45e72112b41d6fccc5b5931 | ||
SHA512: d1693625723796e8902f3e4c4fae444f2912af9173489f7cf18c99db2a217afc971b082fce7089e39f8edd54d762d2b4e72843c8306ed29b05ccb15ac03dbb5b | ||
|
||
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview3.tar.xz> | ||
|
||
TAMAÑO: 12291692 bytes | ||
SHA1: 7f8216247745215e9645568e7a02140f9a029b31 | ||
SHA256: 9856d9e0e32df9e5cdf01928eec363d037f1a76dab2abbf828170647beaf64fe | ||
SHA512: b4d3b17ecf96272c43cd7518c0b54dee63fc1150ad143e1d9c9d708506fe78676c80eb96cc47b8d46d1128bd483a53f16c944963a03d1f99f00131b74714df7b |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.