comp.lang.ada
 help / color / mirror / Atom feed
From: Jere <jhb.chat@gmail.com>
Subject: Re: Visibility of Indexing aspects
Date: Sat, 14 Jul 2018 16:28:53 -0700 (PDT)
Date: 2018-07-14T16:28:53-07:00	[thread overview]
Message-ID: <0bd84a0c-26db-4b80-b99a-9235d70f67ae@googlegroups.com> (raw)
In-Reply-To: <eed95cb4-56f6-44f2-adc5-75340bddba7c@googlegroups.com>

On Saturday, July 14, 2018 at 7:00:36 PM UTC-4, Shark8 wrote:
> On Saturday, July 14, 2018 at 12:29:44 PM UTC-6, Jere wrote:
> > 
> > There was no mention of being able to index the type (publicly), so it
> > surprised me that a client using the package could call the index
> > operation.  If it was intentional, then that was fine, I just wanted to
> > know because I couldn't find anything in the RM that forbid it, but I 
> > might have missed something.
> 
> You do raise a good point though WRT to visibility; it *would* be more consistent with Ada to have a distinction between (eg) publicly indexable and privately indexable types based on where the aspects lay.
> 
> OTOH, certain aspects such as (eg) Convention don't need to be public to alter the type in some manner. (Analogous to putting [eg] PRAGMA CONVENTION(FORTRAN, MATRIX) to force the Matrix to be represented in a Column-major manner within the private part.)
> 
> I should write this up as an AI for the ARG, if for nothing else than clarification's sake. Thank you for bringing the issue to my attention.

Thanks!
One positive thing about it is that it does allow for safer indexing.
Normally you have to expose a reference type with Implicit_Dereference, 
which exposes access types to your interface and also increases 
design complexity because you may have to figure out how to handle
those reference types potentially outliving the container.  Even though
the issue I raised feels inconsistent, in some ways it might be safer
than the standard way the containers handle indexing because the
reference type is now private and a user cannot save it to a variable
for later use.

  reply	other threads:[~2018-07-14 23:28 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-14 14:18 Visibility of Indexing aspects Jere
2018-07-14 17:04 ` Shark8
2018-07-14 18:29   ` Jere
2018-07-14 18:41     ` Dmitry A. Kazakov
2018-07-14 23:00     ` Shark8
2018-07-14 23:28       ` Jere [this message]
2018-07-15 14:41 ` AdaMagica
2018-07-15 15:33   ` Jere
2018-07-16  3:22     ` AdaMagica
2018-07-17  0:35       ` Jere
2018-07-17  9:46         ` AdaMagica
2018-07-17 10:11           ` AdaMagica
2018-07-20 12:08             ` Jere
2018-07-20 16:11               ` AdaMagica
2018-07-20 22:03                 ` Dan'l Miller
2018-07-20 22:07                 ` Jere
2018-07-21 10:33                   ` AdaMagica
2018-07-24  3:32                   ` Randy Brukardt
2018-07-24 17:15                     ` Dan'l Miller
2018-07-25  5:37                       ` Randy Brukardt
2018-07-25 18:26                         ` Dan'l Miller
2018-07-25 19:58                           ` AdaMagica
2018-07-25 20:57                             ` Dan'l Miller
2018-07-26  0:12                               ` Randy Brukardt
2018-07-26  2:41                                 ` Dan'l Miller
2018-07-26 19:09                                   ` Randy Brukardt
2018-07-26 20:31                                 ` Shark8
2018-07-26 21:25                                   ` Dan'l Miller
2018-07-27 22:05                                     ` Randy Brukardt
2018-07-28  0:35                                       ` Dan'l Miller
2018-07-27 21:58                                   ` Randy Brukardt
2018-07-20 22:23                 ` Jere
2018-07-20 22:25                   ` Jere
2018-07-21  5:58                   ` J-P. Rosen
  -- strict thread matches above, loose matches on Subject: below --
2018-08-02 20:31 Randy Brukardt
2018-08-03  0:43 ` Dan'l Miller
2018-08-03 20:56   ` Randy Brukardt
2018-08-03 21:32     ` Dan'l Miller
2018-08-06 21:46       ` Randy Brukardt
2018-08-06 22:12         ` Dmitry A. Kazakov
2018-08-07 15:13         ` Dan'l Miller
2018-08-07 22:41           ` Randy Brukardt
replies disabled

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