Tout juste publiée, la version 1.11 de Julia, le langage à typage dynamique et à haute performance pour le calcul scientifique, propose une nouvelle mémoire type et un conteneur de bas niveau comme alternative à Array (une collection d'objets stockés dans une grille multidimensionnelle). Selon les notes de version, cela en fait un bon choix pour les situations où toutes les fonctionnalités de Array ne sont pas nécessaires. La plus grande partie du type Array est désormais implémentée dans Julia ce qui conduit à des accélérations significatives pour des fonctions du genre push! et rend aussi le code plus facile à maintenir
À noter l’apparition dans Julia 1.11 d'un autre keyword. Les symboles marqués "public" sont considérés comme des API publiques, tandis que les symboles marqués "export" sont également traités comme des API publiques. La différence entre export et public, c’est que les noms publics ne sont pas disponibles lors de l'utilisation d'un module de paquet. De plus, la complétion par tabulation a gagné en puissance et bénéficie d'indications en ligne s’il existe une complétion singulière disponible pouvant être complétée par tabulation
Parmi les caractéristiques de Julia, sont souvent mises en avant les entrées/sorties asynchrones, la métaprogrammation inspirée de Lisp, le profilage et un gestionnaire de paquets sophistiqué et intégré.
Autres caractéristiques de cette mise à jour :
- Le point d'entrée de Julia a été standardisé à Main.main(args) ;
- La macro @time rapporte maintenant toute contention de verrou dans l'appel en cours de chronométrage, comme un nombre de conflits de verrou ;
- ScopedValue implémente la portée dynamique avec l'héritage à travers les tâches ;
- Les fichiers Manifest.toml peuvent désormais être renommés au format Manifest-v{major}.{minor}.toml afin d'être potentiellement pris en compte par la version Julia donnée ;
- La couverture du code et le suivi de malloc ne sont plus générés pendant l'étape de précompilation du paquet. Pendant ces modes, les caches pkgimage sont à présent utilisés pour les paquets qui ne sont pas suivis. Cela signifie que les tests de couverture utiliseront par défaut les caches pkimage pour tous les paquets autres que celui qui est testé, ce qui se traduira probablement par une exécution plus rapide ;
- Lors de la précompilation, les crochets atexit sont dorénavant exécutés avant de sauvegarder le fichier de sortie, ce qui permet aux utilisateurs de supprimer en toute sécurité l'état d'arrière-plan et de nettoyer d'autres ressources lorsque le programme souhaite commencer à se terminer ;
- La spécification d'un chemin dans JULIA_DEPOT_PATH entraîne désormais l'expansion de chaînes vides afin d'omettre le dépôt utilisateur par défaut ;
- Les fichiers de cache de précompilation sont à présent relocalisables et leur validité est vérifiée par le biais d'un hachage du contenu de leurs fichiers source au lieu de leur mtime ;
- L'Unicode 15.1 est pris en charge.
Julia 1.11 a été publiée le 7 octobre après deux versions alpha, deux versions bêta et quatre versions candidates. Cette dernière version est téléchargeable à cette adresse.
Commentaire