comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Type naming conventions: Any_Foo
Date: Mon, 9 Dec 2019 16:07:11 -0600
Date: 2019-12-09T16:07:11-06:00	[thread overview]
Message-ID: <qsmgig$vac$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: qsipel$t3k$1@dont-email.me

"Jeffrey R. Carter" <spam.jrcarter.not@spam.not.acm.org> wrote in message 
news:qsipel$t3k$1@dont-email.me...
> On 12/8/19 12:24 AM, Jere wrote:
>>
>> You are correct that you can write a high level abstraction wrapper
>> around a GUI without exposing access types, but to Dmitry's point, the
>> actual code that creates the GUI components has to use access types
>> or some sort of referential data type.  Your example GUI illustrates even
>> this.  When you look at ada_gui.adb, you will see multiple uses of
>> access types:  accesses to procedure callbacks, accesses to GUI 
>> components,
>> uses of 'Access, etc.
>
> The implementation of Ada_GUI is a hack to let me test the feasibility of 
> the idea. I think a real implementation could be done without needing 
> access types, but have not looked into it in enough detail to be sure. 
> Even if it cannot be implemented without them, this discussion was about 
> what the pkg requires from its clients, so the implementation is 
> irrelevant.

To me, this is the key point. Claw uses very few access types externally; 
the user view is generally one of objects, which can be aggregated in any 
way the user desires (records, arrays, containers, or allocation/access 
types). There were a few places where that model didn't work, although I 
think that was more because of the underlying system (Win32) and wanting to 
make all of the facilities available in some way, rather than because it was 
strictly necessary.

Note that most Claw types are non-limited (thus allowing "cloning" - a copy 
being a "clone" of the original, and more importantly, return from 
functions) and task safe in the same way as Ada (so long as a single task 
only operates on a single object, everything will work -- tasks can work on 
different clones of the same underlying object).

                             Randy.


  reply	other threads:[~2019-12-09 22:07 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-04 13:56 Type naming conventions: Any_Foo Alejandro R. Mosteo
2019-12-04 14:52 ` Lucretia
2019-12-04 16:42   ` Alejandro R. Mosteo
2019-12-05 10:51     ` AdaMagica
2019-12-05 17:27       ` Jeffrey R. Carter
2019-12-05 17:45         ` Dmitry A. Kazakov
2019-12-05 20:03           ` Jeffrey R. Carter
2019-12-05 21:51             ` Dmitry A. Kazakov
2019-12-05 23:12               ` Randy Brukardt
2019-12-06 20:20                 ` Jeffrey R. Carter
2019-12-07  1:19                   ` Randy Brukardt
2019-12-06 20:18               ` Jeffrey R. Carter
2019-12-06 20:35                 ` Dmitry A. Kazakov
2019-12-07  0:57                   ` Randy Brukardt
2019-12-07 10:28                     ` Jeffrey R. Carter
2019-12-07 12:36                       ` Niklas Holsti
2019-12-08 12:04                         ` Jeffrey R. Carter
2019-12-07 10:13                   ` Jeffrey R. Carter
2019-12-07 11:21                     ` Dmitry A. Kazakov
2019-12-08 11:55                       ` Jeffrey R. Carter
2019-12-08 12:38                         ` Dmitry A. Kazakov
2019-12-08 14:31                         ` Shark8
2019-12-08 21:58                           ` Jeffrey R. Carter
2019-12-09 22:47                             ` Shark8
2019-12-07 23:24                     ` Jere
2019-12-08 12:14                       ` Jeffrey R. Carter
2019-12-09 22:07                         ` Randy Brukardt [this message]
2019-12-05 19:49         ` Niklas Holsti
2019-12-05 20:47           ` Jeffrey R. Carter
2019-12-05 21:33             ` Niklas Holsti
2019-12-06 11:44               ` Lucretia
2019-12-06 20:23                 ` Jeffrey R. Carter
2019-12-06 20:11               ` Jeffrey R. Carter
2019-12-06 20:46                 ` Dmitry A. Kazakov
2019-12-06 21:55                 ` Niklas Holsti
2019-12-07 10:19                   ` Jeffrey R. Carter
2019-12-07 12:05                     ` Niklas Holsti
2019-12-08 11:59                       ` Jeffrey R. Carter
2019-12-06  8:57       ` AdaMagica
2019-12-06  9:55         ` J-P. Rosen
2019-12-06 15:30       ` Optikos
2019-12-07  3:34 ` Shark8
replies disabled

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