Este lanzamiento incluye el lanzamiento 2012.04.1 del compilador Rakudo Perl 6, la versión 4.3 de la máquina virtual Parrot , diversos módulos, documentación, y otros recursos coleccionados por la comunidad Perl 6.
Algunas de las mejoras presentes en esta distribución:
- muy mejorado el tiempo de arranque
- precompilación de módulos mucho más robusta
- autovivificación para arrays y hashes se ha vuelto a implementar
- algunos subrutinas ejecutas en fases, como PRE, POST y REDO ahora están implementadas
- soporte mejorada para las llamadas a funciones C y modelado de estructuras y arrays a través de NativeCall.pm6
- ahora se incluyen los módulos URI, LWP::Simple, jsonrpc y Bailador (una versión Perl 6 de Dancer)
También contiene un conjunto de fallos arreglados, mejoras en el reporte de errores y mejores modos de fallo. Muchas más excepciones son ahora gestionadas como excepciones de un tipo definido.
Algunos cambios notables e incompatibles con respecto al lanzamiento anterior, son:
- el directorio ‘lib’ ya no se incluye en la ruta por defecto de búsqueda de módulos. Puedes manipular la ruta de búsqueda con la variable de entorno PERL6LIB.
- ‘defined’ será un operador prefijo, y ahora es una subrutina normal. Esto significa que debes actualizar el código que use ‘defined’ tomando solo un argumento. Por ejemplo, ‘defined $x ?? $a !! $b’ deberá ser escrito como ‘$x.defined ?? $a !! $b’ o ‘defined($x) ?? $a !! $b’.
Hay algunas características claves de Perl 6 que Rakudo Star todavía no maneja apropiadamente, aunque aparecerán en los siguientes lanzamientos. Algunas de las características no presentes son:
- pack y unpack
- macros
- hebras y concurrencia
- cadenas Unicode a otros niveles aparte de los puntos de código
- entrada interactiva que entienda Unicode
- E/S no bloqueante
- la mayor parte de Synopsis 9
Hay un nuevo recurso en línea en http://perl6.org/compilers/features que lista las características que se sabe implementadas y las que aún faltan, de Rakudo Star 2012.04 y otras implementaciones Perl 6.