Greboca  

DLFP - Dépêches  -  Sortie de LLVM, Clang, lld, lldb 8.0.0

 -  22 mars - 

Après cinq versions candidates, l’étiquette finale a été apposée sur la branche 8.0.0 de la famille LLVM.

Cette dépêche reprend les points importants des notes de sortie associées. C’est une sélection totalement biaisée, libre à vous de lire les journaux des modifications respectifs pour avoir tous les détails !

LLVM

[Notes de version]

  • possibilité (sous x86) de fournir un profil d’accès mémoire afin de limiter le nombre de défauts de cache [RFC] ;
  • le back‐end Webassembly gagne le statut stable !
  • les personnes développant des extensions LLVM doivent maintenant utiliser add_llvm_library au lieu de add_llvm_loadable_module pour enregistrer leurs extensions.

Clang

[Notes de version]

  • possibilité de fournir un fichier de renommage pour utiliser les informations de profilage d’une version A d’un binaire pour recompiler une version B [doc] ;
  • possibilité de forcer la valeur des variables déclarées sur la pile ou en mises en registre, au lieu de les laisser non initialisées, en utilisant -ftrivial-auto-var-init=pattern ;
  • quelques warnings de plus :
    • -Wextra-semi-stmt pour détecter les points virgules inutiles, mais en ignorant certains cas liés à l’expansion de macros,
    • -Wempty-init-stmt détecte les initialisations vides dans le contexte de conditions/boucles (c’est du C++17, [spec]) ;
  • ajout du builtin __builtin_rotateleft32 ;
  • introduction de -mspeculative-load-hardening pour se prémunir de la famille de failles dite Spectre [rtd] ;
  • OpenMP 5 mieux géré, et pas mal d’améliorations du côté d’OpenCL ;
  • l’undefined behavior sanitizer, déclenché par -fsanitize=undefined, a gagné plusieurs extensions, dont une qui vérifie les contraintes d’alignement ;
  • clang-format voit sa gestion des reformatages de macros améliorée.

Extra Clang Tools

[Notes de version]

clangd

clangd est un démon qui fournit un service de type complétion, etc., à ces clients.

  • meilleure intégration avec le Language Server Protocol ;
  • plusieurs optimisations (taille et vitesse) pour la gestion des grosses bases de code.

clang-tidy

clang-tidy est un outil de vérification de code.

  • un bon paquet de tests pour l’utilisation de la bibliothèque abseil ;
  • un autre paquet de tests pour la modernisation de code (p. ex. : remplacement de tableaux à taille fixe par des std::array) ;
  • quelques tests autour des CppCoreGuidelines.

lld

[Notes de version]

  • choix de l’adresse de chargement des binaires comme un multiple d’une superpage, pour améliorer la vitesse de chargement dans les cas où le système cible prend en charge les *superpage*s — si comme moi tu ne sais pas ce qu’est une super‐page, clic clic ;
  • autre choix assez amusant : la section .note qui contient de précieuses informations (comme le build-id) est maintenant placée en début de fichier pour être présente dans les core files, même s’ils sont tronqués ;
  • des améliorations pour le format COFF et pour l’environnement MinGW, où l’on voit que Windows n’est pas une plate‐forme laissée de côté par LLD.

lldb

  • coloration syntaxique (pour C) et complétion de code.

Notes de fin

Cette version de LLVM est la dernière compilable avec GCC 4.8, les versions minimales requises augmentent, pour les raisons évoquées dans ce fil de discussion.

Et c’est aussi probablement la dernière version sous Subversion, le choix a été fait de passer à un dépôt unique (a.k.a. monorepo) sous Git. Pas mal de doc à ce sujet ici, ou encore dans ce coin.

Commentaires : voir le flux atom ouvrir dans le navigateur

par serge_sans_paille, Ontologia, Benoît Sibaud, tankey, Sylvestre Ledru, Davy Defaud, palm123, Bruno Michel

DLFP - Dépêches

LinuxFr.org

Sortie de GNU Compiler Collection 9.1

 -  8 mai - 

La nouvelle version de la collection de compilateurs GNU est sortie le 3 mai 2019. Plus qu’à son habitude, elle apporte de très nombreuses (...)


Pijul, contrôle de version et théorie des patchs, version 0.12

 -  29 avril - 

Pijul est un système de contrôle de version distribué (DVCS) développé en Rust et publié sous licence GPL v2. Il est basé sur une théorie des patches. (...)


De Sozi 12 à Sozi 19

 -  29 avril - 

Sozi est une alternative à Prezi, un logiciel de création de présentations animées. En lisant un journal récent à propos d’un éditeur de SVG (...)


Jeu de stratégie temps réel et de construction/gestion Unknown Horizons 2019.1

 -  28 avril - 

Le jeu libre Unknown Horizons mélange la stratégie en temps réel et la construction/gestion de villes (solo ou multi‐joueur, Windows et GNU/Linux). (...)


Publication du SILL 2019

 -  26 avril - 

Le SILL, socle interministériel de logiciels libres 2019 vient de sortir. C’est le référentiel des logiciels libres recommandés par l’État français. (...)