La puesta al día Ruby 4.0 trae ZJIT, funciones de aislamiento y más

El jerga de programación Ruby continúa su tradición de ofrecer actualizaciones importantes el día de Navidad, anunciando el extensión de Ruby 4.0.0, que introduce dos nuevas características experimentales masivas: el mecanismo de aislamiento conocido como Ruby Box y el compilador preciso a tiempo de próxima engendramiento, ZJIT.

El anciano cambio arquitectónico que llega con la interpretación 4.0 es definitivamente Ruby Box. Esta nueva característica práctico tiene una separación estricta para las definiciones cargadas internamente del cuadro. Si alguna vez ha luchado con problemas complejos de dependencia o ha tenido un parche de simio opuesta que arruinó su entorno integral, sabe lo crucial que puede ser el aislamiento. Las definiciones cargadas internamente de Ruby Box están aisladas de otras cajas, lo que significa que pueden separar cambios de variables globales o de clase, definiciones de clases e incluso bibliotecas nativas cargadas.

El equipo de Ruby sugiere usar cuadros para ejecutar casos de prueba en los que es posible que necesite parches de simio sin preocuparse de que esos cambios se filtren y afecten a otras pruebas. Asimismo puede utilizar esta característica como cojín para implementar estrategias de implementación azul-verde en un servidor de aplicaciones, ejecutando cajas de aplicaciones web paralelas en un único proceso Ruby. Esta es una API potente de bajo nivel y espero ver que las herramientas de distribución de paquetes de detención nivel la utilicen en gran medida en el futuro.

En cuanto al rendimiento, los desarrolladores ya están mirando más allá de YJIT con la preparación de ZJIT, un nuevo compilador preciso a tiempo. ZJIT está diseñado para ser el sucesivo paso delante en el rendimiento de Ruby, apuntando a un techo de rendimiento mucho más detención mediante el uso de fundamentos como SSA IR y unidades de compilación más grandes. El equipo incluso está intentando hacer de ZJIT un compilador de métodos más tradicional, lo que debería fomentar más contribuciones externas de expertos en optimización.

En este momento, ZJIT todavía es mucho práctico. Si aceptablemente es considerablemente más rápido que el intérprete habitual de Ruby, aún no ha apurado a YJIT. Yo diría que el anciano problema es que no deberías entregarse en manos en él para cargas de trabajo de producción todavía, pero ciertamente puedes constatar con él ahora si tienes instalado Rust 1.85.0 o una interpretación más fresco para compilarlo. Tendremos que esperar hasta Ruby 4.1 para ver si ZJIT positivamente se convierte en el campeón de rendimiento al que aspira el equipo.

Más allá de las nuevas características experimentales, estamos viendo mejoras significativas en la estabilidad y el rendimiento de Ractor, el mecanismo de ejecución paralela de Ruby. Ractor se introdujo como práctico en Ruby 3.0 y el equipo está trabajando para eliminar esa formalidad el próximo año. La puesta al día incluye importantes optimizaciones internas diseñadas para mejorar el paralelismo. Los ractores ahora comparten menos datos internos, lo que reduce la contención de la memoria distinción de la CPU cuando se ejecutan varios subprocesos simultáneamente.

El mecanismo de sincronización de Ractor incluso se ha actualizado con la preparación de una nueva clase citación Ractor::Port. Esta clase proporciona métodos explícitos como receive y send para la comunicación entre Ractors. Esta aditamento da como resultado la matanza de métodos más antiguos y menos intuitivos como Ractor.yield y Ractor#take. Los desarrolladores incluso obtienen nuevos métodos como Ractor#join y Ractor#valueque reflejan el comportamiento llano de los subprocesos cuando esperan que finalice un Ractor. el nuevo Ractor.shareable_proc Asimismo facilita mucho el paso de la deducción entre unidades de ejecución paralelas.

Ruby 4.0 incluso trae varias actualizaciones de calidad de vida para el jerga principal y las clases integradas. Por ejemplo, el jerga ahora permitirá operadores binarios lógicos como && o || para continuar la linde precursor si aparecen al principio de una nueva linde, de forma similar a cómo funciona el cámara de punto fluido.

Una característica que positivamente me gusta es la prosperidad de ErrorHighlight. cuando un ArgumentError se genera, el depurador ahora muestra fragmentos de código tanto para la citación al método como para la definición del método. Esta característica es enorme para la depuración, ya que le permite ver instantáneamente dónde se pasó la cantidad incorrecta de argumentos y dónde se definió el método, todo en un solo fragmento claro.

Las clases principales incluso recibieron una puesta al día centrada en la privacidad. El Kernel#inspect El método ahora averiguación un método privado llamado instance_variables_to_inspect. Adicionalmente, dos componentes de uso global, Pathname y Setestán siendo promovidos de gemas predeterminadas a clases principales.

Esta es una gran puesta al día, pero eso es lo que se paciencia de la interpretación 4.0; Puede obtener el zaguero archivo tarball o zip desde el sitio oficial hoy.

Fuente: Rubí

Related Posts

YouTube asta anuncios de televisión de 30 segundos: ¿qué harás?

Google dice que su nuevo formato de anuncios de 30 segundos para YouTube ya está apto, pero sólo en televisores. YouTube se ha vuelto cada vez más popular en los…

¿Qué iPad es el adecuado para ti? Esto es lo que Apple tiene que opinar

Con el paso de los primaveras, comprar un iPad se ha convertido en una tarea cada vez más confusa. Con múltiples modelos y características y accesorios superpuestos, ya no existe…

You Missed

República Dominicana directorio para malquistar crisis petrolera

República Dominicana directorio para malquistar crisis petrolera

YouTube asta anuncios de televisión de 30 segundos: ¿qué harás?

YouTube asta anuncios de televisión de 30 segundos: ¿qué harás?

Salubridad Pública inicia la profilaxis nonavalente contra VPH

Salubridad Pública inicia la profilaxis nonavalente contra VPH

Hallan despojos de un hombre en Playa La Vacama, en Nisibón

Hallan despojos de un hombre en Playa La Vacama, en Nisibón

Advierten cataclismo 7 grados causaría desastre Santiago

Advierten cataclismo 7 grados causaría desastre Santiago

EE. UU. investigación acercamiento a colchoneta de datos de manutención pueril que podría estilarse para control migratorio

EE. UU. investigación acercamiento a colchoneta de datos de manutención pueril que podría estilarse para control migratorio