comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Record operations (Algebraic Data Types and printing)
Date: Wed, 10 Oct 2018 09:17:49 +0200
Date: 2018-10-10T09:17:49+02:00	[thread overview]
Message-ID: <ppk92s$4ht$1@gioia.aioe.org> (raw)
In-Reply-To: ppj9k1$cjr$1@franka.jacob-sparre.dk

On 2018-10-10 00:20, Randy Brukardt wrote:
> "Lucretia" <laguest9000@googlemail.com> wrote in message
> news:fb2af9cb-5317-4f1c-867c-8876212d303b@googlegroups.com...

>> Like what 'Read/'Write/'Input/'Output do, they call a defined subprogram in
>> the package. Surely, it's not that hard.
> 
> What package? We're talking about (in part) the default representation for a
> type.

What have T'Image and T'Value to do with the type representation?

> Stream attributes use a complex concept called "availability" to deal
> with limited types, and they don't worry about privacy breakage at all.

Limited types should have no stream attributes at all. Same applied to 
'Image/'Value. Returning limited object was a language design bug. This 
cannot be fixed but it can be contained.

> 'Value would need something similar at a minimum, and the question of
> privacy breakage also would have to be addressed (a package would not want
> some outside force constructing values for its types; they might not meet
> the [implied] invariants and other assumptions

[...]

Safe default is to generate publicly visible 'Image and 'Value 
propagating Use_Error for all types with private components. The package 
provider could override them in the public part with bodies renaming the 
private default implementations of which have full visibility.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  reply	other threads:[~2018-10-10  7:17 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-05 17:46 Record operations (Algebraic Data Types and printing) Henrik Härkönen
2018-10-05 17:58 ` AdaMagica
2018-10-05 18:11   ` Henrik Härkönen
2018-10-05 18:46     ` Niklas Holsti
2018-10-05 20:33       ` Henrik Härkönen
2018-10-06  5:38   ` J-P. Rosen
2018-10-06  7:08     ` Henrik Härkönen
2018-10-06 16:42       ` Lucretia
2018-10-08 23:08         ` Randy Brukardt
2018-10-09  1:12           ` Lucretia
2018-10-09 22:20             ` Randy Brukardt
2018-10-10  7:17               ` Dmitry A. Kazakov [this message]
2018-10-10 18:13                 ` G. B.
2018-10-10 18:36                   ` Dmitry A. Kazakov
2018-10-11 11:29                   ` Björn Lundin
2018-10-11 14:45                     ` Jacob Sparre Andersen
2018-10-11 18:34                       ` Björn Lundin
2018-10-12 19:08                     ` G. B.
2018-10-12 19:20                       ` Randy Brukardt
2018-10-11 21:32                   ` Randy Brukardt
2018-10-10 18:38                 ` Shark8
2018-10-11  8:36                   ` Dmitry A. Kazakov
2018-10-11 21:35                 ` Randy Brukardt
2018-10-12  7:14                   ` Dmitry A. Kazakov
2018-10-12 19:16                     ` Randy Brukardt
2018-10-06 16:18     ` Jeffrey R. Carter
2018-10-06 17:19       ` Dmitry A. Kazakov
2018-10-08 23:03   ` Randy Brukardt
2018-10-09  6:22     ` Henrik Härkönen
2018-10-09  7:32       ` Paul Rubin
2018-10-09  7:38         ` Henrik Härkönen
2018-10-09 22:25         ` Randy Brukardt
2018-10-05 18:32 ` Niklas Holsti
2018-10-05 18:43   ` Henrik Härkönen
2018-10-05 19:41   ` Simon Wright
2018-10-06  6:17     ` Henrik Härkönen
2018-10-06 16:04       ` Stephen Leake
2018-10-06 16:56         ` Simon Wright
2018-10-08  6:44           ` briot.emmanuel
2018-10-08 14:09             ` Simon Wright
2018-10-08 14:21               ` Bill Findlay
2018-10-08 14:42                 ` Simon Wright
2018-10-08 16:46                   ` Bill Findlay
replies disabled

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