Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.
C’est alors la barrière de la prise en main qui fait peur, et pourtant...
Les logiciels libres
L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.
Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.
Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.
Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.
- Octobre 2020 -
Demat'iNal,
Après 6 release candidates, la version 11.0.0 de l'écosystème LLVM a finalement été rendue publique.
LLVM suit un cycle de sortie de 6 mois, quelles sont donc les grandes nouveautés ? On notera déjà l'arrivée du compilateur Flang dans la suite officielle LLVM, qui se dote ainsi d'un compilateur Fortran. Il vient remplacer le peu usité llvmgo
qui a été retiré du dépôt officiel.
LLVM possédait déjà un type vectoriel, p.e.
pour un vecteur de 4 entiers 32 bits. Ce type de taille fixe est maintenant complété par un type vectoriel de taille variable, noté
pour un vecteur de 4, 8, 12 etc entiers de 32 bits, pour pouvoir cibler des jeux d'instruction comme SVE de ARM.
Plusieurs ajustements ont été faits pour la gestion propagation des valeurs poison et undef. Le lecteur intéressé se délectera de cette video du LLVM Virtual Developer Meeting sur la différence entre undef et poison.
Il est maintenant possible de positionner l'attribut probe-stack
à "inline-asm"
ce qui fournit, sur les architectures x86 (implémenté par votre serviteur), SystemZ et PowerPC, une protection contre l'attaque stack clash
Clang est maintenant doté d'un recoverable AST, qui permet de mieux gérer la représentation des erreurs; En cas d'erreur de syntaxe, le code suivant l'erreur est plus facilement parsé dans de bonnes conditions. Cette fonctionnalité est activée par défaut pour le front-end C++.
De nouveaux avertissements voient le jour : -Wpointer-to-int-cast
, Wuninitialized-const-reference
et -Wimplicit-const-int-float-conversion
. Leur dénommination me parait suffisament explicite ;-)
Clang fournit désormais des types intrinsèques, _ExtInt(N)
où N
est un entier spécifiant la taille du type entier. Cela permet de déclarer des entiers de 57 bits.
Les projets reposant sur une génération a priori des profiles utilisés par les options de Profile Guided Optimization devront regénérer leurs profiles, l'algorithme de hash utilisé ayant reçu un correctif de bug par votre serviteur.
L'option -O
est dorénavant un alias de -O1
et non plus -O2
.
En spécifiant -fpic/-fPIC -fno-semantic-interposition
la sémantique d'interposition requise par ELF n'est plus respectée, pour le plus grand plaisir des optimisations.
L'option -fstack-clash-protection
permet de tirer parti des protéctions contre stack clash implémentée au niveau LLVM.
Plusieurs options relatives à la gestion des nombres flottants: -ffp-exception-behavior={ignore,maytrap,strict}
et -ffp-model={precise,strict,fast}
.
D'un point de vue langage, le support d'OpenMP5 a été amélioré, la version du standard C utilisée par défaut est gnu17, la defect report P1766R1 qui restreint l'usage de structure anonymes dans un typedef, à la C, est appliquée de manière rétroactive à toutes les version de C++
Others
la suite de compilation LLVM inclut également des outils basés sur clang, un éditeur de lien, lld, une implémentation de la bibliothèque standard C++, libc++, un optimiseur polyhèdrique polly, et, pour ceux qui ont suivi, un compilateur Fortran flang.
En vrac, Flang supporte Fortran2018,
fait son arrivée dans la libc++, pas mal de travail niveau performance et de nouveaux diagnostiques dans clangd
et plein d'autres choses que je ne comprends pas bien ;-)
Je vous invite à lire leur notes si ces sujets vous intéresse !
Commentaires :
voir le flux Atom
ouvrir dans le navigateur