Re: Utilisation de JVM-GNAT GPL 2010.
Pascal <[email protected]>
| Newsgroups | gmane.comp.lang.ada.france |
|---|---|
| Message-ID | <[email protected]> |
Merci, astuce astucieuse pour sélectionner la bonne procédure ;-) Merci, Pascal. http://blady.pagesperso-orange.fr Le 24 nov. 10 à 11:59, Jean-Pierre Rosen a écrit : > > Le 21/11/2010 22:02, Pascal a écrit : > [...] >> Dans sa version GPL 2010, un certain nombres de restrictions ont été >> apportées au compilateur. >> Notamment, une erreur est maintenant levée dans le cas d'un pragma >> import sur un sous-programme abstrait. >> Ce qui en soit est plutôt logique. >> Néanmoins, l'utilitaire jvm2ada génère systématiquement un pragma >> import >> avec une méthode astraite. >> Il suffit alors simplement de supprimer le prama import... >> Bin non, pas si simple, car une méthode peut être surchargée avec une >> forme abstraite et l'autre pas !!! >> Voir le source en PJ, la méthode Read est dans ce cas: >> >> Ada est-il prévu pour prendre en charge ce genre de cas ? > > Le problème vient de ce qu'un pragma qui nomme une procédure > s'applique > à toutes les procédures surchargées portant ce nom. > > Comme c'est lié au nom, il suffit de passer par un rename. Le code > ci-dessous compile en important P_Bis, et non (comme prévu) en > important P: > > package Abc is > type T is abstract tagged null record; > > procedure P (X : T) is abstract; > procedure P (X : T; I : Integer); > private > procedure P_Bis (X : T; I : Integer) renames P; > -- pragma Import (C, P); -- ne compile pas > pragma Import (C, P_Bis); -- OK > end Abc; > > En Ada 2012, la notion d'aspect permettra de régler ce problème plus > élégamment. > -- > --------------------------------------------------------- > J-P. Rosen ([email protected]) > Adalog a déménagé / Adalog has moved: > 2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX > Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00 > _______________________________________________ Site WWW de l'association Ada-France: http://www.ada-france.org/ [email protected] http://www.ada-france.org/mailman/listinfo/ada-france