|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - explorer
1
« en: Martes 11 de Junio de 2024, 11:59 »
Estos son los cambios que trae la versión v5.40.0, del 9 de junio de 2024. Perl 5.40.0 representa aproximadamente 11 meses de desarrollo desde Perl 5.38.0 y contiene aproximadamente 160 000 líneas modificadas a lo largo de 1500 archivos por parte de 75 autores. Las novedades que trae (entre otras): Cambios principales- Nuevo identificador __CLASS__
Ahora, cuando se usa la característica class, en el código de un método, bloque ADJUST o expresión de inicialización de un campo, se permite usar el nuevo identificador __CLASS__. Éste devuelve el nombre de una clase, de forma similar a __PACKAGE__, pero mientras que este último da el nombre del paquete del código en tiempo de compilación, el identificador __CLASS__ tiene en cuenta la clase a la que pertenece la instancia del objeto, en tiempo de ejecución. Esto es útil para el despachado de métodos de esa clase, especialmente en los constructores, donde no se permite el acceso a $self.
Para más información, consultar "__CLASS__" en perlfunc.
- Atributo :reader para las variables field
Mientras se usa la característica class, las variables field pueden tener un atributo :reader. Esto solicita que se cree un método de acceso de forma automática que simplemente retorne el valor de la variable field, desde la instancia indicada.
Es equivalente a field $nombre; method nombre () { return $nombre; }
Se puede proporcionar un nombre alternativo: field $nombre :reader(obtener_nombre);
Para más detalles ver ":reader" en perlclass. - Se permite un espacio en la opción de línea de comandos -M
Cuando se procesan las opciones en la línea de comandos, perl ahora permite un espacio entre la opción -M y el nombre del módulo que le sigue.
$ perl -M Data::Dumper=Dumper -E 'say Dumper [1,2,3]' Esto coincide con el comportamiento actual de la opción -I.
- Restricciones en las declaraciones de use VERSIÓN
En Perl v5.36 se añadió una advertencia de obsolescencia cuando se degrada una declaración use VERSIÓN desde una que esté por encima de la versión 5.11, hacia abajo. Ahora esto se ha convertido en un error fatal.
Adicionalmente, ahora es un error fatal una posterior declaración use VERSIÓN cuando exista otra en el mismo ámbito, si es una versión 5.39 o superior. Esto es para evitar complicaciones a las funciones léxicas importadas desde builtin. También se añadió una advertencia de obsolescencia para cualquier otra declaración posterior de use VERSION que esté por debajo de la versión 5.39, para avisar que ya no se permitirá en la Perl versión 5.44.
- Nuevas funciones experimentales builtin::inf y builtin::nan
Se han añadido dos nuevas funciones, inf y nan, al espacio de nombres builtin. Actúan como constantes que devuelven los valores en punto flotante infinito y Not-a-Number (No es-un-Número), respectivamente.
- Nuevo operador xor lógico ^^
Perl siempre ha tenido tres operadores lógicos de baja precedencia: and, or y xor, así como tres versiones binarias de alta precedencia: &, | y ^. Hasta esta versión, mientras que también estaban presentes los operadores lógicos de media precedencia && y ||, no existía un equivalente a or-exclusivo. Esta versión de Perl añade el último operador ^^, completando el conjunto.
$x ^^ $y and say "Uno de x o y es verdadero, pero no ambos";
- La característica try/catch ya no es experimental
Antes de esta versión, la característica try/catch para el manejo de errores estaba considerada como experimental. Presentada en Perl versión 5.34.0, se considero que era una característica estable del lenguaje y su uso ya no imprimía una advertencia. Se debe seguir activando con la feature 'try'.
Ver "Manejo de excepciones con Try y Catch" en perlsyn.
- Iterar múltiples valores con for al mismo tiempo ya no es experimental
Antes de esta versión, iterar sobre múltiples valores al mismo tiempo se consideró experimental. Presentada en Perl versión 5.36.0, ahora se considera una característica estable del lenguaje y su uso ya no imprime una advertencia. Ver "Sentencias compuestas" en perlsyn.
- El módulo builtin ya no es experimental
Antes de esta versión, el módulo builtin y todas sus funciones se consideraban experimentales. Presentadas en Perl versión 5.36.0, este módulo se considera ahora estable y su uso ya no imprime una advertencia. Sin embargo, muchas de sus funciones se siguen considerando experimentales.
- La feature empaquetada :5.40 añade try
La última versión de la feature empaquetada contiene ahora la reciente característica estable try. Ya que esta característica empaquetada se usa por la opción -E de línea de comandos, está disponible inmediatamente para los scripts -E.
- use v5.40; importa las funciones builtin
Además de la característica empaquetada de feature, use v5.40; (o siguientes versiones) importa la correspondiente versión de builtin empaquetada. Cambios incompatibles- reset EXPRESIÓN ahora llama a set-magic en escalares
Lo hacía con arrays y hashes, pero no con escalares.
- Llamar a un método import de un paquete desconocido produce una advertencia
Ahora, llamar a un código como este genera una advertencia: [perl] Clase::Que::No::Existe->import("foo");[/perl]
- return ya no permite un objeto indirecto
La sintasix del operador return ahora rechaza los objetos indirectos. En la mayor parte de los casos compilaría e incluso se ejecutaría, pero no estaba documentado y podía producir resultados confusos, por ejemplo:
# note que "sum" no está definido sub sum_positive { # interpretado inesperadamente como: # return *sum, grep $_ > 0, @_; # ... con la palabra suelta actuando como un argumento extra de tipo typeglob } say for sum_positive(-1, 2, 3);
producía: *main::sum 2 3 - Las clases literales ya no se resuelven como manejadores de archivo, en llamadas de método bajo no feature "bareword_filehandles"
Había un error con la ejecución de no feature "bareword_filehandles". Se permitía hacer esto:
no feature 'bareword_filehandles';
FH->binmode intentará resolver FH como una clase, resultando típicamente en un error en tiempo de ejecución. Obsolescencias- Usar goto para saltar desde un ámbito externo a un ámbito interno es obsoleto y se eliminará completamente en Perl v5.42
Nuevas plataformas
2
« en: Viernes 4 de Agosto de 2023, 03:45 »
Estos son los cambios que trae la versión v5.38, del 2 de julio de 2023. Perl 5.38.0 representa aproximadamente 12 meses de desarrollo desde Perl 5.36.0 y contiene aproximadamente 290 000 líneas modificadas a lo largo de 1500 archivos por parte de 100 autores. Las novedades que trae (entre otras): Cambios principales- class
Ahora está disponible una nueva sintaxis experimental para definir clases de objetos, donde los datos de cada instancia se almacenan en variables "field" (campo) que se comportan como variables léxicas.
use feature 'class'; class Punto { field $x; field $y; method cero { $x = $y = 0; } }
Se describe con más detalle en perlclass. Las notas sobre detalles internos de su implementación y otros detalles relacionados se pueden encontrar en perlclassguts. Se queda como característica nueva y experimental, y sigue estando en desarrollo. Será sujeto de más adiciones, refinamientos y alteraciones en versiones futuras. Como es experimental, lanza advertencias en la categoría experimental::class. Se pueden silencias con una sentencia no warnings: use feature 'class'; no warnings 'experimental::class';
- Unicode 15.0
- Las advertencias de obsolescencia tienen ahora subcategorías específicas
Todas las advertencias de obsolescencia tienen ahora su propia categoría de obsolescencia que se puede desactivar individualmente. Puede ver una lista de las características obsoletas en perldeprecation, y en warnings. La siguiente lista es de warnings: +- deprecated ----+ | | | +- deprecated::apostrophe_as_package_separator | | | +- deprecated::delimiter_will_be_paired | | | +- deprecated::dot_in_inc | | | +- deprecated::goto_construct | | | +- deprecated::smartmatch | | | +- deprecated::unicode_property_name | | | +- deprecated::version_downgradeSigue siendo posible desactivar todas las advertencias de obsolescencia con una única sentencia no warnings 'deprecated';
pero ahora es posible tener un control más fino. Como ha sido siempre, estas advertencias se activan automáticamente con Por distintas razonas puede ser dificultoso crear envoltorios de subrutinas para algunos palabra clave de perl. Cualquier palabra clave que tenga un prototipo indefinido, simplemente no se puede envolver con una subrutina, y algunas palabras clave que permiten ese envoltorio, lo hacen mediante trucos muy sucios. Por ejemplo, require es complicado de envolver; es posible hacerlo cambiando la profundidad de la pila, y los métodos estándares de exportación asumen que exportarán a un paquete a una cierta profundidad de la pila, y entonces el envoltorio cambiará esas funciones pero con una implementación muy cuidada. Esto puede ser muy complicado de gestionar. De acuerdo con todo esto, presentamos un nuevo hash llamado %{^HOOK} cuya intención es facilitar tales casos. Cuando una palabra clave soporte cualquier enganche especial entonces el gancho vivirá en este nuevo hash. Los ganchos se nombrarán como la función desde donde se les llama, seguidos por dos guiones bajos y luego por la fase en donde se ejecutan, actualmente puede ser antes o después de ejecutarse la palabra clave. En esta publicación inicial soportamos los ganchos require__before y require__after. Se proporcionan para hacer más fácil la realización de tareas antes y después de una sentencia require. Vea perlvar para más detalles. Se añadió una nueva variable de entorno: PERL_RAND_SEED, que se puede usar para que un programa perl sea repetible, tanto si usa rand sin srand() explícitamente o use srand() sin argumentos. Vea perlrun. Esta característica se puede desactivar en tiempo de compilación pasando -Accflags=-DNO_PERL_RAND_SEED a Configure. - Expresiones de asignación por defecto con defined-or y logical-or en firmas de subrutinas
Se puede asignar ahora la expresión por defecto para el parámetro de una firma de subrutina utilizando los operadores //= y ||=, para aplicar valores por defecto tanto si el llamador proporciona un valor indefinido o falso (respectivamente), en los casos cuando el parámetro no se indica. Para más detalles vea la documentación en perlsub. - @INC Hook Enhancements and $INC and INCDIR
Las internas de los ganchos @INC se han reforzado para manejar varios casos límite y no deberían provocar fallos de segmentación o fallos de aserción cuando los ganchos modifican @INC durante una operación require. Ahora aseguramos que cualquier gancho proporcionado se ejecuta al menos una vez durante una llamada a require, y que cualquier directorio duplicado no dispara pruebas de directorio adicionales. Ahora se da soporte a un nuevo método de enganche llamado INCDIR para proporcionar a los desarrolladores más control sobre la búsqueda de módulos dinámicos. Se puede inyectar un objeto que admita este método en la matriz @INC, y cuando se encuentra en el proceso de búsqueda del módulo, se ejecutará, al igual que se ejecutan los ganchos de INC, y su valor de retorno se usa como una lista de directorios para buscar ese módulo. Devolver una lista vacía actúa como un NO-OP. Tenga en cuenta que dado que cualquier referencia devuelta por este gancho se convertirá y se usará como cadena de caracteres, no puede devolver un gancho para ejecutarse más adelante a través de esta API. Cuando se llama a un gancho @INC (ya sea INC o INCDIR) durante el require, la variable $INC se localizará para ser el valor del índice de @INC del que proviene el gancho. Si el gancho desea anular cuál debería ser el "próximo" índice en @INC, puede actualizar $INC para ser uno menos que el índice deseado ( undef es equivalente a -1). Esto permite que un gancho @INC reescribe por completo la matriz @INC y haga que Perl reinicie sus sondas de directorio desde el comienzo de @INC. Las referencias de CODE bendecidas en @INC que no admiten los métodos INC o INCDIR ya no dispararán una excepción, y en su lugar se tratarán de la misma manera que coderefs sin bendecir, y se ejecutarán como si fueran un gancho de INC. - Ahora se detecta en tiempo de compilación el uso de control de flujo prohibido fuera de defer o finally
Está prohibido intentar dejar un bloque defer o finally por medio de un control de flujo tales como return o goto. Versiones anteriores de perl sólo podría detectarlo cuando se intenta ejecutar en tiempo de ejecución.
Esta versión de perl añade detección en tiempo de compilación para muchos casos que se pueden determinar estáticamente. Esto puede significar que el código que se puede compilar exitosamente en una versión anterior de perl ahora se reporta como un error en tiemp de compilación. Esto sólo sucede en los casos donde ocurriría un error al ejecutar código de todas maneras; ahora el error sucede antes.
- Evaluación optimista en patrones
El uso de (?{ ... }) y (??{ ... }) en un patrón desactiva varias optimizaciones en ese patrón, de forma global. Esto puede ser deseable o no por el programador. Esta publicación añade el equivalente (*{ ... }). La única diferencia es que no desactiva ni desactivará ninguna optimización en el motor regex. Esto puede hacerlo más inestable en el sentido de que puede llamarse más o menos veces en el futuro, sin embargo el número de veces que se ejecuta coincidirá exactamente con el funcinamiento del motor regex. Por ejemplo, ciertos tipos de optimización se desactivan cuando se incluye (?{ ... }) en un patrón, así que los patrones que son O(N) en un uso normal se convierten en O(N*N). Cambiar a (*{ ... }) significa que el patrón se mantendrá en O(N). - REG_INF se ha elevado desde 65 536 a 2 147 483 647
Muchos cuantificadores regex que estaban limitados en el pasado a U16_MAX, ahora están limitados a I32_MAX, así que ahora es posible escribir /(?:word){1000000}/ por ejemplo. Note que hacerlo así puede provocar que el motor de regex se ejecute durante más tiempo y usar más memoria. - Ahora se permite algunos goto en bloques defer y finally
Perl version 5.36.0 añadió bloques defer y permitió que la palabra clave finally añade un comportamiento similar para la sintaxis try/catch. Estos no permiten ninguna expresión goto dentro del cuerpo, ya que podría provocar un salto del control de flujo fuera del bloque. Ahora, se permiten a algunas expresiones goto, si se trata de un destino con una etiqueta constante, y que la etiqueta se encuentre dentro del bloque.
use feature 'defer'; defer { print "This does not execute\n"; LABEL : print "This does\n";}
- Nueva variable de expresiones regulares ${^LAST_SUCCESSFUL_PATTERN}
Permite acceder al último patrón que coincidió de forma exitosa, en el ámbito actual. Muchos aspectos del motor de regex se refieren al "último patrón exitoso". El patrón vacío lo rechaza, y todas las variables regex mágicas se relacionan con él. Esto permite acceder a ese patrón. El código siguiente se puede reescribir como if (m/foo/ || m/bar/) { s/${^LAST_SUCCESSFUL_PATTERN}/PQR/; }
Cambios incompatibles- readline() ya no limpia los indicadores de error y eof
- los bloques INIT ya no se ejecutan después de un exit() en un BEGIN
Obsolescencias- El uso de ' como separador de los nombres del paquete
- switch y el operador Smart Match (coincidencia inteligente)
La característica "switch" y el operador smartmatch ~~, se presentaron en v5.10. Su comportamiento se cambió significativamente en v5.10.1. Cuando el sistema "experiment" se añadió en v5.18.0, switch y smartmatch se declararon experimentales, de forma retroactiva. Durante estos años, se han propuesto y desechado propuestas para arreglarlos o suplementarlos. En v5.38.0, declaramos el experimento como un fallo. Algunos otros sistemas futuros pueden tomar el lugar conceptual de smartmatch, pero no se han diseñado ni construido, todavía. Estas características se eliminarán completamente en Perl v5.42.0.[/list] Plataformas obsoletas
3
« en: Viernes 2 de Septiembre de 2022, 03:35 »
Una posibilidad sería usar una expresión regular:
$linea =~ s/\x0D$//; # quitar el CR final, si está El \x0D representa el código de carácter 13, en formato hexadecimal. El ancla "$" indica que queremos buscar hacia el final de la cadena. O sea: el CR debe estar al final de la cadena, y sólo en esa posición.
Si el patrón de búsqueda coincide, el operador de sustitución s/// realiza el cambio del CR por... nada. O sea, lo quita.
4
« en: Lunes 30 de Mayo de 2022, 13:51 »
Ya tenemos nueva versión de Perl, la v5.36. Perl 5.36.0 representa aproximadamente un año de desarrollo desde Perl 5.34.0 y contiene aproximadamente 250 000 líneas modificadas a lo largo de 200 archivos por parte de 82 autores. Excluyendo los archivos autogenerados, documentación y herramientas de publicación, fueron aproximadamente 190 000 líneas modificadas en 1300 archivos .pm, .t, .c y .h. Las novedades que trae (entre otras): Cambios principales- signatures deja de ser experimental (desde v5.20) y se activa por defecto
use v5.36; sub add($x, $y) { }
Pero algunos elementos de las firmas de subrutina aún quedan como experimentales. - isa considerado característica estable (desde v5.32), por lo que se activa por defecto. Consultar perlop.
- se desactivan las características indirect y multidimensional.
Ya no se puede escribir $x = new Class; ni $x = $hash{3,5,42}; Consultar feature.
- la característica experimental switch (desde v5.10) se ha quitado de use v5.36. Se puede seguir usando (no recomendado), pero hay que activarla explícitamente.
- nueva opción en línea de comandos, -g, es un alias de -0777. Consultar perlrun.
- soporte para Unicode 14.0.
- los "conjuntos regex" ya no se consideran experimentales (desde v5.18). Ejemplo: /(?[ ( \p{Thai} + \p{Lao} ) & \p{Digit} ])/
Esta expresión casa con dígitos que son tanto Thai como Laosianos. Consultar perlrecharclass.
- los vistazos hacia atrás de longitud variable en patrones de exp. reg. ya no se consideran experimentales. Ahora, en "aaz"=~/(?=z)(?<=(a|aa))/, $1 contendrá "aa" (la coincidencia de mayor longitud).
- seguimiento estable de los valores booleanos. Ahora, los valores booleanos resultado de expresiones como !!0 y !!1 así como los de los resultados de funciones y operadores incorporados, mantienen su naturaleza como valor booleano. Hay una nueva función, is_bool() que puede servir para comprobar si un valor es booleano.
- (experimental) iterar sobre múltiples valores al mismo tiempo:
for my ($key, $value) (%hash) { ... } for my ($left, $right, $gripping) (@moties) { ... }
Consultar perlsyn. - (experimental) nuevo módulo builtin.
Ofrece información y acceso a nuevas funciones o a las nuevas funciones incorporadas experimentales. Las de v5.36 son:
- builtin::trim Elimina los espacios en blanco que haya al principio y final de la cadena de texto
- builtin::indexed Devuelve una lista el doble de grande que la lista argumento, con cada elemento precedido por el índice de ese elemento. Esto es útil para recorrer arrays.
use builtin 'indexed'; foreach my ($index, $val) (indexed @array) {
- builtin:true, builtin::false, builtin::is_bool Valores de verdad y función para comprobar si un valor es booleano.
- builtin::weaken, builtin::unweaken, builtin::is_weak Cambio en el tratamiento de referencias a una variable, para ser eliminada o no por el recolector de basura.
- builtin::blessed, builtin::refaddr, builtin::reftype Más información sobre referencias (incluso si no lo son).
- builtin::ceil, builtin::floor Redondeo al entero igual o inferior, o al igual o superior del valor dado.
- (experimental) bloques defer. Definen secciones de código que se ejecutarán durante la salida del ámbito en que se encuentren esos bloques.
use feature 'defer'; { say "This happens first"; defer { say "This happens last"; } say "And this happens inbetween"; }
- (experimental) try/catch ahora tiene un bloque finally. Proporciona código que se ejecutará al final de la construcción.
- (experimental) delimitadores no ASCII para entrecomillar. Ahora se podrá escribir $text = qw« hola adios »;
- (experimental) @_ experimental en firmas de subrutinas. Ejemplo:
use v5.36; sub f ($x, $y = 123) { say "The first argument is $_[0]"; }
provocará una advertencia.
Cambios incompatibles- un sort vacío (sin argumentos), ahora es un fallo en tiempo de compilación.
@a = sort;
Obsolescencias- use VERSION (con VERSION inferior a 5.11) después de un use v5.11 (rebajar de versión), ahora es obsoleto. Ejemplo:
use v5.14; say "say está permitido"; use v5.8; # genera una advertencia print "Debemos usar print\n";
Plataformas obsoletas
- AT&T UWIN
- DOS/DJGPP
- NetWare
6
« en: Sábado 22 de Mayo de 2021, 21:57 »
Ya tenemos nueva versión de Perl, la v5.34. Perl 5.34.0 representa aproximadamente 11 meses de desarrollo desde Perl 5.32.0 y contiene aproximadamente 280 000 líneas modificadas a lo largo de 2100 archivos por parte de 78 autores. Las novedades que trae (entre otras): Cambios principales- Sintaxis experimental para try/catch
use feature 'try'; try { a_function(); } catch ($e) { warn "An error occurred: $e"; }
Para más información, mira " Try Catch Exception Handling" en perlsyn. Ahora se acepta un límite inferior vacío para los cuantificadores de exp. reg., como {,3}. Se permite blancos permitidos dentro pero adyacentes a llaves (en contextos doblemente comillas y patrones de exp. reg.). Esto significa que puede escribir cosas como \x{ FFFC } si quieres. Esto aplica a todas las construcciones, como \b{}, \g{}, \k{}, \N{}, \o{} y \x{}; así como los cuantificadores de exp. reg. {m,n}. \p{} y \P{} retienen sus actuales, incluso pobres, reglas impuestas por el estándar Unicode (vea " Properties accessible through \p{} and \P{}" en perluniprops). Esta habilidad está en efecto sin importar la presencia del modificador de patrones de exp. reg. /x. Adicionalmente, la coma en el cuantificador de exp. reg. con llaves puede tener blancos (tabuladores o espacios) antes o después de la coman, como qr/a{ 5, 7 }/. - Nueva sintaxis octal 0oddddd
Ahora es posible especificar literales octales con el prefijo 0o, como en 0o123_456, paralelo a las construcciones actuales para especificar literales en hexadecimal 0xddddd y literal binario 0bddddd. También, la función oct() acepta ahora esta nueva sintaxis. Vea " Scalar value constructors" en perldata y "oct EXPR" en perlfunc.[/list] Nuevas plataformas- 9front, que es un derivado de Plan9 en plataformas i386.
Plataformas actualizadasPlataformas obsoletas
8
« en: Sábado 23 de Junio de 2018, 19:03 »
Ya tenemos nueva versión de Perl, la v5.28 Perl 5.28.0 representa, aproximadamente, 13 meses de desarrollo desde Perl 5.26.0 y contiene aproximadamente 730 000 líneas modificadas en 2200 archivos por parte de 77 autores. Novedades de esta versión.
9
« en: Jueves 9 de Noviembre de 2017, 23:13 »
Una nueva versión de Rakudo Star, ya disponible para Linux, Windows y Mac. Anuncio: http://rakudo.org/2017/11/09/announce-rakudo-star-release-2017-10/Archivo de descargas: https://rakudo.perl6.org/downloads/star/Recordemos que Rakudo Star es una distribución del compilador Rakudo de lenguaje Perl 6.c, junto con una selección de los mejores módulos. La instalación en Linux es muy sencilla. En --prefix he puesto un directorio donde tengo permiso de escritura: $ wget https://rakudo.perl6.org/downloads/star/rakudo-star-2017.10.tar.gz $ tar xzvf rakudo-star-2017.10.tar.gz $ cd rakudo-star-2017.10/ $ $ perl Configure.pl --backend=moar --gen-moar --prefix=/opt/rakudo $ make $ make rakudo-test $ make install $ $ # aquí, editar el archivo ~/.bashrc para añadir estas dos rutas al PATH $ # /opt/rakudo/bin $ # /opt/rakudo/share/perl6/site/bin $ $ # de forma manual: $ export PATH="/opt/rakudo/bin:/opt/rakudo/share/perl6/site/bin:$PATH" $ $ perl6 -v This is Rakudo Star version 2017.10 built on MoarVM version 2017.10 implementing Perl 6.c.
10
« en: Miércoles 31 de Mayo de 2017, 01:31 »
Ya tenemos nueva versión de Perl, la v5.26.0. Perl 5.26.0 representa, aproximadamente, 13 meses de desarrollo desde Perl 5.24.0 y contiene aproximadamente 360 000 líneas modificadas en 2600 archivos por parte de 86 autores.
12
« en: Martes 2 de Mayo de 2017, 13:18 »
Acaba de salir la última versión de la distribución Rakudo Star, la de mayo de 2017. Van a intentar sacar una nueva versión cada tres meses. Rakudo Star es la combinación del compilador de Perl 6, Rakudo, y un conjunto de bibliotecas seleccionadas. Anuncio (en inglés) Archivos (los instaladores para Windows saldrán en las próximas horas)
13
« en: Sábado 8 de Abril de 2017, 18:08 »
¡Por fin! Después de muchos intentos, ya tenemos fecha para el primer Madrid Perl Workshop. Será el 3 de junio. Entrada gratuita, pero ¡hay que apuntarse! ¿Quieres dar una charla? ¡Adelante! http://madrid.pm.org/workshop/
15
« en: Martes 6 de Diciembre de 2016, 21:13 »
16
« en: Domingo 15 de Mayo de 2016, 20:13 »
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
17
« en: Sábado 26 de Diciembre de 2015, 00:52 »
Pues ya está aquí: una primera versión definitiva de Perl 6. En concreto, se trata de un Rakudo v2015.12, implementando una versión de Perl 6.c Descarga e instalación: http://perl6.org/downloads/Este es el lanzamiento "Christmas" de Rakudo Perl 6. Esta versión del compilador implementa la especificación v6.c “Christmas” del lenguaje Perl 6. La comunidad Perl 6 ha estado trabajando en este lanzamiento los últimos 15 años. Juntos, han construido un lenguaje que: - Retiene los valores principales de Perl: expresividad, tener el trabajo terminado, tomar influencias del lenguaje natural, y llevar al límite el diseño de lenguajes
- Tiene una limpia y moderna sintaxis, arraigada en construcciones familiares pero actualizándolas y revisando aquello que lo necesita
- Es verdaderamente multiparadigma, permitiendo una programación elegante orientada a objetos, funcional, procedural y concurrente
- Sirve como un gran lenguaje pegamento, permitiendo una fácil comunicación con C/C++ (usando NativeCall) y seguir siendo compatible con Perl 5 (a través de Inline::Perl5)
- Ofrece construcciones componibles para trabajar con datos asíncronos y computación en paralelo
- Reforma dramáticamente y establece un nuevo estándar en la sintaxis de expresiones regulares, que escala hasta gramáticas completas, de forma tan poderosa como para interpretar el propio Perl 6
- Tiene un asombroso soporte para Unicode, con cadenas de caracteres trabajando a nivel de grafemas
- Encapsulación y ámbito léxico para valores, permitiendo una fácil refactorización
- Extensible a través de la programación de meta-objetos, operadores definidos por el usuario, y tratos
18
« en: Jueves 15 de Octubre de 2015, 16:00 »
Reunión técnica, el próximo día 20, en las oficinas de idealista, donde Pablo Rodríguez nos dará una charla sobre PDL (Perl Data Language). Convocatoria
19
« en: Sábado 10 de Octubre de 2015, 22:43 »
Gracias a la ayuda de Daniel Dehennin y Paul Cochrane, la implementación Rakudo de Perl 6 está ahora actualizada en Debian/sid. A diferencia de versiones anteriores, Perl 6 en Debian usa el motor moarvm. No se incluye ningún otro motor. Por favor, usa el siguiente comando para instalar Perl6 en Debian: sudo apt-get install rakudoArtículo original (en inglés)
20
« en: Lunes 28 de Septiembre de 2015, 17:03 »
Este domingo pasado, cumpleaños de Larry Wall, marca el inicio del periodo beta del próximo Perl 6. Ya empiezan a salir códigos que muestran la potencia y belleza de este lenguaje: sub postfix:<²>($a) { $a ** 2 }; say 2² + 4²; # 20
sub infix:<♥>($a, $b) { "$a LOVES Perl $b" }; say 'Zoffix'♥'Perl 6'; # Zoffix LOVES Perl Perl 6
21
« en: Domingo 27 de Septiembre de 2015, 15:31 »
La pasada edición de la YAPC::EU 2015 ha sido un éxito de asistencia, contenidos, charlas y tapas. Ahora es tiempo de ver el motivo por el que tú -sí, tú- no fuiste a Granada. De tu opinión sacaremos conclusiones que nos ayude en futuras ediciones (la próxima es en Cluj-Napoca, Transilvania, Rumania). Puedes seleccionar hasta dos opciones.
22
« en: Sábado 26 de Septiembre de 2015, 21:46 »
Ya está abierto el plazo de inscripción para ir al Barcelona Perl Workshop 2015, que se celebrará el próximo día 7 de noviembre.
23
« en: Sábado 26 de Septiembre de 2015, 21:08 »
«Perl 6 es la próxima generación en la familia de lenguajes de programación Perl, y un lenguaje hermano del bien establecido Perl 5. A la espera del lanzamiento de una versión de prueba en septiembre, y un primer lanzamiento público en diciembre, es un buen momento para comprobar sus programas Perl 6. El soporte para Perl 6 se ofrece por parte de Paul Cochrane, Rob Hoelz, Nick Logan y Tony O'Dell». Perl 6 en Travis-CI
24
« en: Miércoles 12 de Agosto de 2015, 08:44 »
Ya está publicada la agenda de eventos (casi 100). Ya podéis escoger el track que más os interesa.
25
« en: Jueves 4 de Junio de 2015, 15:23 »
Ya son más de 200 los registrados, de 33 países y 59 grupos de usuarios, de los cuales más de 100 son los confirmados.
|
|
|