Bonjour,
Je termine mes études en double cursus, à la fois ingénieur (à l'école Polytech Tours) et master de recherche (au laboratoire d'informatique de Tours et suis actuellement en stage.
Mon stage se déroule autours des plugins pour GCC (à l'aide de l'outil (MELT). De plus j'ai été sélectionné dans le cadre d'un Google Summer Of Code sur ce sujet. Je tiendrais également une conférence aux RMLL sur l'utilisation de MELT.
Tout ça me laisse fort peu de temps pour mon site qu'il faudra bien que je complète un jour ou l'autre :).
En attendant, vous pouvez déja me contacter.
Me contacter
Talpo!
Talpo est un plugin à GCC écrit en MELT. C'est un outil d'analyse statique simple permettant à l'utilisateur de passer un ensemble de tests paramétrables lors de la compilation de son projet.
Pourquoi un nom si étrange?
Talpo signifie taupe en esperanto (la langue internationnal). L'idée derriere ce nom est de se dire que l'on traverse GCC comme les taupes creusent: Elles sont aveugles et se dirigent aléatoirement mais parviennent à trouver leur nourriture (comme nous trouvons des informations intéressantes).
Que peut t'on réellement faire avec Talpo?
L'idée est d'offrir aux utilisateurs différents moyens d'insérer des tests dans leurs code au moment de la compilation en utilisant la puissance de GCC. Talpo peut être utilisé en insérant des pragmas dans le code, en passant directement les arguments lors de l'invocation de GCC or via l'utilisation d'un fichier. Pour le moment, les tests ne peuvent travailler qu'au niveau GIMPLE, mais on peut imaginer étendre ça plus tard. Cela signifie qu'un test est lancé successivement sur chaque fonction du fichier que l'on compile. Le principal inconvénient est que chaque passe n'a alors qu'une vision limité à la fonction (ainsi, on ne peut pas faire de tests avec une vue global ou en travaillant sur les imbrications d'appels de fonctions).
Les types de tests que l'on peut actuellement lancés sont les suivants:
Tester que l'appel à une fonction donnée est (ou non) immédiatement suivi d'un test vérifiant qu'elle est (ou non) égale à NULL, zero ou négative.
Tester que l'appel à une fonction donnée est (ou non) immédiatement suivi d'un appel à une autre fonction.
Tester que l'appel à une fonction donnée est suivi dans le même corps de fonction par un appel à une autre fonction.
...
Talpo a particulièrement été testé sur du code source C, il ne fonctionne pas correctement en C++ à cause de problème de transformation du nom des fonctions. Cela sera certainement changé dans de versions futures. Talpo n'a jamais été testé sur d'autres langages, mais le fait qu'il travaille principalement sur des représentations intermédiaires très génériques, permet d'imaginer que d'autres langages implémentés dans GCC puissent fonctionner.
Essayer et en savoir plus!
Talpo est disponible sur gitorious: https://gitorious.org/talpo. Il dispose d'un README et d'un AvancedREADME relativement complet (bien qu'actuellement uniquement disponible en anglais).