comp.lang.ada
 help / color / mirror / Atom feed
From: "nicolas" <n.brunot@cadwin.com>
Subject: Re: Direct_IO problem -- generic package problem
Date: Thu, 12 Jul 2001 11:19:40 +0200
Date: 2001-07-12T11:19:40+02:00	[thread overview]
Message-ID: <9ijpom$bed$1@s1.read.news.oleane.net> (raw)
In-Reply-To: 9ijobe$qb4$1@mercur.foa.se

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3538 bytes --]

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" <magnus-s@dsv.su.se> 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
>
>
>





  reply	other threads:[~2001-07-12  9:19 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-07-12  8:42 Direct_IO problem -- generic package problem Magnus Sparf
2001-07-12  9:19 ` nicolas [this message]
2001-07-12 11:38   ` David C. Hoos, Sr.
2001-07-12 12:14     ` nicolas
2001-07-12 11:41   ` Magnus Sparf
2001-07-12 12:25     ` nicolas
2001-07-12 11:33 ` David C. Hoos, Sr.
2001-07-12 16:58 ` Jeffrey Carter
2001-07-12 19:23   ` tmoran
2001-07-13  8:16     ` Magnus Sparf
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox