Recherche de site Web

Debian Instable passe à Perl 5.40


Debian Unstable a été mis à jour vers Perl 5.40.0, apportant une gamme de nouvelles fonctionnalités, des mises à jour de sécurité et des corrections de bogues. Le développeur Debian Niko Tyni a annoncé la transition sur la liste de diffusion Debian, notant que les utilisateurs devraient s'attendre à une désinstallabilité généralisée dans sid (le nom de code pour Debian Unstable) pendant quelques jours jusqu'à ce que les reconstructions nécessaires soient terminées.

Les nouveaux paquets Perl apparaîtront d'abord dans la branche Instable de Debian. De là, ils passeront à la branche Testing et seront probablement inclus dans la prochaine version stable de Debian, probablement l'année prochaine.

La mise à niveau de Debian Unstable vers Perl 5.40.0 est une avancée notable. Elle introduit de nouvelles fonctionnalités du langage, améliore la sécurité et corrige de nombreux bugs. Parlons de certaines nouvelles fonctionnalités, améliorations et changements notables dans Perl 5.40.

Nouvelles fonctionnalités dans Perl 5.40.0

Perl 5.40.0 est une version majeure avec plusieurs améliorations, y compris :

  • Le mot-clé class : Ce nouveau mot-clé permet aux développeurs d'écrire un code Perl plus moderne et orienté objet. À l'intérieur d'une méthode, d'un bloc ADJUST ou d'une expression d'initialisation de champ, le mot-clé __CLASS__ renvoie le nom de la classe de l'instance d'objet actuelle. Cela facilite la distribution des méthodes, en particulier dans les constructeurs où l'accès à $self n'est pas autorisé.
  • Espace dans l'option de ligne de commande -M : Perl permet désormais un espace entre l'option -M et le nom du module qui suit, reflétant le comportement de l'option -I.
  • Opérateur logique XOR (^^) : Un nouvel opérateur logique XOR (^^) a été introduit, complétant l'ensemble des opérateurs logiques et binaires.
  • Stabilisation de try/catch et de l'itération for multi-valeur : Les fonctionnalités introduites dans les versions précédentes, try/catch pour la gestion des exceptions et l'itération sur plusieurs valeurs avec for, sont désormais considérées comme stables et ne déclenchent plus d'avertissements.
  • Stabilisation du module builtin : Le module builtin, introduit dans Perl 5.36.0, est désormais considéré comme stable. Cependant, certaines fonctions du module restent expérimentales.
  • use v5.40 bundle de fonctionnalités : Utiliser use v5.40; (ou une version ultérieure) importe le bundle de fonctionnalités correspondant, y compris la fonctionnalité try récemment stabilisée. De plus, il importe le bundle de version builtin pertinent.

Améliorations de la sécurité

Deux vulnérabilités de sécurité importantes ont été corrigées dans cette version :

  • CVE-2023-47038 : Cette vulnérabilité concernait un débordement de tampon potentiel via une expression régulière conçue. Elle a été corrigée dans les versions 5.30.0 à 5.38.0.
  • CVE-2023-47039 : Une vulnérabilité de détournement binaire spécifique à Perl pour Windows a été corrigée. Cette vulnérabilité découle de la dépendance de Perl au chemin système pour localiser cmd.exe, le rendant susceptible d'exploitation en plaçant un cmd.exe malveillant dans un répertoire aux permissions faibles.

Modifications notables

La mise à niveau comprend également quelques modifications incompatibles :

  • reset EXPR comportement : reset EXPR invoque désormais "set-magic" sur les scalaires, pouvant potentiellement provoquer des changements dans les états internes ou déclencher des exceptions.
  • Appel de la méthode d'importation d'un package indéfini : Appeler import ou unimport sur une classe indéfinie avec un argument génère désormais un avertissement, aidant à détecter les fautes de frappe et les usages potentiellement incorrects.
  • Interdiction des objets indirects avec return : L'opérateur return ne permet plus les objets indirects, éliminant une source de confusion.
  • Restriction sur les mots nus de classe dans les appels de méthodes : Les mots nus de classe ne sont plus interprétés comme des gestionnaires de fichiers dans certains appels de méthodes sous la condition no feature "bareword_filehandles".

Mises à jour du module

Plusieurs modules principaux ont été mis à jour, avec des améliorations notables incluant :

  • Archive::Tar mis à jour de 2.40 à 3.02_001.
  • Term::Table ajouté au noyau (version 0.018).
  • Test2::Suite ajouté au noyau (version 0.000162), fournissant des outils pour des tests unitaires complets.
  • module intégré : La fonction load_module() ajoutée.

Divers autres modules ont reçu des mises à jour, y compris mais sans s'y limiter bytes, Compress::Raw::Bzip2, Compress::Raw::Zlib, Data::Dumper, DB_File, Devel::Peek, Devel::PPPort, diagnostics, et bien d'autres.

La liste complète des changements est documentée dans le document delta de Perl, qui fournit des informations détaillées pour les développeurs. Si vous rencontrez des problèmes que vous pensez être des bugs, veuillez suivre les instructions de signalement sur https://github.com/Perl/perl5/issues.

Ressource:

  • Transition vers Perl 5.40 en cours