Tenemos el placer de anunciar v5.24.0, la primera versión estable de la versión 24 de Perl 5.
Pronto podrá descargarlo Perl v5.24.0 de su espejo CPAN favorito o encontrarlo en:
https://metacpan.org/release/RJBS/perl-5.24.0/Las firmas SHA1 de este lanzamiento son las siguientes:
298fa605138c1a00dab95643130ae0edab369b4d perl-5.24.0.tar.bz2
35770ea5cf49a1082852c2300ccc3cbbc58b70fd perl-5.24.0.tar.gz
9d5424ac2debe979d1f7255fe0c818aff0b41b4c perl-5.24.0.tar.xz
Puede encontrar una lista de cambios en el archivo "perldelta.pod" localizado en el directorio "pod" dentro de la distribución, y
en la web.
Perl 5.24.0 representa, aproximadamente, 11 meses de desarrollo desde Perl 5.22.0 y contiene aproximadamente 360 000 líneas de cambios a lo largo de 1800 archivos por parte de 77 autores.
Excluyendo los archivos auto-generados, la documentación y las herramientas de la distribución, son aproximadamente 250 000 líneas de cambios en 1200 archivos .pm, .t, .c y .h.
Perl continúa floreciendo en su tercera década gracias a una vibrante comunidad de usuarios y desarrolladores.
Esperamos publicar hoy perl v5.25.0, seguido por perl v5.25.1 el 20 de mayo. La siguiente distribución estable de Perl 5, versión 26.0, debería aparecer en mayo del 2017.
Nuevas características- La desreferencia postfija ya no es experimental
- Soporte para Unicode 8.0
- Excepción si falla el cierre de un archivo abierto en escritura
- Nueva frontera \b{lb} en expresiones regulares
- qr/(?[ ])/ ahora funciona en localizaciones UTF-8
- Desplazamientos de enteros (<< y >>) ahora se definen de forma más clara
- printf y sprintf ahora permiten reordenar la precisión de los argumentos
- Hay más campos para la retrollamada sigaction con SA_SIGINFO
- Redirección del hashbang a Perl 6
Cambios incompatibles- Se ha eliminado la característica de autodesreferencia.
- Se ha eliminado $_ léxica
- qr/\b{wb}/ se ha adaptado ahora a las expectativas de Perl
- Errores de compilación en expresiones regulares
- qr/\N{}/ queda ahora desactivada bajo 'use re "strict"'
- Ya no se permiten declaraciones anidadas
- Se ha eliminado la clase de caracteres /\C/
- chdir('') ya no cambia al directorio inicial
- Los caracteres ASCII en nombres de variables deben ser ahora todos visibles
- Ahora solo se permiten blancos y tabuladores dentro de [...] dentro de (?[...])
Obsolescencias- Usar puntos de código por encima del IV_MAX de la plataforma
- Hacer operaciones de bit en cadenas que contengan puntos de código por encima del 0xFF
- sysread(), syswrite(), recv() y send() son obsoletos en gestores de archivo :utf8
Mejoras- La sobrecarga de la entrada y salida de contextos se ha reducido considerablemente, así que, por ejemplo, las llamadas a subrutinas, bucles y bloques básicos son ahora mucho más rápidos
- Muchos idiomas, como el Chino, no tienen tamaño de caja. Pero ahora conoce los más comunes, y se salta mucho del trabajo que un programa intenta hacer para cambiar el tamaño de caja en ellos (como ucfirst()) o en las coincidencias independientes del tamaño de caja (qr//i). Esto acelerará el programa, como en un servidor web, que puede operar en múltiples idiomas
- /cadena fija/ se ha hecho mucho más rápido. En plataformas con una implementación memchr() de libc que hace un buen uso del soporte de hardware subyacente, los patrones que incluyan subcadenas fijas serán mucho más rápidas
- Adición, substracción y multiplicación más rápidas. Desde 5.8.0, la aritmética se volvió más lenta debido a la necesidad de soportar enteros de 64 bit. Para gestionar enteros de 64 bit, era necesario comprobar muchos más casos extremos, que añadía tiempo. Ahora detectamos los casos comunes donde no es necesario comprobar estos casos extremos
- El preincremento, predecremento, postincremento y postdecremento se han hecho más rápidos dividiendo internamente las funciones que manejaban múltiples casos en funciones diferentes
- Argumentos únicos en asignaciones de lista ahora son ligeramente más rápidos
- Se usa menos memoria al compilar patrones de expresiones regulares