Journal LLVM se fait de vieux os ? La recherche pour rester jeune.

Posté par  . Licence CC By‑SA.
Étiquettes :
51
20
déc.
2016

Il y a une discussion intéressante sur la liste de développement de LLVM ce mois-ci, partie du constat que les temps de compilation de LLVM augmentent au fil du temps—avec l'évolution du code. En particulier j'ai trouvé ce message de Daniel Berlin très intéressant: il parle du rapport entre les compilateurs industriels et la recherche en compilation, et de l'effet que ça peut avoir sur la maintenabilité du code. Traduction à la rache (le début est la citation d'un autre (…)

Sortie de GCC 6

Posté par  . Édité par bubar🦥, Davy Defaud, M5oul, patrick_g, palm123, ZeroHeure et Benoît Sibaud. Modéré par bubar🦥. Licence CC By‑SA.
91
23
avr.
2016
GNU

La sortie de la nouvelle version majeure du compilateur GCC du projet GNU va être annoncée. Écrit à l’origine par Richard Stallman, le logiciel GCC (GNU Compiler Collection) est le compilateur de référence du monde du logiciel libre. Il accepte des codes sources écrits en C, C++, Objective-C, Fortran, Java, Go et Ada et fonctionne sur une multitude d’architectures.

La suite de la dépêche vous propose en avance de phase une revue de certaines parties des améliorations et nouvelles fonctionnalités. Alors que GCC devenait un peu plus lent à chaque publication d’une nouvelle version, cette mouture marque un tournant en étant plus rapide que les deux versions précédentes, et plus rapide que d’autres compilateurs dans la plupart des situations, tout en générant souvent des binaires plus petits.

logo GCC

Numba 0.14

Posté par  . Édité par Benoît Sibaud. Modéré par patrick_g. Licence CC By‑SA.
42
18
sept.
2014
Python

Numba, l'optimiseur Python spécialisé dans le calcul numérique, est sorti en version 0.14. Numba est un compilateur juste-à-temps (JIT) pour Python, basé sur LLVM, permettant d'optimiser du code de calcul numérique, notamment basé sur Numpy. Il est compatible avec CPython 2.6, 2.7, 3.3 et 3.4. Des paquets binaires sont disponibles via Anaconda, la distribution de paquets binaires dédiée au calcul scientifique maintenue par Continuum Analytics, l'entreprise qui développe Numba.

Journal GCC vs LLVM

Posté par  (site web personnel) . Licence CC By‑SA.
56
30
juin
2014

Vladimir Makarov, qui bosse sur les compilateurs pour Red Hat, vient de poster le résultat de son évaluation entre les dernières versions de GCC et LLVM.

Le mail d'annonce est ici, les tableaux pour x86-64 et ARM (32 bits) sont postés sur son site tandis que la page de conclusion est là.

Résumé du duel opposant GCC 4.9 et LLVM 3.4 :

  • LLVM est bien plus rapide que GCC lors de la compilation.
  • GCC génère du code plus (…)

Sortie de Rubinius 2.0

Posté par  (site web personnel) . Édité par ZeroHeure, Nÿco, Florent Zara et patrick_g. Modéré par Florent Zara. Licence CC By‑SA.
Étiquettes :
34
7
oct.
2013
Ruby

La version 2.0 de Rubinius vient de sortir ! Pour rappel, Rubinius est une alternative à l'interpréteur du langage Ruby de référence nommé MRI (de l'anglais Matz's Ruby Interpreter). Rubinius est une machine virtuelle qui s'appuie sur LLVM pour compiler dynamiquement du code Ruby en code machine natif. Les nouveautés de cette nouvelle version sont profondes :

  • compatibilité avec Ruby 2.1 (qui n'est pas encore sorti), en plus des versions 1.8 et 1.9 ;
  • transformations de plusieurs couches de Rubinius en gems pour simplifier les mises à jour : compilateur, parser, débogueur, bibliothèque standard Ruby, etc. (tout ça est écrit en Ruby !) ;
  • amélioration des performances et de la stabilité dans le but avoué de rester compétitif face à des langages tels que Go, Clojure, ou encore Node ;
  • traditionnelles corrections de bugs.

Vous pouvez tester cette nouvelle version de Rubinius dès maintenant grâce à RVM, rbenv ou chruby !

LLVM 3.3 et Clang 3.3

73
18
juin
2013
Technologie

Le projet LLVM est un ensemble de technologies modulaires et réutilisables destinées à construire des chaînes de compilation et des compilateurs. Ce projet a grandi depuis ses débuts en tant que projet de recherche à l’Université de l’Illinois pour maintenant rivaliser avec l’autre grand compilateur du monde libre. À l’aube de ses 10 ans, le projet est on ne peut plus actif, attirant aussi bien des industriels (ARM, IBM, Qualcomm, Google, Intel, etc.) que des chercheurs.

logo LLVM

Le projet LLVM, ainsi que Clang, le compilateur C/C++/ObjectiveC officiel du projet, sont sortis dans leur version 3.3 le 17 juin 2013. LLVM apporte la prise en charge de nouvelles architectures. Clang implémente désormais la totalité du standard C++11. Ces nouveautés sont détaillées dans la seconde partie de la dépêche.

La conférence européenne LLVM 2013 qui s’est déroulée les 29 et 30 avril derniers à Paris, a permis de voir certaines améliorations possibles qui seront peut‐être un jour intégrées dans LLVM/Clang.

Enfin, il est important de noter que LLVM a reçu le 2012 System Software Award, rejoignant ainsi Eclipse (2011), Java (2002), TCP/IP (1991) et tant d’autres.

Journal C++11 : sur le fil

Posté par  . Licence CC By‑SA.
Étiquettes :
28
6
juin
2013
Ce journal a été promu en dépêche : C++11 : sur le fil.

Dans la course effrénée que se livrent les compilateurs, GCC vient traîtreusement de gagner une manche en étant le premier à fournir une implémentation complète du langage C++11. Les développeurs ont profité de la sortie de la version de maintenance 4.8.1 pour implanter les deux fonctionnalités manquantes :

les rvalue-references pour le pointeur this

Celles-ci permettent (entre autres) de surcharger des fonctions membres quand this est une rvalue ; voici un exemple tiré de la proposition originale :

class X {
(…)

LLVM 3.1 et Conférence EURO-LLVM 2012

Posté par  . Édité par rewind, baud123, Sylvestre Ledru, Nÿco, Florent Zara, patrick_g et Benoît Sibaud. Modéré par Florent Zara. Licence CC By‑SA.
55
23
mai
2012
Technologie

LLVM est une suite de compilation, c'est-à-dire un ensemble de bibliothèques et d'outils pour construire des compilateurs, des assembleurs, des éditeurs de liens, etc. Et quand on parle de LLVM, on parle forcément de Clang, le compilateur C/C++/ObjectiveC/ObjectiveC++ attitré du projet LLVM. Clang, par rapport à GCC, compile plus vite mais génère du code moins rapide, le vrai intérêt de Clang réside dans la clarté des messages d'erreurs.

La seconde partie de cette dépêche détaille les nouveautés de la version 3.1 de LLVM et Clang, sortie le 22 mai 2012 et propose un compte rendu de la toute première conférence Euro-LLVM (avril 2012).

LLVM et Clang 3.1 sont téléchargeables ici et respectivement (les utilisateurs de Debian Sid n'ont évidemment qu'à faire un apt-get install llvm-3.1 clang)

[NDA: un grand Merci à rewind qui a rédigé, entre autres, toute la couverture de la conf Euro-LLVM. Merci également à patrick_g, reno, Nÿco, baud123 et Sylvestre Ledru pour leurs corrections et leurs précisions.]

Journal Conférence EURO-LLVM 2012 : Les vidéos sont là !

Posté par  . Licence CC By‑SA.
6
25
mai
2012

Pour ceux qui n'ont pas pu assister à la conférence Euro-LLVM 2012, les vidéos sont enfin arrivées et disponibles sur la page de la conférence !

Un résumé de chaque intervention est disponible sur la dépêche sortie il y a quelques jours.

Perso, j'ai hâte d'être à ce soir pour regarder la vidéo « Refactoring C++ with Clang » du mec de Google.

Bon week-end à tous !

P.S. : C'est au format Quick Time (dû à Apple ?) ; je ne sais pas trop (…)

Quelques nouvelles de l'écosystème Ruby

Posté par  (site web personnel) . Édité par Benoît Sibaud, Nÿco, Pierre Jarillon et NeoX. Modéré par Pierre Jarillon. Licence CC By‑SA.
Étiquettes :
22
16
avr.
2012
Ruby

Le 12 avril 2012, l'ISO (International Organization for Standardization) a publié le standard ISO/IEC 30170 qui spécifie la syntaxe et la sémantique du langage Ruby. Ce projet, en gestation depuis 2008, a pu aboutir grâce au groupe de travail mené par Ikuo Nakata, professeur à l'université de Tsukuba. La standardisation du langage était une étape sine qua non pour son utilisation au sein de l'administration japonaise.

Le 26 mars 2012, la Free Software Foundation a attribué le FSF award (trophée du libre) 2011 à Yukihiro Matsumoto, le créateur du langage Ruby, pour son travail sur le projet GNU et Ruby durant ces 20 dernières années. Pour rappel, cette récompense est attribuée aux personnalités ayant apporté une grande contribution au progrès et au développement du logiciel libre.

Alors que de nombreuses personnes attendent toujours la sortie de la version 2 de Rubinius (interpréteur Ruby basé sur LLVM), l'initiateur du projet, Evan Phoenix, a indiqué qu'il quittait Engine Yard pour LivingSocial. Sachant que son ancien employeur le mettait à disposition à temps plein sur le sujet avec un autre ingénieur, on devine facilement les craintes de la communauté vis-à-vis de l'avenir du projet.

Journal Debian recompilée avec Clang/LLVM

Posté par  . Licence CC By‑SA.
Étiquettes :
30
6
mar.
2012

Petit journal bookmark pour vous annoncer une nouvelle sur laquelle je suis tombé. Le projet Debian a été recompilé avec Clang/LLVM (un compilateur libre, concurrent de GCC). Les points intéressants soulevés (autre que faire plaisir aux fanboys Clang) sont que ça permet une meilleure qualité du code en utilisant deux compilateurs différents (qui ne soulèvent pas les mêmes problèmes et que ça permet de montrer que Clang est viable en tant que compilateur.

Sur les 15658 paquets, 1381 (8.8 %) (…)

LLVM 3.0

Posté par  (Mastodon) . Édité par baud123, nazcafan, Manuel Menal et Benoît Sibaud. Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
55
2
déc.
2011
Technologie

LLVM, pour Low Level Virtual Machine, est une suite de compilation qui commence à se faire une place à côté du vénérable GCC. Sa grande modularité, comparé au monolithique GCC, permet d'écrire facilement un compilateur, en utilisant la représentation intermédiaire de LLVM, et en faisant appel ensuite aux optimisations et à la génération de code de LLVM.

Le projet arrive maintenant à une certaine maturité grâce à cette version 3.0 qui apporte beaucoup de nouveautés. Il est à noter que la numérotation suit le schéma d'OpenBSD, c'est-à-dire que la version 3.0 suit la version 2.9, ce n'est donc pas une version majeure – malgré les modifications plus importantes qu'à l'accoutumée – qui sont détaillées dans la seconde partie.

Journal Divers: Feuilleton Nokia, PHP & Javascript, et autres.

Posté par  . Licence CC By‑SA.
34
4
oct.
2011

Nokia, ton univers impitoyable.



Il semblerait que Nokia n’en ait pas fini avec Linux sur ses appareils, malgré l’abandon de Maemo Meegoo, ils travailleraient sur un système pour leurs téléphones pas smart (feature/dumb phones), basé sur Linux et censé remplacer S40, pour l’instant ce n’est qu’une rumeur qui ne verra peut être jamais le jour, mais qui n’est pas complètement irréaliste, Windows Phone étant trop gourmand pour équiper des appareils plus basiques en terme de hardware, et S40 commençant (…)

LLVM 2.9 !

Posté par  (Mastodon) . Modéré par patrick_g. Licence CC By‑SA.
45
8
avr.
2011
Technologie

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.

Journal LLVM dans un gestionnaire de paquets ?

Posté par  (site web personnel) .
Étiquettes :
24
1
sept.
2009
Bonjour,

Aujourd'hui, comme je n'avais pas grand-chose à faire, j'ai testé llvm. Mon but n'est pas de voir s'il peut me compiler KDE, ffmpeg, GNOME ou autre, non, il y a de fortes chance qu'il n'y arrive pas.

En fait, j'ai une idée derrière la tête, idée qui va vous plaire, une bonne idée.

Le principe est simple : créer un gestionnaire de paquets, sauf que cette fois-ci, j'ai trouvé ce qui sera révolutionnaire dedans. En effet, les paquets seront (…)