LLVM 3.1 et Conférence EURO-LLVM 2012

Posté par  . Édité par rewind, baud123, Sylvestre Ledru, Florent Zara, Nÿco, 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.]

Sortie de Boost 1.46

Posté par  . Modéré par patrick_g.
Étiquettes :
51
23
fév.
2011
Linux

Une nouvelle version de Boost vient de sortir après trois mois de gestation.

Boost est une compilation de pas moins de 104 bibliothèques logicielles multiplateformes et sous licence libre (licence semblable à la Licence_MIT) écrites en C++. Plusieurs bibliothèques ajoutées au standard TR1 ont d'ailleurs pour origine Boost, comme les bibliothèques "array" et "regex".

Ces bibliothèques exploitent généralement de manière intensive la programmation par template, ce qui en font des bibliothèques génériques pour résoudre une large palette de problèmes.

De la nécessité d’adopter les opérations atomiques C11 ?

50
1
mar.
2018
Linux

Jonathan Corbet, fondateur de LWN et contributeur au noyau Linux, a publié en juin 2016 un article important sur l’apport de la dernière version du langage C dans les recherches d’optimisation du noyau. En voici une traduction.

N. D. M. : Les articles publiés sur LWN le sont généralement sous licence Creative Commons Attribution-ShareAlike 4.0 (CC BY-SA 4.0)

Journal Hyprland est hypé

Posté par  (site web personnel) . Licence CC By‑SA.
48
19
mar.
2025
Ce journal a été promu en dépêche : Hyprland, un compositeur Wayland « tiling ».

Hyprland est un compositeur Wayland "tiling" créé par Vaxri. Si vous n'avez aucune idée de ce que cela signifie, un compositeur inclut des fonctionnalités de gestion de fenêtres. D'autres compositeurs Wayland incluent GNOME, KDE et ceux basés sur wlroots

Avant cela, Vaxri avait créé Hypr, qui fonctionnait sous Xorg et utilisait XCB, tout en adoptant une philosophie similaire en matière de gestion des fenêtres. Revenons à Hyprland : c'est un "compositeur moderne avec du style" pour traduire leur formulation. La (…)

Écrire son OS - Partie 2 : configurer ses outils

Posté par  . Édité par Benoît Sibaud et palm123. Modéré par bubar🦥. Licence CC By‑SA.
47
10
déc.
2015
Technologie

Eh bien voilà, très (trop) longtemps après le premier épisode, me revoilà pour reprendre avec vous la série sur l'écriture d'un système d'exploitation pour un microcontrôleur STM32F103. Pour rappel, mon système d'exploitation MOS est écrit dans un but d'apprentissage. Il vise à être simple à appréhender et à permettre à chacun de découvrir les entrailles d'un OS. Cela implique deux conséquences :

  • je réinvente la roue puisque je réécris tout de zéro
  • il y aura sûrement des bugs, n'essayez pas de le mettre en production (!)

Voilà, tout ceci étant dit, on va pouvoir attaquer les choses sérieuses. Dans cet épisode, nous allons organiser notre projet et configurer nos outils. Bonne lecture !

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.

Coccigrep, un grep sémantique pour le langage C basé sur Coccinelle

Posté par  (site web personnel) . Modéré par patrick_g. Licence CC By‑SA.
45
2
sept.
2011
C et C++

Lorsque l'on travaille sur un projet C comportant un certain nombre de fichiers et de lignes de code, il arrive fréquemment que l'on se pose des questions comme "Mais où est modifié le champ data de ma structure Packet ?". grep ne suffit pas pour répondre à ce genre de questions car ne comprenant pas C, il ne sait pas, par exemple, que la variable monbopkt est une structure Packet.

coccigrep, basé sur coccinelle qui est un outil très puissant de recherche et de modification automatique de code, est un logiciel libre chargé de répondre à ce genre de questions. Il vient d'être publié en version 1.0rc1, sous licence GPL v3. Il est écrit en Python et s'interface avec les éditeurs Vim et Emacs, ce qui permet de faire les recherches depuis l'éditeur.

Journal PyAlsaCap : Python, pointeurs, et cartes sons…

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
Étiquettes :
44
14
mar.
2013

Sommaire

Pour fêter le retour de DLFP après cette trop longue vacance, voici un petit journal pythonesque, mais pas seulement !

Dans mon dernier journal, nous avions joué avec l'introspection Python et l'export de fonction sur D-Bus. Pour ce faire, nous avions généré du Python avec Python !

Cette fois-ci, (…)

Journal Des nouvelles d'Ulfius, framework web en C

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
43
9
oct.
2018

J'avais parlé ici d'Ulfius, un framework web écrit en C pour se faciliter la vie quand on veut développer des API web.

J'en profite donc de sortir la dernière version 2.4 pour en parler à nouveau et vous raconter ce que ca peut faire.

Adresse du projet: https://github.com/babelouest/ulfius

Le besoin est d'avoir un framework web pour écrire des applications web en C, en combinant la rapidité d'exécution ainsi que la consommation de mémoire plus réduite, avec un niveau d'abstraction permettant (…)

Journal Polycode : Moteur 2D/3D open-source

42
17
nov.
2013

Hello,

J'aimerai vous parler d'un "nouveau" moteur de jeu (2D/3D) sur lequel je suis tombé: Polycode.

Développé par un seul gars depuis près de 7 ans (chapeau l'artiste !), il est publique depuis fin 2011 et sa première version stable est pour bientôt.
Activement développé, il est possible de suivre sa progression sur son Tumblr (le choix est discutable…).

Le moteur en lui même se compose d'une librairie et de plusieurs modules (interface, réseau, …) pour être utilisé en C++, (…)

Journal Les codes fantastiques (et où les trouver)

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
42
1
juil.
2023

Demat' iNal,

Depuis fin 2022, j'anime une petite rubrique dans GNU/Linux Magazine, intitulée les codes fantastiques, où est décrit en une page une petite aventure informatique, un bout de code qui m'a amusé / plus / interpelé. [0]

Comme c'est les 25 ans de LinuxFR, et que j'en écris plus que ce qu'ils peuvent publier (trois d'avance pour le moment !), voici une sorte de ?hors série? que je ne publierai pas là bas du coup.

Les codes fantastiques

(…)

Qt 4.8 est sorti

Posté par  . Édité par Gof, Florent Zara, _PhiX_ et Nÿco. Modéré par j. Licence CC By‑SA.
Étiquettes :
39
19
déc.
2011
C et C++

La nouvelle version de Qt (prononcer « cute » comme mignon en anglais), le framework en C++ derrière KDE et bien d'autres applications libres, est sortie. Celle-ci est la dernière version majeure de la branche 4.x et la prochaine sera la branche 5.

Merci à Gof, Nÿco, _PhiX_ et reno pour leur aide lors de la rédaction de cette dépêche.

Journal scrcpy, une appli pour afficher et contrôler des devices Android

Posté par  (site web personnel) . Licence CC By‑SA.
38
9
mar.
2018

Bonjour nal,

Je viens te présenter une application que j'ai développée, qui permet d'afficher et de contrôler des devices Android connectés en USB.

Elle se concentre sur :

  • la légèreté (native, affiche uniquement l'écran)
  • les performances (30~60fps)
  • la qualité (1920×1080 ou plus)
  • la faible latence (70~100ms)
  • un démarrage rapide (~1 seconde pour afficher la première image)
  • la non-intrusivité (rien ne reste installé sur le device)

Je l'ai appelée scrcpy.

Il fallait un nom aussi imprononçable que mon précédent projet, gnirehtet (…)