La mise à jour Clojure 1.10 prend en charge modern Java
Après la version 8,Le langage JVM fonctionnel permet d’obtenir plus de détails sur les erreurs de programmation avec le modern Java.
Les nouveautés de Clojure 1.10
La nouvelle version 1.10 supporte Java 8 à Java 11. Elle met à jour le système de modules introduit dans Java 9, corrige les bogues liés au bytecode et supprime les API obsolètes. Les rapports d’erreurs au REPL (read-eval print loop) classent désormais les erreurs en fonction de la phase d’exécution, comme read, compile et macroexpand. Des informations supplémentaires sont également fournies sur l’emplacement et le contexte des données. Les rapports contiennent aussi des messages d’erreur spécifiques à la phase, avec une information plus précise sur la localisation. Cette fonctionnalité est intégrée dans le REPL clojure.main, mais elle est également disponible pour d’autres REPL et outils, et les développeurs peuvent utiliser et modifier les données pour produire de meilleurs messages d’erreur.
Autres fonctionnalités de Clojure 1.10 on peut citer :
– Defprotocol : cette fonction sert à définir un ensemble désigné de méthodes et leurs signatures. Elle comporte une nouvelle option « :extend-via-metadata » : quand cette option est vraie, les valeurs peuvent étendre les protocoles en ajoutant des métadonnées où les clefs sont des symboles de fonction de protocole qualifiés et les valeurs, des implémentations de fonction.
– Tap : cette fonction fournit un système partagé pour la distribution d’informations ou de diagnostics à un ensemble de fonctions de gestion. Elle peut servir à déboguer la capacité prn du noyau ou pour des fonctions comme la journalisation.
– La fonction « read+string » imite la fonction « read », mais capture également la chaîne de caractères lue et renvoie à la fois la valeur lue et la chaîne lue.
– Une version pré-bêta de Prepl fournit un REPL à base de flux avec une sortie structurée, adaptée à l’usage programmatique.
– La fonction clojure/datafy pour la transformation object-to-data dispose des fonctions « datafy » et « nav » pour transformer et naviguer dans les graphes d’objet.