Llega la sexta actualización del lenguaje de programación Ruby 2.6.0

Ruby Linux

Después de un año de desarrollo, se publica el lanzamiento de Ruby 2.6.0, un lenguaje de programación dinÔmico orientado a objetos, caracterizado por una alta eficiencia de desarrollo de software e incorporando las mejores características de Perl, Java, Python, Smalltalk, Eiffel, Ada y Lisp.

El código del proyecto se distribuye bajo las licencias BSD («2-clÔusula BSDL») y «Ruby», que se refiere a la última licencia GPL y es totalmente compatible con GPLv3.

Ruby 2.6 es la sexta versión principal, preparada como parte de un proceso de desarrollo planificado, que implica asignar un año para preparar mejoras funcionales y crear versiones correctivas cada 2-3 meses.

Principales novedades en Ruby 2.6.0

Con este nuevo lanzamiento de Ruby se agregó una implementación experimental del compilador JIT, que le permite mejorar significativamente el rendimiento de las aplicaciones en el lenguaje Ruby.

A diferencia de los compiladores JIT tradicionales, que generan instrucciones de la mÔquina sobre la marcha, el compilador JIT propuesto en Ruby primero escribe el código C en el disco, luego llama al compilador C externo para generar las instrucciones de la mÔquina (se admiten GCC, Clang y Microsoft VC ++).

Para activar JIT, se debe especificar la opción «–jitĀ» al iniciar ruby ​​o configurar esta opción en la variable de entorno RUBYOPT.

En comparación con Ruby 2.5, la inclusión de JIT promedia 1.7 veces el rendimiento de las aplicaciones intensivas de CPU.

Al mismo tiempo, el desarrollo aĆŗn es experimental y estĆ” mal adaptado para cargas asociadas con el trabajo intensivo con memoria.

Otras de las mejoras que se obtuvieron en esta versión fue el módulo experimental RubyVM :: AbstractSyntaxTree, que proporciona un método de anÔlisis que procesa las cadenas transmitidas como código Ruby y devuelve un Ôrbol de sintaxis abstracta (AST , Árbol de sintaxis abstracta) para este código.

Ahora se puede usar el alias «#then» para acceder al método «Kernel # yield_self». Para los métodos «Array # |» y «Array # -» sugirió alias mÔs legibles «Array # union» y «Array # Difference».

Los nombres de las constantes ahora pueden comenzar con mayĆŗsculas que no sean ASCII.

También fue proporcionado un soporte para Transient Heap, theap destinado a objetos con una vida útil corta utilizando clases específicas (Array, Hash, Object, Struct).

ruby-on-rails

Por ejemplo, gracias a theap, la creación de hashes existentes pequeños y de corta duración ahora se realiza dos veces mÔs rÔpido. La prueba rdoc mostró un aumento en el rendimiento del 6-7%.

Para aumentar el rendimiento de los cambios de contexto, se proponen implementaciones nativas de coroutines para las arquitecturas arm32, arm64, ppc64le, win32, win64, x86 y amd64. «Fiber.yield» y «Fiber # resume» en sistemas Linux de 64 bits ahora se ejecutan casi 5 veces mÔs rÔpido.

En general, los programas intensivos muestran un aumento de rendimiento del 5%.

Mejoras importantes en Ruby 2.6.0

Se recibió una versión actualizada de RubyGems 3.0.1, en la cual el soporte para las opciones «–riĀ» y «–rdocĀ» han sido descontinuados, en lugar de lo cual debe usar «–documentĀ» y «–no-documentĀ».

Bundler ahora estĆ” instalado de forma predeterminada para administrar las dependencias de gemas.

Se agregó soporte para rangos no terminados, por ejemplo, Ā«ary [1 ..]Ā» o Ā«(1 ..). Each {…}Ā».

De las demƔs mejoras que se pueden destacar se puede encontrar:

  • La opción de excepción se ha agregado al mĆ©todo del sistema Kernel # para generar una excepción en caso de error en lugar de devolver falso.
  • El modo oneshot se ha agregado al módulo de cobertura, que comprueba si cada fila se estĆ” ejecutando al menos una vez.
  • La clase Enumerator :: Chain y los mĆ©todos Ā«Enumerable # chainĀ» y Ā«Enumerator # +Ā» implementados en ella se agregan para crear cadenas de valores enumerados.
  • El soporte para los operadores Ā«<<Ā» y Ā«>>Ā» se ha agregado a los módulos Proc y MĆ©todo, por ejemplo, la construcción Ā«(f << g) .call (3)Ā» es idĆ©ntica a Ā«f (g (3))Ā».

¿Cómo instalar Ruby 2.6.0 en Linux?

Para obtener esta nueva versión de Ruby, basta con abrir una terminal en tu sistema y teclear alguno de los siguientes comandos

Debian, Ubuntu y derivados

sudo apt-get install ruby-full

CentOS, Fedora, y RHEL

sudo yum install ruby

Gentoo

sudo emerge dev-lang/ruby

Arch Linux, Manjaro, Antergos y derivados

sudo pacman -S ruby

openSUSE

sudo zypper install ruby