# Clang Gui: IHM pour l'analyseur syntaxique LLVM/Clang



## Mala (26 Février 2009)

L'outil ayant fait ses armes sur les forums d'Objective-Cocoa, je vous le propose à son tour ici.

Clang Gui qu'est ce que c'est?


			
				Clang Gui a dit:
			
		

> LLVM/Clang est un outil d'analyse syntaxique qui permet de trouver plus facilement des bugs dans du code C et Objective-C. C'est pour le moment un outil qui se lance en mode terminal ce qui ne le rend pas forcément pratique à installer/utiliser. Clang GUI est donc un petit utilitaire graphique qui permet de s'affranchir de cette contrainte pour un usage plus aisé.



Tout le reste se trouve ici...
Clang Gui

En espérant contribuer modestement à mieux lutter contre les bugs, 
Mala.


----------



## tatouille (26 Février 2009)

Mala a dit:


> L'outil ayant fait ses armes sur les forums d'Objective-Cocoa, je vous le propose à son tour ici.
> 
> Clang Gui qu'est ce que c'est?
> 
> ...



oki attention dans la var CC= ne passer que gcc et par d'argument
sinon clang plante, preferer mettre tout dans vos CFLAGS

ce serait bine d'avoir le tout dans un processus async afin de ne pas avoir la roue,
de plus quand aucun fichier projet est selectionne passer le menu des iphone sdk en gris
car c'est un peux deconcertant

en tous les cas merci ca fesait deux semaines que je n'avait pas passe au clang mon code et j'ai trouve
un object non released envoye a setter

 clang te nique a chaque fois saloperie de tool 

bug la navigation bug quand tu rerun le meme et que tu navigues dans les sub report pas moyen de faire back to the index html

question ou store tu les html produit par CLang?


----------



## Mala (27 Février 2009)

tatouille a dit:


> ce serait bine d'avoir le tout dans un processus async afin de ne pas avoir la roue,
> de plus quand aucun fichier projet est selectionne passer le menu des iphone sdk en gris
> car c'est un peux deconcertant


Je prends note pour les prochaines mises à jour. 



tatouille a dit:


> en tous les cas merci ca fesait deux semaines que je n'avait pas passe au clang mon code et j'ai trouve
> un object non released envoye a setter
> 
> clang te nique a chaque fois saloperie de tool


Il m'a trouvé quelques perles aussi. 



tatouille a dit:


> bug la navigation bug quand tu rerun le meme et que tu navigues dans les sub report pas moyen de faire back to the index html


J'ai apperçu ça aussi. C'est bizzare car les boutons sont bindés sur la WebView.



tatouille a dit:


> question ou store tu les html produit par CLang?


[NSTemporaryDirectory() stringByAppendingPathComponent"Clang"]


----------



## Didier Guillion (27 Février 2009)

Ca a l'air tres sympa comme outil !
J'ai eut un crash, ca t"interesse ?

Cordialement


----------



## Mala (27 Février 2009)

Pas de souci. Fais moi suivre le log en MP.


----------



## tatouille (11 Mars 2009)

trouve, tu as dois clear l'history pour le probleme webview, si tu releases le source je veux bien te donner un coup de main, j'ai aussi envoye le lien de ton appli a monsieur Clang avec qui j'entretient une correspondance depuis pas mal de temps deja, il etait happy de ton travail


----------



## Mala (12 Mars 2009)

tatouille a dit:


> trouve, tu as dois clear l'history pour le probleme webview,


Je m'y suis remis à 3 fois pour comprendre ta phrase. Dur, dur la France... 



tatouille a dit:


> si tu releases le source je veux bien te donner un coup de main,


Aucun souci, bien au contraire. Je t'envoie un MP ce soir ou demain avec le source.



tatouille a dit:


> j'ai aussi envoye le lien de ton appli a monsieur Clang avec qui j'entretient une correspondance depuis pas mal de temps deja, il etait happy de ton travail


Sir Clang! Cool!


----------



## tatouille (13 Mars 2009)

Mala a dit:


> Je m'y suis remis à 3 fois pour comprendre ta phrase. Dur, dur la France...
> 
> 
> Aucun souci, bien au contraire. Je t'envoie un MP ce soir ou demain avec le source.
> ...



 ou apres demain


----------



## Mala (14 Mars 2009)

Que le temps passe vite sur votre planète...


----------



## tatouille (17 Mars 2009)

j'ai corrige un bug quand tu listes quel dossier-report tu dois ouvrir dans la webview, je teste maintenant l'attribut avec "le plus recent last modified", j'ai remarque aussi que les clean ne marche pas sur certains projects iphone, j'etudie un force clean du genre rm -Rf projet/build/target-ecetera/
car cette situation fait buguer clang qui cree un nouveau dossier avec rien dedans...

j'ai mis la classe task wrapper en place et un peu touche a l'UI pour cleaner quelques marges et j'ai mis la webview 
comme contentview d une scrollview sans scroll  c'est juste pour qu elle ait la meme tete avec une petite bordure cf tab1
je pense que je t'enverrais ca samedi prochain, j'ai aussi code en obj-c 1 comme tu l'as fait

ps: c'est pas fini


----------



## tatouille (18 Mars 2009)

historique de la webView

en faite:

[webView setMaintainsBackForwardList:NO]; -> ici le probleme c'est qu 'il release l'objet
donc mort pour toute la suite de la vie du programme, oui je sais ils sont un peu cognos

c'est donc mortel

[webView setMaintainsBackForwardList:YES]; 

il ne repasse pas a yes parce que l'objet est nil, nada il n'en recree pas des que tu push NO caca, cognos isn't it?

je ne sais pas qui a ecrit cette methode debile... mais bon je m'attendais a meilleur
en faite l'objet travaille avec une collection d'url, comme je suis en debug mode je detruit le dossier temporaire a chaque run, et le probleme n'apparaissait que quand clang utilisait le meme dossier temporaire pour regenerer un report donc a url equivalent l'objet etait mort donc plus de navigation possible

j'essaye du coter du WebHistory objet,
pour comprendre comment cela ca marche, j'ai trifouille pas mal pour comprendre, qu elle merde pour faire un truc simple...



ca sent le webviewController en tous les cas, je ne vois que ca pour gerer ton propre historique et l'effacer
comme tu veux sans tenir compte des differentes URLs, de toutes les facons ca ne peut que faire du bien a l'appController

pour l'instant je n'ai bosse que deux fin de soiree dessus et ca avance pas mal


----------



## tatouille (19 Mars 2009)

http://openspecies.blogspot.com/2009/03/clang-gui-156.html


----------



## tatouille (19 Mars 2009)

j'ai naturellement fixé le bug auquel Didier etait confronté, j'encode UTF8 pour la TextView, le crash report de Didier montre bien un probleme de character out of range.

Parser un  projet xCode n'est pas trop complique, c'est un dictionaire plist, il suffit de scanner les keys


----------



## Didier Guillion (19 Mars 2009)

tatouille a dit:


> j'ai naturellement fixé le bug auquel Didier etait confronté, j'encode UTF8 pour la TextView, le crash report de Didier montre bien un probleme de character out of range.
> 
> Parser un  projet xCode n'est pas trop complique, c'est un dictionaire plist, il suffit de scanner les keys



Tu veut que je teste ?

Cordialement


----------



## tatouille (19 Mars 2009)

Didier Guillion a dit:


> Tu veut que je teste ?
> 
> Cordialement




pourquoi pas je suis en cours de finition pour checker le last tmp folder modified,

```
- (NSString *)lastModifiedFileAtPath:(NSString *)path
{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSArray* directoryContents = [fileManager directoryContentsAtPath:path];
    NSDictionary *currentFileAttributes;
    NSDate* currentFileDate;
    NSString *currentFile;
    NSString *lastModifiedFile = nil;
    NSDate* lastModifiedFileDate;
    
    if([directoryContents count]) {
        lastModifiedFileDate = [NSDate distantPast];
        for (NSString* fileName in directoryContents) {
            currentFile = [path stringByAppendingPathComponent:fileName];
            currentFileAttributes = [fileManager fileAttributesAtPath:currentFile traverseLink:NO];
            currentFileDate = [currentFileAttributes objectForKey:NSFileModificationDate];
            if([currentFileDate laterDate:lastModifiedFileDate] == currentFileDate) {
                lastModifiedFileDate = currentFileDate;
                lastModifiedFile = fileName;
            }
        }
    
    }
    
    return lastModifiedFile;
}

- (void)openScan
{
    NSString *currentScan;
    [self cleanHistory];
    
    if((currentScan = [self lastModifiedFileAtPath:tmpClangDir])) {
        NSString *path = [[tmpClangDir stringByAppendingPathComponent:currentScan] stringByAppendingPathComponent:@"index.html"];

...
```
je pense renvoyer la premiere etape samedi a sebastien?

si on ne s'emele pas les pinceaux sur les versions je veux bien t'envoyer l'app, mais j'ai besoin de l'authorization de seb aka l'auteur pour la distribution de l'app en dessus de main,

Didier peux tu m'envoyer ton email en MP, plus facile par mail
pour s'echanger des fichiers, j'ai creer pas mal de fake project avec des erreurs volontaires


----------



## Mala (20 Mars 2009)

Pas de soucis pour faire suivre à Didier.


----------



## tatouille (21 Mars 2009)

Good morning! Vietnam, je sais vous dormez encore ou alors rentrez d'une nuit folle 
je vous ai spammé 

latest news


----------



## Mala (22 Mars 2009)

La 1.1.6. est dispo au téléchargement: Clang Gui

Bonne chasse! 
Mala.

PS: Chui bon pour refaire les captures d'écran!


----------



## Didier Guillion (23 Mars 2009)

La derniere version corrige le probleme de crash de mon coté.

Merci !

Cordialement


----------

