comp.lang.ada
 help / color / mirror / Atom feed
From: Martin Krischik <krischik@users.sourceforge.net>
Subject: Re: put of access type
Date: Thu, 20 Aug 2009 08:18:04 +0200
Date: 2009-08-20T08:18:04+02:00	[thread overview]
Message-ID: <4a8cea9c$1@news.post.ch> (raw)
In-Reply-To: <h6hvcc$2ni$1@munin.nbi.dk>

Randy Brukardt schrieb:
> "Adam Beneschan" <adam@irvine.com> wrote in message 
> news:c9aec6d6-4e9b-4bf6-9586-68a237175c9d@i18g2000pro.googlegroups.com...
> ...
>> Also, there's no rule saying that an access value has to be an address
>> at all.  It's certainly conceivable that an access value may be
>> implemented as a reference to some storage pool and an offset into
>> that pool, allowing for the possibility that the memory management
>> system may just decide to pick up the whole pool and move it to some
>> other address, without making any of the access values invalid.
> 
> I think the Ada 95 definition of storage pools would make this 
> implementation hard to make work. (Which is unfortunate, it would have 
> worked fine in Ada 83).

It still works:

type Simple_Access is record
  Offset : Integer;
end record;

type Access_All (Pool_Access : Boolean) is record
  case Pool_Access is
     true =>
       Pool    : access Pool_Type;
       Offset  : Integer;
     false =>
       Address : System.Address;
  end case;
end record;

Since a simple access type always points into the pool only the Offset
is needed. since an access all can point anywhere more info is needed.
This is why I always advice against use of access all when not needed.

Martin
-- 
mailto://krischik@users.sourceforge.net
Ada programming at: http://ada.krischik.com



  reply	other threads:[~2009-08-20  6:18 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-18 22:26 put of access type Rob Solomon
2009-08-18 23:17 ` Jeffrey R. Carter
2009-08-19  3:36   ` Rob Solomon
2009-08-19  7:44     ` Jean-Pierre Rosen
2009-08-20  8:06       ` Stephen Leake
2009-08-19 11:16     ` Robert A Duff
     [not found]     ` <k_2dncb9WoxvFRbXnZ2dnUVZ_jmdnZ2d@earthlink.com>
2009-08-20  8:05       ` Stephen Leake
2009-08-20 15:42         ` Adam Beneschan
2009-08-21  8:24           ` Stephen Leake
2009-08-19  6:25 ` Martin Krischik
2009-08-19  7:21 ` Dmitry A. Kazakov
2009-08-19 19:00   ` Rob Solomon
2009-08-19 19:44     ` sjw
2009-08-20  1:54       ` Rob Solomon
2009-08-20  2:06         ` Rob Solomon
2009-08-20 15:18         ` (see below)
2009-08-19 21:01     ` Adam Beneschan
2009-08-19 22:45       ` Randy Brukardt
2009-08-20  6:18         ` Martin Krischik [this message]
2009-08-21  0:18           ` Randy Brukardt
2009-08-21  1:20             ` Adam Beneschan
2009-08-21 14:47             ` Robert A Duff
2009-08-21 21:43               ` Randy Brukardt
2009-08-22  0:07                 ` Robert A Duff
2009-09-01  1:57                   ` Randy Brukardt
2009-08-20  6:08     ` Martin Krischik
2009-08-20 20:57     ` Robert A Duff
2009-08-20  6:01   ` Martin Krischik
2009-08-20 17:54     ` tmoran
2009-08-31  7:08       ` Martin Krischik
2009-08-20 18:58     ` Dmitry A. Kazakov
2009-08-20 22:27       ` sjw
2009-08-21  7:29         ` Dmitry A. Kazakov
2009-08-21 21:09           ` sjw
2009-08-31  7:12             ` Martin Krischik
2009-08-20 20:29     ` Robert A Duff
2009-08-21  8:18       ` Stephen Leake
2009-08-21 14:31         ` Robert A Duff
2009-08-21 14:41         ` Robert A Duff
2009-08-22 12:02           ` Stephen Leake
2009-08-20  8:09   ` Stephen Leake
     [not found]     ` <GoydnWoDmpUW4BDXnZ2dnUVZ_rKdnZ2d@earthlink.com>
2009-08-21  8:31       ` Stephen Leake
2009-08-21  8:42         ` Dmitry A. Kazakov
replies disabled

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