IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

[D7] Question de compilation


Sujet :

Delphi

  1. #1
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut [D7] Question de compilation
    Bonjour à toutes et à tous.

    J'ai un projet assez gros (plus de 1000 unités) qui a un comportement assez étrange :
    Quand je fais Projet / Compiler (pas construire) sans modifier aucune unité (ni dfm) Delphi me recompile systématiquement 27 unités... toujours les mêmes !

    Quelqu'un a déjà eu le cas ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Salut

    Cela peut être dû aux dépendences et aux héritage entre forms.
    Si tu modifies une forme mère, il peut recompiler également ce qu'il y a en dessous.

    Sinon, un bon moyen de tout remettre à plat (j'ai aussi constaté des compilations inutiles de temps en temps), est d'effacer toutes les fichiers *.DCU de tes unités...
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  3. #3
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Je crois que si deux de tes unités se font référence cycliquement, il les recompile à chaque fois. Par "cycliquement" j'entends que l'une fait référence à l'autre dans implementation pendant que l'autre lui fait référence soit en interface soit en implementation (puisque deux références en interface provoquent une erreur de référence circulaire).
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  4. #4
    Membre habitué Avatar de maamar1979
    Inscrit en
    Mai 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 174
    Points : 134
    Points
    134
    Par défaut
    salam,
    c'est tt à fait normal mon ami , le compilateur optimise le temps de compilation en ne reconstruisant que les unités modifiés.
    On fait tous les X choses nécessaires pour avoir comme résultats un Y, finalement c'est Z qu'on obtiens : c'est le destin.

  5. #5
    rbh
    rbh est déconnecté
    Membre confirmé Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 381
    Points : 471
    Points
    471
    Par défaut
    Salut
    Donc c'est les références ("semi") circulaire qui cause ça, chez nous sur un projet qui fait plus de 600 000 lignes compilé, il en recompilait toujours certaines.

    Petit squattage de poste avec un question légèrement en rapport avec le sujet :
    Chez nous la construction génère environ 400 conseils et un peu plus d'avertissement (je sais c'est mauvais signe mais beaucoup de ces warning sont des soucis de plateforme ou alors d'autre mais dans l'ensemble ça marche).
    Par contre dans certaines condition (non déterminée), une compilation (pas construction) réussit à nous générer plus de 1000 avertissements.
    Quelqu'un a-t-il une explication?
    Si non ne vous en faites pas j'arriverai quand même à dormir.

  6. #6
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Les avertissements ne sont montrés qu'à la recompilation d'une unité. Donc si une unité ayant provoqué des avertissements n'a pas besoin d'être recompilée, ces avertissements ne sont pas montrés.

    Tu indiques que tu ne t'occupes pas de certains avertissements : je te conseille alors vivement de décocher les avertissements qui ne t'importent pas dans les options du projet, onglet/section Messages du compilateur.

    Pour les conseils : je n'ai jamais eu de conseil que je n'ai pas suivi Le seul cas qui s'est déjà présenté, c'est lorsque j'avais déjà prévu une méthode privée dont je devrais me servir plus tard et que je n'utilisais pas encore...
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  7. #7
    rbh
    rbh est déconnecté
    Membre confirmé Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 381
    Points : 471
    Points
    471
    Par défaut
    Ok Merci de ta réponse
    Les avertissements, je m'en occupe (à leur première apparition). Certain sont des "la variable peut ne pas être initialiser" alors qu'une analyse du code montre qu'elle le sont toujours (condition exclusives, etc) sauf dans certains cas et la, je prend les mesures nécessaire.
    D'autres (les plus nombreux) sont "construction d'instance de classe contenant des méthodes abstraites" et je m'en occupe avant chaque MAJ en implémentant vite fait (
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure truc.chose();
    begin
     
    end;
    ) car nous développons un logiciel qui pilote par OLE un logiciel de DAO et que les classes de dessins sont également dérivés pour dessiner sur des Canvas Delphi et que on a pas forcément besoin du SaveToFile, de l'interaction avec les couches, et d'autres fonctionnalité très spécifique au logiciel que nous utilisons.

    Quand aux conseils, il sont la conséquence de la flemme de certain de mes collègues qui utilise des directives de compilation dans le corps des fonctions et pas dans les déclarations de variables.

    Mais ma question était pourquoi est-ce que la construction (recompilation de toutes les unités) me générent 400 avertissement alors que la compilation (compilation des unités modifiés et de celle qui les uses) réussit à trouver plus de 1000 avertissement ?

    Je le répète, cette question n'est pas vital et sert juste à satisfaire ma curiosité débordante...

  8. #8
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    Merci infiniment pour toutes vos pistes de recherche.
    Je me penche sur le rapport d'(Icarus) et je vous fais signe.

Discussions similaires

  1. Question Matlab compiler
    Par Antale dans le forum MATLAB
    Réponses: 1
    Dernier message: 30/09/2008, 17h38
  2. question bête: compilation
    Par rageice dans le forum C
    Réponses: 17
    Dernier message: 29/11/2007, 23h00
  3. petite question de compilation pour débutant
    Par flamant dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 21/09/2007, 15h19
  4. [langage] Question débutant compilation PERL
    Par sebbyoguard dans le forum Langage
    Réponses: 5
    Dernier message: 04/09/2004, 19h39
  5. question sur les erreurs de compilation
    Par vince3320 dans le forum C
    Réponses: 5
    Dernier message: 19/04/2004, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo