Greboca  

Suport technique et veille technologique

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.

DLFP - Dépêches  -  LLVM 2.9 !

 -  Avril 2011 - 

La version 2.9 de LLVM vient de sortir et a été annoncée par Chris Lattner le 6 avril !
Pour ceux qui se posent encore la question, LLVM est une suite de compilation concurrente de GCC, sous licence UIUC (semblable à BSD), qui a pour but de produire des briques de bases modulaires pour construire toute sorte de programmes : compilateurs, debugger, assembleur, etc. L'aspect hautement modulaire permet également de pouvoir travailler sur une petite partie et d'en faire bénéficier toutes les autres. C'est notamment le cas des optimisations : en effet, LLVM utilise une représentation intermédiaire (IR) parfaitement spécifiée et les optimisations se font sur cette représentation. Et ce n'est qu'un des nombreux avantages de LLVM.

Cette version 2.9 permet de consolider plein d'aspects de LLVM. Parmi les nouveautés principales, on notera :

  • la génération de code a été améliorée, en particulier pour l'architecture ARM ;
  • l'optimisation au moment de la liaison (LTO) a été améliorée également ;
  • un nouvel allocateur de registre a été écrit, mais n'est pas activé par défaut pour cette sortie ;
  • l'infrastructure Machine Code est désormais utilisée par défaut pour produire du code objet directement (plutôt que de passer par un assembleur externe) ;
  • Clang, le compilateur C/C++/Objective-C/Objective-C++ gère le C++0x de mieux en mieux, avec l'ajout des rvalue references et des variadic templates ;
  • LLDB, le débugger du projet LLVM, atteint un certain stade de maturité alors que ce n'était qu'un projet larvaire à la dernière sortie.

LLVM 2.9

Parmi les autres nouveautés concernant les projets LLVM pour cette sortie :

Clang

Clang a fait de gros progrès depuis la dernière fois et est considéré comme un outil de production. Il prend en charge une partie de plus en plus importante de la future norme C++. Il est aussi capable de compiler un noyau Linux (avec cependant quelques limites, notamment au niveau de l'API crypto qui utilise des extensions GNU) et la machine virtuelle Java HotSpot.

DragonEgg

DragonEgg est un greffon pour GCC qui remplace le backend de GCC par celui de LLVM. Ce projet se stabilise mais n'est pas encore considéré comme suffisamment mûr. Pour cette sortie, des améliorations ont été apportées qui permettent de compiler de plus en plus de code Fortran, Objective-C, Objective-C++ et Java, sans qu'on sache si le code produit fonctionne bien comme prévu.

Changement de licences

Les deux projet compiler-rt (qui fournit des fonctions pour certaines instructions qui n'existeraient pas sur certaines architectures, comme par exemple la conversion d'un double en entier signé 64 bits) et libc++ (une bibliothèque standard C++ complète écrite pour C++0x) sont maintenant sous double licence UIUC (comparable à BSD) et MIT.

Le futur : LLVM 3.0

La prochaine version de LLVM sera la 3.0. Le principal changement sera l'abandon définitif de la branche llvm-gcc (le front-end de GCC avec le backend de LLVM) au profit d'une part de Clang et d'autre part de DragonEgg qui a la même utilité.

On peut aussi penser que le système de type de LLVM va être revu. Des discussions ont eu lieu et Chris Lattner a produit une note pour décrire les limites du système actuel et ce qu'il faudrait faire pour le modifier. Les types dans LLVM sont traités de manière un peu particulière. En effet, c'est la structure du type qui est importante et pas son nom. Ceci a l'avantage de simplifier certaines comparaisons (une simple égalité de pointeur suffit) mais génère beaucoup de travail car il faut s'assurer en permanence de cette propriété (et donc comparer les structures des types). L'idée ici est de permettre de faire des distinctions entre type qui ont la même structure mais pas le même nom, de manière à simplifier certaines parties critiques du code d'une part, et la vie des utilisateurs qui veulent construire des types qui font référence à eux-même (comme des types de listes chaînées par exemple).

L'autre point qui pourrait évoluer est la manière dont sont gérées les architectures-cibles. Dans GCC et certains outils GNU, les cibles sont représentées à l'aide d'un triplet de la forme i686-pc-linux-gnu. Cependant, cette notation n'est pas normalisée et ne résout pas de nombreux problèmes. Chris Lattner a proposé une nouvelle manière de spécifier les cibles qui pourrait donner par exemple x86-64.le.linux.elf.unknown ou arm.le.linux-eabi.elf.cortex-a8.

LLVM Developers' Meeting

Même s'il est passé inaperçu sur LinuxFR, c'est le bon moment pour parler du LLVM Developers' Meeting qui s'est déroulé le 4 novembre 2010. Plusieurs projets internes et externes ont été présentés, que ce soit par des développeurs de LLVM ou par des grands noms comme Google, AMD, Apple, CERN, Sony, Ericsson, etc. C'est l'occasion pour les utilisateurs de LLVM de remonter leurs contraintes et leur demandes à l'équipe de LLVM. On notera en particulier :

  • AMD OpenCL Compiler - Using LLVM to produce a cross-platform heterogeneous compiler tool chain par Micah Villmow, AMD Inc. : présentation et vidéo
  • Implementing Include-What-You-Use using clang par Craig Silverstein, Google ou comment utiliser Clang pour n'inclure que les en-têtes nécessaires dans un fichier C et donc accélérer le temps de compilation : présentation et vidéo
  • The Crack Scripting Language par Michael Muller, Google, un nouveau langage de script créé par un employé Google sur ses 20% de temps libre : présentation et vidéo
  • et plein d'autres...

par rewind

DLFP - Dépêches

LinuxFr.org

Entretien avec GValiente à propos de Butano

 -  16 avril - 

GValiente développe un SDK pour créer des jeux pour la console Game Boy Advance : Butano.Cet entretien revient sur son parcours et les raisons (...)


Nouveautés d'avril 2024 de la communauté Scenari

 -  11 avril - 

Scenari est un ensemble de logiciels open source dédiés à la production collaborative, publication et diffusion de documents multi-support. Vous (...)


Annuaire de projets libres (mais pas de logiciels)

 -  9 avril - 

Les communs sont une source énorme de partage !S’il est plutôt facile dans le monde francophone de trouver des ressources logicielles (Merci (...)


Les enchères en temps réel, un danger pour la vie privée mais aussi pour la sécurité européenne

 -  7 avril - 

Les enchères en temps réel, ou Real-Time Bidding (RTB), sont une technologie publicitaire omniprésente sur les sites web et applications mobiles (...)


XZ et liblzma: Faille de sécurité volontairement introduite depuis au moins deux mois

 -  31 mars - 

Andres Freund, un développeur Postgres, s’est rendu compte dans les derniers jours que xz et liblzma ont été corrompus par l’un des mainteneurs du (...)