Re: Utilisation de JVM-GNAT GPL 2010.
Jean-Pierre Rosen <[email protected]>
| Newsgroups | gmane.comp.lang.ada.france |
|---|---|
| Message-ID | <[email protected]> |
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