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.
next prev parent 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