LISTE DES AMELIORATIONS A APPORTER A l'OUTIL FNC2
Mihaela Sighireanu Xavier Bouchoux Claude Chaudet Christophe Discours Mark Jorgensen Bruno Vivien INRIA Rhone-Alpes / VASY 655, avenue de l'Europe 38330 MONTBONNOT SAINT MARTIN FRANCE
Number: [VASY-FNC2-AM-6] Report: Christophe Discours Tool: Status: PARTIALLY DONE (v1.18)
Le repertoire .../Fnc2/doc est un peut fourre-tout : On y trouve des scripts, des docs et des sources. Il faudrait mettre un peu d'ordre : Les scripts iraient dans un repertoire .../Fnc2/com (ou .../Fnc2/bin ???), les sources dans .../Fnc2/src et le repertoire .../Fnc2/doc meriterait ainsi son nom.
Number: [VASY-FNC2-AM-9] Report: Christophe Discours Tool: fnc2 Status: ADMITTED By D.Parigot
Sous Linux on a les warnings suivants :
...
/home/ubac/users/garavel/Parallelisme/SVL/SVLv1.5/src_fnc2/SVL__exp_auto.c: In function `v_46_153_17_18_20_30': /home/ubac/users/garavel/Parallelisme/SVL/SVLv1.5/src_fnc2/SVL__exp_auto.c:799: warning: cast from pointer to integer of different size /home/ubac/users/garavel/Parallelisme/SVL/SVLv1.5/src_fnc2/SVL__exp_auto.c:805: warning: cast from pointer to integer of different size /home/ubac/users/garavel/Parallelisme/SVL/SVLv1.5/src_fnc2/SVL__exp_auto.c: In function `v_46_153_17_18_20_31': /home/ubac/users/garavel/Parallelisme/SVL/SVLv1.5/src_fnc2/SVL__exp_auto.c:817: warning: cast from pointer to integer of different size /home/ubac/users/garavel/Parallelisme/SVL/SVLv1.5/src_fnc2/SVL__exp_auto.c:822: warning: cast from pointer to integer of different size /home/ubac/users/garavel/Parallelisme/SVL/SVLv1.5/src_fnc2/SVL__exp_auto.c: In function `v_46_153_17_18_20_32':
...
A la ligne 799 on a une commande qui ressemble a :
f2___local (noeud,1) = (char *) F_SVL__exp_SOURCE_src_process_with_gates_2 ((BOOLEAN ) f2___impor (noeud,4), ...
Si on applique les regles de reecriture de cpp (macros definies dans f2unix.h), on obtient quelque chose comme :
noeud->attr_local[1] = (char *) F_SVL__exp_SOURCE_src_process_with_gates_2 ((char ) noeud->attr[4], ...
On note que noeud est une structure de type f2___struct_node, dans laquelle les champs attr et attr_local sont definis comme des 'char **', et donc la valeur 'noeud->attr[4]' est de type 'char *'. Si les autres compilateurs laissent passer un cast de 'char *' vers 'char', sous Linux le compilateur fait remarquer que quand meme les 2 types n'ont pas la meme taille d'implementation. Puisque les champs attr[] et attr_local[] (qui sont la representation en C des attributs d'Olga il me semble ?) servent a stocker a la fois des types 'char' (les booleens), des types 'char *' (des strings) et je suppose egalement des types 'int', il vaudrait mieux les declarer sous forme d'union. Je remarque d'ailleur dans le fichier f2unix.h qu'il y a la declaration suivante :
...
/* For attributes storage */
union f2_attr { int INT; char CHAR; char *POINTEUR; }
...
Et ce type n'est jamais utilise !!!
Number: [VASY-FNC2-AM-10] Report: Christophe Discours Tool: Status: ADMITTED By D.Parigot
Dans le meme ordre d'idee que la Modif 9, il me semble qu'il faudrait que tous les types/fonctions/macros de Fnc2 commence par F2 ou f2 (et SX ou sx pour Syntax). Par exemple il faudrait que la macro 'NODE' (qui permet d'ecrire plus facilement 'struct f2___struct_node') soit renommee en 'F2NODE', etc. Meme chose pour BOOLEAN (garder SXBOOLEAN et definir F2BOOLEAN).
Number: [VASY-FNC2-AM-12] Report: Christophe Discours Tool: all Status: ADMITTED By D.Parigot
Un bon nombre d'identificateurs de Syntax et de Fnc2 ne sont pas prefixes par sx ou par f2 et risquent par consequent de creer des conflits.
Number: [VASY-FNC2-AM-13] Report: Mihaela Sighireanu Tool: all
Status:
Lors de la construction/compilation, quand le code d'erreur est 2 il faudrait sortir immediatement
Number: [VASY-FNC2-AM-14] Report: Mihaela Sighireanu Tool: asx_to_olga
Status:
asx_to_olga devrait avoir une option -nnul pour ne plus generer les "where null-*"
Number: [VASY-FNC2-AM-15] Report: Mihaela Sighireanu Tool: ppat
Status:
Il faudrait permettre l'ecriture dans un fichier ppat plusieurs fois
Number: [VASY-FNC2-AM-16] Report: Mihaela Sighireanu Tool: fnc2
Status:
La longueur des noms de fichiers est limitee dans fnc2...
Number: [VASY-FNC2-AM-17] Report: Hubert Garavel Tool: fnc2
Status:
Il faudrait ajouter un lien avec un Garbage Collector au moment de la compilation finale avec FNC2 (en fin de LDFLAGS) afin d'etre certain que les compilateurs produits ne perdent pas de place en transformant des arbres.
Number: [VASY-FNC2-AM-1] Report: Christophe Discours Tool: all Status: DONE (v1.18)
Faire en sorte que les programmes de Fnc2 (olga, fnc2, ppat, etc.) tournent avec l'option -noverbose par defaut.
Number: [VASY-FNC2-AM-2] Report: Christophe Discours Tool: FNC2 Script Status: DONE (v1.18)
Modifier FNC2 (et prefnc2) pour qu'on puisse s'en servir de maniere non interactive. Les principales options de fonctionnement sont les suivantes : FNC2 -purge : Pour effacer tous ce qui est cree par FNC2. FNC2 -clean : Pour tout effacer sauf les binaires. FNC2 -debug : pour creer une version de 'debug'. FNC2 -install : Pour creer une version 'installable'.
D'autres options permettent de specifier le nom du compilateur, le nom du langage, la valeur de RHS, l'option -nnull.
Number: [VASY-FNC2-AM-3] Report: Christophe Discours Tool: fnc2 Status: DONE (v1.18)
Modifier makefnc2 et le programme mkfnc2 pour que l'on puisse utiliser make et cpp a la place de gmake et gcc, lorsque c'est possible (c'est a dire en dehors de Linux).
Number: [VASY-FNC2-AM-4] Report: Christophe Discours Tool: fnc2 Status: DONE (v1.18)
Modifier les autres scripts (debmkfnc2 et makemkfnc2) pour qu'ils soient plus propres.
Number: [VASY-FNC2-AM-5] Report: Christophe Discours Tool: all Status: DONE (v1.18)
Si certains scripts ne servent plus, les enlever de la distribution. Je pense en particulier a :
FNC2_LISP, Xfnc2, Xvisu, debmkfnc2_lisp, makefnc2_lisp, makemkfnc2_lisp, prefnc2_lisp (et xfnc2.txt).
Number: [VASY-FNC2-AM-7] Report: Christophe Discours Tool: fnc2 Status: DONE (v1.18)
Elle peut peut-etre etre faite avec la Modif 3 : mkfnc2 cree dans les makefiles des regles ou les commandes debutent par des quotes "vides" (exemple : ''fnc2 -H ../incl_fnc2/ -C ../src_fnc2 -A ../f2aux ...). Il faut les supprimer.
Number: [VASY-FNC2-AM-8] Report: Christophe Discours Tool: fnc2 Status: DONE (v1.18)
Dans SVL (mais on a le meme phenomene avec TRAIAN et les autres compilateurs) : Le fichier SVL-in_atc.c est cree sans fin-de-ligne a la fin. Les compilateurs (cc et gcc) arrivent a s'en sortir mais affichent un warning. Il faut corriger ca.
Number: [VASY-FNC2-AM-11] Report: Christophe Discours Tool: FNC2 Script Status: DONE (v1.18)
Reecrire le script FNC2 en sh au lieu de csh (sh permet de definir des fonctions, donc ca devrait etre plus propre).
(Modif 11a: modifier egalement makefnc2)
Number: [VASY-FNC2-AM-12] Report: Christophe Discours Tool: Status: DONE (v1.18)
Ajouter la documentation du script FNC2 dans la doc.