comp.lang.ada
 help / color / mirror / Atom feed
From: Jere <jhb.chat@gmail.com>
Subject: Re: Ada Alternatives to Unrestricted_Access
Date: Sun, 11 Mar 2018 07:31:31 -0700 (PDT)
Date: 2018-03-11T07:31:31-07:00	[thread overview]
Message-ID: <5c448ce7-5646-45c5-b221-3d9c884c4d52@googlegroups.com> (raw)
In-Reply-To: <p82uip$r76$1@dont-email.me>

On Sunday, March 11, 2018 at 5:57:47 AM UTC-4, Jeffrey R. Carter wrote:
> On 03/11/2018 01:38 AM, Jere wrote:
> > On Friday, March 9, 2018 at 11:46:03 AM UTC-5, Jeffrey R. Carter wrote:
> >>
> >> OK, that's what I missed. I guess you could unchecked convert from
> >> access-constant to access-all.
> >>
> > My only concern with this is does the Ada language allow it portably?  I
> > know it works in GNAT, but what I couldn't find is if the RM allowed
> > for a constant variable to have a different internal representation than
> > a non constant version of the variable.  If that were the case, then I
> > would be worried that doing an unchecked_conversion (or an
> > Address_To_Access_Conversion) could provide an erroneous result.
>
>    <SNIPPED>
> 
> Why do you need this function?
> 
It's iterator related.  In order to iterate through a container in all
contexts, the Default_Iterator function needs a parameter of mode "in".
In order to leverage the anti tamper functionality, the iterator needs
a non constant access to the container to be supplied when building
the iterator inside the Default_Iterator function (so it can modify
the tamper state of the container).  The GNAT body for the Vectors 
package has an example (I think it is a-convec.adb, just search for
"function iterate" and look for the one that returns an iterator).


  parent reply	other threads:[~2018-03-11 14:31 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-07 20:11 Ada Alternatives to Unrestricted_Access Jere
2018-03-07 20:38 ` Dmitry A. Kazakov
2018-03-07 22:29   ` Jere
2018-03-08  8:27     ` Dmitry A. Kazakov
2018-03-09  0:43       ` Jere
2018-03-09  0:52         ` Jere
2018-03-09  8:28           ` Dmitry A. Kazakov
2018-03-11  0:31             ` Jere
2018-03-08  3:18 ` gautier_niouzes
2018-03-09  0:41   ` Jere
2018-03-08 17:51 ` Jeffrey R. Carter
2018-03-09  0:36   ` Jere
2018-03-09 16:46     ` Jeffrey R. Carter
2018-03-11  0:38       ` Jere
2018-03-11  9:57         ` Jeffrey R. Carter
2018-03-11 10:44           ` Dmitry A. Kazakov
2018-03-11 14:31           ` Jere [this message]
2018-03-11 15:49             ` Jeffrey R. Carter
2018-03-11 17:33               ` Jere
2018-03-11 18:12                 ` Jeffrey R. Carter
2018-03-11 19:53                   ` Jere
2018-03-12 16:28                     ` Jeffrey R. Carter
2018-03-11 18:27                 ` Niklas Holsti
2018-03-11 20:07                   ` Jere
2018-03-12 23:35                     ` Randy Brukardt
2018-03-12 23:30         ` Randy Brukardt
2018-03-13  7:46           ` Niklas Holsti
replies disabled

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