Sortie de Julia 1.1 RC 1
Le langage dynamique à haute performance retravaille sa gestion des exceptions empilées

Le , par dourouc05, Responsable Qt & Livres
Le développement de Julia, langage de programmation dynamique de haute performance, se poursuit. La version 1.0 devait être la base du langage pour les versions à venir sans perte de rétrocompatibilité : aucune fonctionnalité ne peut disparaître d’ici à Julia 2.0. Cette garantie est prévue pour faciliter l’utilisation à plus grande échelle du langage.

Julia 1.1 apporte peu de nouvelles fonctionnalités, mais celles-ci devraient simplifier la vie des développeurs. Tout d’abord, les exceptions peuvent désormais s’empiler : si le code lance une exception pendant le traitement d’une exception, les deux sont gardées dans une pile. Auparavant, la première exception était écrasée par la seconde. Cela permettra de déboguer plus facilement le code, en remontant directement à la cause première. La méthode catch_stack est disponible pour accéder à cette pile ; pour le moment, l’implémentation est expérimentale et l’API pourrait changer. L’opérateur ~ est souvent utilisé en probabilités pour indiquer qu’une variable aléatoire suit une certaine distribution de probabilité ; Julia dispose de cet opérateur depuis un certain temps, mais celui-ci ne pouvait pas s’appliquer sur des vecteurs : le compilateur ne comprenait pas la forme .~, ce qui est maintenant le cas.

Les méthodes findmin, findmax et findall ne retournaient pas toujours le même type pour indiquer quels éléments correspondent à la requête. Désormais, quand la recherche se fait dans une matrice ou un tableau d’ordre supérieur, ces méthodes renvoient des objets CartesianIndex. Ce changement casse légèrement la compatibilité avec le code existant, mais il a été estimé qu’il aurait dû être effectué pour la 1.0 et que c’était donc un défaut.

La bibliothèque standard s’est enrichie d’une série de méthodes. Par exemple, splitpath pour convertir un chemin en ses différentes composantes ; isnothing pour déterminer si l’argument est nothing ou non (par exemple, une donnée absente) ; eachrow, eachcol et eachslice pour itérer efficacement sur des morceaux de tableaux ; les systèmes BSD disposent d’une série de méthodes pour les détecter et, au besoin, adapter le code.

Voir aussi : la liste complète des changements.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :
Responsable bénévole de la rubrique HPC : Thibaut Cuvelier -

Partenaire : Hébergement Web