Thanks for the quick reply I just tried "pragma Ada_83;" but the only result is a new error message from GNAT related to the same problem?: db.adb:58:07: instantiation error at a-direio.adb:190 db.adb:58:07: unconstrained subtype not allowed (need initialization) db.adb:58:07: instantiation error at a-direio.adb:210 db.adb:58:07: unconstrained subtype not allowed (need initialization) Is there a way to get around the problem without the use of "pragma Ada_83;" to this point I have managed to use pure Ada95 standard packages to replace the old ones specific for the VAX environment. It would be very nice without compilerdependent solutions. /Magnus "nicolas" skrev i meddelandet news:9ijpom$bed$1@s1.read.news.oleane.net... > If you are using gnat, you can add > pragma Ada_83; > in this body to enforce Ada_83 restrictions (provided you don't use specific > Ada95 features in this body) > But this is really a bug of Ada83 cerrected in Ada95 > Nicolas > > "Magnus Sparf" a �crit dans le message news: > 9ijobe$qb4$1@mercur.foa.se... > > I�m new to ADA (hopefully picking up track fast) and this summer I have > the > > task of converting an old Ada83 application (VAX environment) to Ada95 (PC > > environment). > > In the very heart of this application there is a homemade database that > > compiles without problem in the VAX environment. When I compile it on GNAT > > 3.13p in the PC environment. I get the following error: > > > > db.adb:58:49: actual for "Element_Type" must be a definite subtype > :::(the > > last line in the extract) > > > > Extract of code (DB is a generic package and used to create a lot of > > different databases): > > -------------------------------------------------------------------------- > -- > > ----------- > > package body DB is > > > > type FILLED_TABLES is array (SMALL_NAT range <>) of BOOLEAN; > > pragma pack (FILLED_TABLES); > > > > type LINE_COL is > > record > > X_V : SMALL_NAT := 1; > > Y_V : SMALL_NAT := 1; > > end record; > > > > type TABLE_VALUES is array (SMALL_NAT range <>) of LINE_COL; > > > > type M_T is array (SMALL_NAT range <>, > > SMALL_NAT range <>) of ITEM; > > type B_T is array (SMALL_NAT range <>, > > SMALL_NAT range <>) of BOOLEAN; > > > > > > type MATRIX (MAX : SMALL_NAT; > > FIRST_RECORD : BOOLEAN; > > ROWS_FIRST : SMALL_NAT; > > ROWS_LAST : SMALL_NAT; > > COLUMNS_FIRST : SMALL_NAT; > > COLUMNS_LAST : SMALL_NAT) is > > > > record > > case FIRST_RECORD is > > when TRUE => > > -- description of entire file with tables > > FILLED : FILLED_TABLES(2..MAX) := > > (others => FALSE); > > DISCRIMANT_VALUES : TABLE_VALUES(2..MAX) := > > (others => (1, 1)); > > when FALSE => > > -- tables > > VALUE : M_T (ROWS_FIRST..ROWS_LAST, > > COLUMNS_FIRST..COLUMNS_LAST); > > ITEM_PUT : B_T (ROWS_FIRST..ROWS_LAST, > > COLUMNS_FIRST..COLUMNS_LAST); > > RAD_INDEX : R_T (ROWS_FIRST..ROWS_LAST); > > COLUMN_INDEX : C_T (COLUMNS_FIRST..COLUMNS_LAST); > > end case; > > end record; > > > > package MY_DIRECT_IO is new Ada.DIRECT_IO(MATRIX); > > -------------------------------------------------------------------------- > -- > > ------------- > > > > If I give type MATRIX default values it compiles with warnings about > Storage > > constraints errors in runtime (that also occurs...). MATRIX is used at a > lot > > of other places further down. > > > > Are there any quick (not dirty) solutions to this problem? My own ideas is > > to create separate databases for all eight databases that uses DB (CAR_DB, > > BOAT_DB, HOUSE_DB...) with specified values for MATRIX, but that seems > like > > a lot of work and not very objectoriented. > > I�ve read the GNAT RM about the problem (Ada95 <-> Ada83) "Indefinite > > subtypes in generics" but don`t seem to understand, especially when > there�s > > a standard package involved. > > > > All you experienced ones out there leave the "Ada is dead"-discussions and > > pleaseeeeee help me out... > > > > Magnus Sparf > > magnus-s@dsv.su.se > > > > > > > >