Sundown, Houdini et Crustache

Posté par  (site web personnel) . Modéré par Florent Zara. Licence CC By‑SA.
Étiquettes :
22
2
sept.
2011
C et C++

Vicent Martí, aka tanoku, est un des développeurs de github qui aime bien coder en C. Ce n'est donc pas très étonnant de trouver sur son compte github des bibliothèques en C pouvant servir au développement d'applications web. Je souhaite en particulier vous évoquer de trois bibliothèques sous licence ISC :

Crustache est une implémentation en C de Mustache, un moteur de templating. Des bindings pour Ruby sont également disponibles dans le dépôt git.

Houdini permet d'échapper des chaînes de caractères en UTF-8 pour le web. Et de faire l'inverse. Les trois types d'échappement sont :

  • convertir &, ", ', <, > et / en leur entité HTML correspondante (conformément à la recommandation de l'OWASP) ;
  • échappement des URI respectant la RFC ;
  • et échappement des URL (la différence avec l'échappement des URI est le remplacement des espaces par des +).

Et enfin, Sundown est un fork de libupskirt. Il permet de convertir du texte en Markdown vers du HTML. Nous utilisons Redcarpet, les bindings Ruby autour de Sundown, pour LinuxFr.org du fait de ses performances et de ses nombreuses options.

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.

Le standard C++0x a enfin été voté

Posté par  . Modéré par Lucas Bonnet. Licence CC By‑SA.
Étiquettes :
76
18
août
2011
C et C++

Le nouveau standard du langage C++ a été voté ce vendredi 12 août. Initialement prévu pour 2008 ou 2009, il a pris du retard, notamment à cause de problèmes avec certaines fonctionnalités. Malgré cette date, beaucoup l'appellent quand même C++0x et il suffit de le nommer C++0xB pour que le nom soit conservé. La publication officielle ne devrait cependant pas arriver avant quelques mois.

Heureusement pour les utilisateurs, ces fonctionnalités ont déjà commencé à être implémentées dans les différents compilateurs et bibliothèques standard. Ceci devrait permettre de ne pas attendre trop longtemps avant de pouvoir profiter de ces nouveautés, voire d'en profiter dès à présent pour certaines. Par exemple, sous GCC, il faut passer l'option -std=c++0x au compilateur pour utiliser des évolutions qui sont déjà implémentées.

Une sélection des principales nouveautés est présentée en seconde partie de dépêche.

Merci à moules< pour son aide lors de la rédaction de cette dépêche.

Forum Programmation.c juste pour le fun je suis tombé sur ce bout de code très ....

Posté par  .
Étiquettes :
4
18
mai
2011

Je suis tombé par hazard sur ce bout de code : Je trouve ça très drôle, comme concept... le programme auto-suicidaire...

#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>

/* 
 * is this the stupidest code all over the world ?
 * or any student first system call code ?
 *
 */

int main(int argc, char *argv[])
{
        if (argc != 2)
        {
                // if the fucking user doesn't give a signal code on args, then kill -9 program
                kill(getpid(),
(…)

Journal Qt 5 à l'horizon

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
34
9
mai
2011

Un post de Lars Knoll sur le blog Qt de Nokia fait le point sur la future version Qt 5. Dans ce texte Lars indique que Qt 4 est sorti en juin 2005 et que depuis cette époque beaucoup de chose ont changés dans le paysage informatique. Selon lui il est temps dévoluer vers Qt 5. Certes la transition se veut moins traumatisante que le passage de Qt 3 à Qt 4 puisque la compatibilité sera assurée au niveau du (…)

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 Mono pour Android en version 1.0

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
3
6
avr.
2011

Mono (re-implementation de .NET sous license libre) est désormais dispo pour Android cf http://tirania.org/blog/archive/2011/Apr-06.html

Mono était deja disponible pour iOS via MonoTouch (en version 4.0 actuellement).

Attention ! MonoTouch et Mono for Android sont des produits commerciaux (400$ pour les versions pro). Le code source est base sur Mono (MIT/LGPL/GPL) mais monotouch.dll est par exemple closed source.

MonoTouch et Mono for Android permettent d'utiliser les API natives. Comme l'indique de Icaza, le mieux est donc de séparer le noyau de (…)

La version 4.6 du compilateur GCC est disponible

Posté par  (site web personnel) . Modéré par baud123. Licence CC By‑SA.
87
26
mar.
2011
GNU

La sortie de la version 4.6 du compilateur GCC a été annoncée ce vendredi 25 mars sur la liste de diffusion du projet.

Écrit à l’origine par [Richard Stallman] en tant que compilateur C officiel du projet GNU, dont il est le fondateur, [GCC] est aujourd’hui le compilateur multi-langage de référence du monde du logiciel libre. Il accepte du code source écrit en Ada, C, C++, Objective-C, Objective-C++, D, Fortran, Go, Java, Pascal et VHDL, et fonctionne sur une multitude d’architectures.

Opmock : un outil pour le TDD efficace en C et C++

Posté par  . Modéré par Lucas Bonnet. Licence CC By‑SA.
Étiquettes :
32
14
mar.
2011
Ligne de commande

Le [TDD] est une pratique souvent utilisée dans les projets de développement utilisant les « méthodes agiles ». Pour supporter cette pratique, il est nécessaire de disposer d'outils qui permettent d'écrire facilement des tests unitaires, mais également de couper les dépendances d'une section de code, afin de la tester en isolation. Les langages actuels, comme Java ou C#, bénéficient tous de pléthore d'outils de ce type, comme Jmockit ou Mockito. Cependant, le C et le C++ n'ont pas cette chance, bien qu'une quantité impressionnante de code les utilise.

Opmock est un outil de génération automatique de stubs et de mocks, qui permet de simplifier énormément le TDD avec des bases de code importantes en C ou C++, existantes ou nouvelles.

Le projet est placé sous licence GPLv3.

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.

Journal Apple abandonne IBM pour Intel

Posté par  .
Étiquettes :
0
7
juin
2005
Comme le laissait entendre une rumeur persistante depuis plusieurs jours, Steve Jobs a annoncé lors de la WWDC (Apple WorldWide Developers Conference) l'abandon des PowerPC d'IBM au profit des processeurs Intel.

Apple a aussi annoncé la mise à disposition d'un "Developer Transition Kit", afin de permettre aux développeurs de réaliser le changement de plate-forme, MacOS X tournant déjà sur cette architecture (il est compilé sur PowerPC et Intel à chaque version).

Le kit serait fourni pour 999$ (gasp) par Apple.
(…)

Journal Mon impression sur KDevelop 3 (gideon)

Posté par  .
Étiquettes :
0
9
août
2003
Amis pingouins, bonjour !

J'ai testé hier soir, comme ça, pour voir, KDevelop 3.

C'est un IDE modulaire, qui supporte d'ores et déjà les projets dans les langages ADA, C, C++, Fortran, Bash, Java, Perl, PHP, Python, Ruby; il est traduit en grande partie en français grâce à l'équipe de localisation en français de KDE, son interface revisitée est désormais à mon goût beaucoup plus agréable à utiliser, l'intégratiion du débogueur est carrément meilleure qu'avant ...

J'ai pas vraiment eu (…)