Re: gnatbind error: elaboration circularity detected
Thomas De Contes <[email protected]>
| Newsgroups | gmane.comp.lang.ada.france |
|---|---|
| Message-ID | <[email protected]> |
Le 26 janv. 08 à 01:15, Jeffrey R. Carter a écrit : > Thomas De Contes wrote: >> private with anneaux; >> package naturels is >> ... >> private >> type chiffre is ... >> package nb is new anneaux(chiffre); > > Dépendence de la "specification" de Naturels sur le "body" d'Anneaux. ah oui, D'habitude du code qui fait un "with" ne dépend que de la spécification (pas du corps) du paquetage en "with", Et là, à cause de l'instanciation du paquetage, ça dépend aussi du corps, c'est ça ? C'est ça qui m'avais échappé, merci :-) > >> end naturels; >> generic >> type element is private; >> package anneaux is >> ... >> with naturels; >> package body anneaux is > > > Dépendence du "body" d'Anneaux sur la "specification" de Naturels. > > C'est une erreur de votre code. Bon, ça fiche parterre une partie de ce que j'avais prévu ... :-( Surtout que quand on a un type accessible par un "limited with", si j'ai bien compris on ne peut que faire un pointeur dessus, et absolument rien d'autre Donc on ne peut presque jamais utiliser "limited with" En attendant mieux, je crois que je vais dupliquer mon paquetage anneaux, je vais effacer ce qui concerne les streams (là où j'utilise le paquetage naturels), et je vais rebrancher le paquetage naturels sur le paquetage anneaux modifié. Mais c'est sale (énorme duplication de code !!) Si y en a qui ont un peu de temps, je vous propose de regarder ça pour voir si vous avez une meilleure idée (mais c'est touffu, j'ai pas tout commenté et j'ai pas pris le temps d'élaguer) http://dl.free.fr/b7Uzeo1yV/circularity.zip ps : Pourquoi dans ce cas c'est seulement au moment du gnatbind que ça signale l'erreur, Alors que quand on fait une boucle directement entre 2 spécifications, c'est très très rapide et on ne peut même pas tout compiler ? -- j'agis contre l'assistanat, je travaille dans une SCOP ! _______________________________________________ Site WWW de l'association Ada-France: http://www.ada-france.org/ [email protected] http://www.ada-france.org/mailman/listinfo/ada-france