f18 officiellement proposé comme sous-projet LLVM
Le compilateur Fortran libre développé notamment par NVIDIA

Le , par dourouc05

69PARTAGES

13  0 
La suite de compilateurs LLVM est notamment connue pour Clang, son compilateur C et C++, mais aussi pour la kyrielle d'autres projets qui utilisent son infrastructure afin de faciliter leur développement ]comme Julia, qui utilise LLVM pour garantir une exécution extrêmement rapide).

Il y a de cela un certain temps (en 2015, précisément), NVIDIA voulait ajouter Fortran à la liste des langages implémentés par LLVM, avec le projet Flang. Il a fallu du temps avant que le projet soit vraiment officialisé. Le développement a eu lieu avec bien d'autres parties intéressées, comme ARM ou le DoE (ministère américain de l'énergie). Désormais, NVIDIA cherche à faire intégrer le code source du successeur de Flang, f18, dans le projet LLVM, au même niveau que Clang.

Pour le moment, f18 implémente une bonne partie du langage Fortran : l'analyse syntaxique gère toute la norme Fortran 2018 ainsi qu'OpenMP 4.5, même si toute l'infrastructure derrière cette analyse syntaxique n'est pas encore prête. L'objectif de ses développeurs est de soumettre le code à LLVM (y compris l'implémentation de la bibliothèque standard), puis de continuer le développement des fonctionnalités manquantes : il faut encore effectuer un certain nombre de refactorisations (notamment pour découpler la bibliothèque standard du compilateur), des choix cohérents avec le reste de l'infrastructure LLVM doivent être posés.

Le plus gros frein, selon les développeurs de f18, est l'utilisation de C++17 pour l'implémentation du compilateur, alors que LLVM est en pleine transition vers C++14 (un processus assez lent pour s'assurer que tous ceux qui utilisent LLVM ne soient pas tirés en arrière par des besoins trop évolués). Certains développeurs de LLVM trouvent que ce n'est pas un problème, puisqu'il n'y a pas de rétrocompatibilité cassée : f18 est un tout nouveau projet pour LLVM ; certains ressortent des excuses basées sur le fait que toutes les machines utilisées par le projet LLVM ne sont pas forcément assez à jour pour C++17, ce qui limiterait les possibilités en termes d'intégration continue. L'intégration des deux projets pourrait aussi être limitée par le fait que certains développeurs de LLVM pourraient souhaiter utiliser certaines fonctionnalités de f18 dans d'autres parties du projet.

Source : GitHub, LLVM Mailing list

Une erreur dans cette actualité ? Signalez-le nous !

Responsable bénévole de la rubrique HPC : Thibaut Cuvelier -

Partenaire : Hébergement Web