Dart 2.15 arrive avec des groupes isolés, des améliorations d'exécution et plus encore

Google a récemment dévoilé le lancement du nouvelle version du langage de programmation Dart 2.15, qui poursuit le développement d'une branche radicalement repensée de Dart 2 et qui diffère de la version originale du langage Dart par l'utilisation d'un typage statique fort (les types peuvent être déduits automatiquement, il n'est donc pas nécessaire de spécifier les types, mais le typage dynamique n'est plus utilisé et est initialement calculé, le type est affecté au variable, puis une vérification de type stricte est appliquée).

Dans cette nouvelle version, diverses améliorations ont été implémentées et surtout l'introduction de quelques nouvelles fonctionnalités telles que des groupes isolés et aussi des solutions à certaines vulnérabilités détectées.

Principales nouveautés de Dart 2.15

Dans cette nouvelle version de Dart 2.15 des outils sont fournis pour une exécution parallèle rapide de tâches avec isolation du contrôleur.

En plus que dans les systèmes multicœurs, le temps d'exécution Dard, par défaut, exécute le code d'application sur un cœur de processeur et utilise d'autres cœurs pour effectuer des tâches système telles que les E/S asynchrones, l'écriture dans des fichiers ou les appels réseau.

Une autre nouveauté introduite par Dart 2.15 est un nouveau concept, groupes isolés, (isoler les groupes) permettant un accès partagé à différentes structures de données internes dans des isolats appartenant au même groupe, ce qui peut réduire considérablement les frais généraux lors de la communication avec les agents d'un groupe. Par exemple, le démarrage d'un isolement supplémentaire sur un pool existant est 100 fois plus rapide et nécessite 10 à 100 fois moins de mémoire que le lancement d'un isolement séparé, éliminant ainsi le besoin d'initialiser les structures de données du programme.

Malgré le fait que dans des blocs isolés d'un groupe, l'accès partagé aux objets mutables est toujours interdit, les groupes utilisent la mémoire dynamique partagée, accélérant considérablement le transfert d'objets d'un bloc à un autre sans avoir besoin d'opérations de copie gourmandes en ressources.

Dans la nouvelle version, il est également permis de transmettre le résultat du travail du contrôleur lorsque Isolate.exit () est appelé pour transmettre les données au bloc d'isolement principal sans effectuer d'opérations de copie. De plus, une optimisation du mécanisme de transmission des messages a été réalisée : les messages petits et moyens sont désormais traités environ 8 fois plus rapidement. Les objets qui peuvent être transmis entre les isolats à l'aide de l'appel SendPort.send () incluent divers types de fonctions, de fermetures et de traces de pile.

Dans les outils de création de pointeurs à des fonctions individuelles dans d'autres objets, les restrictions sur la création de tels pointeurs ont été supprimées dans le code du constructeur, qui peut être utile lors de la création d'interfaces basées sur la bibliothèque Battement.

La bibliothèque dart: core a amélioré la prise en charge de l'énumération, par exemple, vous pouvez désormais générer une valeur de chaîne à partir de chaque valeur d'énumération à l'aide de la méthode ".name", obtenir des valeurs par nom ou faire correspondre des paires de valeurs.

Il est également souligné que une technique de compression de pointeur a été implémentée, qui permet d'utiliser une représentation plus compacte des pointeurs dans les environnements 64 bits si l'espace d'adressage de 32 bits est suffisant pour l'adressage (pas plus de 4 Go de mémoire utilisée). Des tests ont montré qu'une telle optimisation réduit la taille du tas d'environ 10 %. Dans le SDK Flutter, le nouveau mode est déjà activé par défaut pour Android et il est prévu de l'activer pour iOS dans une future version.

En outre il est à noter que le référentiel pub.dev a désormais la possibilité de révoquer une version déjà publiée d'un paquet, par exemple, en cas de bugs dangereux ou de vulnérabilités.

De l' autres changements qui se démarquent:

  • Protection supplémentaire contre la vulnérabilité (CVE-2021-22567) causée par l'utilisation de caractères Unicode qui modifient l'ordre d'affichage dans le code.
  • Correction d'une vulnérabilité (CVE-2021-22568) qui pouvait usurper l'identité d'un autre utilisateur pub.dev lors de la publication de packages sur un serveur tiers qui accepte les jetons d'accès oauth2 de pub.dev.
  • Le SDK Dart comprend des outils de débogage et d'analyse des performances (DevTools), qui étaient auparavant livrés dans un package séparé.
  • Des outils ont été ajoutés à la commande "dart pub" et aux référentiels de packages pub.dev pour suivre la diffusion accidentelle d'informations sensibles, par exemple en laissant des informations d'identification pour les systèmes d'intégration continue et les environnements cloud dans le package.
  • Si de telles fuites sont trouvées, la commande "dart pub publish" s'arrêtera avec un message d'erreur. En cas de fausse alerte, il est possible de passer le contrôle via la liste blanche.

source: https://medium.com/


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.