comp.lang.ada
 help / color / mirror / Atom feed
From: Shark8 <onewingedshark@gmail.com>
Subject: Re: Ada Successor Language
Date: Mon, 18 Jun 2018 19:45:58 -0700 (PDT)
Date: 2018-06-18T19:45:58-07:00	[thread overview]
Message-ID: <3e410d4c-60d9-4adf-82fe-5d6b2272804e@googlegroups.com> (raw)
In-Reply-To: <pg9bd9$eo9$1@gioia.aioe.org>

On Monday, June 18, 2018 at 4:23:41 PM UTC-6, Dmitry A. Kazakov wrote:
> On 2018-06-18 23:20, Shark8 wrote:
> > On Monday, June 18, 2018 at 2:45:39 PM UTC-6, Niklas Holsti wrote:
> >> On 18-06-18 23:22 , Jeffrey R. Carter wrote:
> >>> On 06/18/2018 09:16 PM, Niklas Holsti wrote:
> >>>>
> >>>> Nah... invites "Ada'Succ sucks".
> >>>
> >>> Also, in Ada, Ada'Succ is not the successor of Ada.
> >>
> >> But perhaps the successor language will let us write X'Succ as an
> >> abbreviation of X_Type'Succ(X) ... similarly to the recent introduction
> >> of X'Image.
> > 
> > I'd honestly like the ability to use X'Type; this would allow us to say something like this:
> > 
> > Procedure Swap( A, B : in out Some_Type ) is
> >    Temp : Constant B'Type := B;
> > Begin
> >    B:= A;
> >    A:= Temp;
> > End Swap;
> > 
> > Yeah, I know, it's a little thing and you can do it with generics, etc. But that's not entirely the point, the point is that this allows the declaration of types dependent on objects... it provides some of the niceties of type-inference without having to resort to such lazy/possibly-error-prone methodologies.
> 
> It is not a little thing. It requires classes for all types.

No, it doesn't.
A 'Type attribute could simply mean "the [sub]type of this object", and thereby given "A : Positive" we know that A'Type is positive, statically, at compile time, and without any notion of classes.

> 
> Then all types with assignment (non-limited types) will be members of 
> the class Not_Limited [*]. E.g.
> 
>     type Integer is ... and Not_Limited;
>     type String  is ... and Not_Limited;
>     ...

Why would they need to have a Not_Limited class? We already know they're not limited from the type declaration "Type Integer is new System.Integer;"...
We can currently use the generic-language "type T (<>) is abstract tagged limited private;" to specify "Any tagged type, abstract or concrete, limited or not."


> Then you could write a class-wide Swap:
> 
>     procedure Swap (A, B : in out Not_Limited'Class) is
>        Temp : constant Not_Limited'Class := B;
>     begin
>        B := A;
>        A := Temp;
>     end Swap;
> 
> -----------------------------
> * You must also deal with type cloning, so that
> 
>     type X is new Integer;
> 
> will get its own copy of the Not_Limited class. I.e. the whole type tree 
> must be copied. It is not a little thing.

Why would it need a Not_Limited class? It looks like you're trying to combine regular "Interface" with the attributes-and-classification of the type.


  parent reply	other threads:[~2018-06-19  2:45 UTC|newest]

Thread overview: 212+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-02  4:43 Ada Successor Language Shark8
2018-06-02  6:52 ` Luke A. Guest
2018-06-04  2:27   ` Dan'l Miller
2018-06-04 21:06   ` Dan'l Miller
2018-06-05 12:31     ` Lucretia
2018-06-02  8:12 ` Dmitry A. Kazakov
2018-06-02 12:14   ` Mehdi Saada
2018-06-02 12:43     ` Dmitry A. Kazakov
2018-06-03  7:39       ` Safety of user-defined operators (was: Ada Successor Language) G.B.
2018-06-03  7:58         ` Safety of user-defined operators Dmitry A. Kazakov
2018-06-02 12:57     ` Ada Successor Language Luke A. Guest
2018-06-04 21:17       ` Randy Brukardt
2018-06-02 13:48 ` Dan'l Miller
2018-06-03 10:01 ` ric.wai88
2018-06-03 13:04   ` Dan'l Miller
2018-06-03 13:09   ` Shark8
2018-06-03 15:14     ` Lucretia
2018-06-03 15:09   ` Lucretia
2018-06-03 15:14     ` ric.wai88
2018-06-03 15:16       ` Lucretia
2018-06-03 15:22         ` ric.wai88
2018-06-03 15:31           ` Lucretia
2018-06-03 15:41             ` ric.wai88
2018-06-03 15:54     ` Dmitry A. Kazakov
2018-06-03 16:43     ` Jeffrey R. Carter
2018-06-04  5:01       ` Jacob Sparre Andersen
2018-06-04  7:19         ` Simon Wright
2018-06-04  7:44           ` Dmitry A. Kazakov
2018-06-04 13:53             ` Björn Lundin
2018-06-04 16:54             ` G. B.
2018-06-04 19:37               ` Dmitry A. Kazakov
2018-06-04 22:12                 ` G.B.
2018-06-05  7:18                   ` Dmitry A. Kazakov
2018-06-04 13:25           ` Lucretia
2018-06-04 14:08           ` Dan'l Miller
2018-06-04 14:55             ` Lucretia
2018-06-26 13:58         ` jm.tarrasa
2018-06-26 18:44           ` Jacob Sparre Andersen
2018-06-03 18:44     ` Björn Lundin
2018-06-03 19:37     ` Paul Rubin
2018-06-03 23:56       ` Dan'l Miller
2018-06-04  0:24         ` Paul Rubin
2018-06-04  0:41           ` Ben Bacarisse
2018-06-04  2:01         ` ric.wai88
2018-06-05 16:46     ` Alejandro R. Mosteo
2018-06-06 21:02       ` gautier_niouzes
2018-06-08 10:03         ` Alejandro R. Mosteo
2018-06-04  3:19 ` John Smith
2018-06-04 20:56 ` Mehdi Saada
2018-06-04 21:14 ` Paul Rubin
2018-06-05  0:17   ` Shark8
2018-06-05 16:01     ` Dan'l Miller
2018-06-18  3:31     ` Dan'l Miller
2018-06-18  6:58       ` Björn Lundin
2018-06-18 12:33         ` Dan'l Miller
2018-06-18 19:16       ` Niklas Holsti
2018-06-18 19:28         ` Dan'l Miller
2018-06-18 20:22         ` Jeffrey R. Carter
2018-06-18 20:45           ` Niklas Holsti
2018-06-18 21:20             ` Shark8
2018-06-18 21:27               ` ric.wai88
2018-06-18 21:51                 ` Shark8
2018-06-22 11:14                 ` Alejandro R. Mosteo
2018-06-18 22:23               ` Dmitry A. Kazakov
2018-06-18 22:36                 ` Paul Rubin
2018-06-19  0:10                   ` Dan'l Miller
2018-06-19 20:32                     ` Paul Rubin
2018-06-19 20:37                       ` Dan'l Miller
2018-06-20  8:30                     ` Marius Amado-Alves
2018-06-19  7:58                   ` Dmitry A. Kazakov
2018-06-19 19:19                     ` Paul Rubin
2018-06-19 19:30                       ` Dan'l Miller
2018-06-19 19:39                       ` Dmitry A. Kazakov
2018-06-19 20:30                         ` Paul Rubin
2018-06-20  7:13                           ` Simon Wright
2018-06-29 20:11                             ` Randy Brukardt
2018-06-20  7:59                           ` Dmitry A. Kazakov
2018-06-22 11:14                             ` Alejandro R. Mosteo
2018-06-23 19:21                             ` Jacob Sparre Andersen
2018-06-24  8:34                               ` Dmitry A. Kazakov
2018-06-24  9:19                                 ` J-P. Rosen
2018-06-25  7:00                                   ` briot.emmanuel
2018-06-25  8:23                                   ` Marius Amado-Alves
2018-06-29 20:20                                 ` Randy Brukardt
2018-06-25  8:58                               ` Alejandro R. Mosteo
2018-06-25  9:19                                 ` Jeffrey R. Carter
2018-06-25 12:41                                 ` J-P. Rosen
2018-06-25 14:03                                   ` Niklas Holsti
2018-06-25 14:21                                     ` Dmitry A. Kazakov
2018-06-25 14:44                                       ` J-P. Rosen
2018-06-25 15:19                                         ` Dmitry A. Kazakov
2018-06-25 16:21                                           ` Dan'l Miller
2018-06-26  7:44                                             ` Dmitry A. Kazakov
2018-06-26 13:59                                               ` Dan'l Miller
2018-06-26 14:05                                                 ` ric.wai88
2018-06-26 15:38                                                   ` Simon Wright
2018-06-26 16:50                                                     ` Dan'l Miller
2018-06-26 17:25                                                       ` Dmitry A. Kazakov
2018-06-26 18:47                                                         ` Dan'l Miller
2018-06-26 19:29                                                           ` Dmitry A. Kazakov
2018-06-26 20:03                                                             ` Dan'l Miller
2018-06-26 20:59                                                               ` Dmitry A. Kazakov
2018-06-29  3:11                                                               ` Paul Rubin
2018-06-29  3:37                                                                 ` Dan'l Miller
2018-06-29  3:48                                                                   ` Paul Rubin
2018-06-29  7:29                                                                     ` Dmitry A. Kazakov
2018-06-29  7:20                                                                 ` Dmitry A. Kazakov
2018-06-29 13:25                                                                   ` Dan'l Miller
2018-06-29 17:39                                                                     ` Dmitry A. Kazakov
2018-06-29 19:46                                                                       ` Dan'l Miller
2018-06-29 21:36                                                                         ` Dmitry A. Kazakov
2018-06-29 22:21                                                                           ` Dan'l Miller
2018-06-26 21:15                                                     ` Niklas Holsti
2018-06-27  7:07                                                       ` Dmitry A. Kazakov
2018-06-26 14:17                                                 ` Dmitry A. Kazakov
2018-06-26 14:42                                                   ` Dan'l Miller
2018-06-26 14:47                                                     ` Dmitry A. Kazakov
2018-06-26 21:01                                                 ` Niklas Holsti
2018-06-26 22:03                                                   ` Dan'l Miller
2018-06-27  2:28                                                     ` Dan'l Miller
2018-06-27  2:58                                                       ` Dan'l Miller
2018-06-27  7:15                                                     ` Dmitry A. Kazakov
2018-06-27 16:33                                                       ` Dan'l Miller
2018-06-27 19:11                                                         ` Dmitry A. Kazakov
2018-06-25 18:05                                           ` J-P. Rosen
2018-06-26  7:42                                             ` Dmitry A. Kazakov
2018-06-25 19:32                                         ` Niklas Holsti
2018-06-25 19:16                                       ` Niklas Holsti
2018-06-25 20:13                                         ` Dan'l Miller
2018-06-25 20:52                                           ` Niklas Holsti
2018-06-26  7:57                                             ` Dmitry A. Kazakov
2018-06-26 20:16                                     ` J-P. Rosen
2018-06-26 20:49                                       ` Niklas Holsti
2018-06-26 21:09                                         ` Dmitry A. Kazakov
2018-06-29 20:35                                     ` Randy Brukardt
2018-06-25 14:18                                   ` Alejandro R. Mosteo
2018-06-29 20:47                                     ` Randy Brukardt
2018-06-29 20:23                                 ` Randy Brukardt
2018-07-02  9:37                                   ` Alejandro R. Mosteo
2018-06-29 20:17                             ` Randy Brukardt
2018-06-29 22:11                               ` Dmitry A. Kazakov
2018-06-29 22:36                                 ` Randy Brukardt
2018-06-30  8:34                                   ` Dmitry A. Kazakov
2018-06-19 21:07                         ` Dan'l Miller
2018-06-20  7:33                           ` Dmitry A. Kazakov
2018-06-22 11:13                             ` Alejandro R. Mosteo
2018-06-22 16:02                               ` Dmitry A. Kazakov
2018-06-25  8:20                                 ` Marius Amado-Alves
2018-06-26 17:20                                   ` Shark8
2018-06-26 17:42                                     ` Dmitry A. Kazakov
2018-06-25  8:21                                 ` Paul Rubin
2018-06-25  9:12                                   ` Dmitry A. Kazakov
2018-06-22 15:18                             ` Dan'l Miller
2018-06-22 15:49                               ` Dmitry A. Kazakov
2018-06-19  2:45                 ` Shark8 [this message]
2018-06-19  7:50                   ` Dmitry A. Kazakov
2018-06-19 15:35                 ` Shark8
2018-06-19  7:35               ` G. B.
2018-06-19 11:36                 ` Dan'l Miller
2018-06-19 15:37                 ` Shark8
2018-06-19 17:07                   ` G. B.
2018-06-29 20:05               ` Randy Brukardt
2018-06-29 23:18                 ` Shark8
2018-07-03 21:39                   ` Randy Brukardt
2018-06-19  0:20         ` Lucretia
2018-06-19 11:51           ` Dan'l Miller
2018-06-19 13:54             ` Dan'l Miller
2018-06-06  9:13   ` Niklas Holsti
2018-06-08 16:28     ` Dan'l Miller
2018-06-08 16:56       ` Mehdi Saada
2018-06-08 17:33       ` Shark8
2018-06-12  1:51         ` Dan'l Miller
2018-06-12 15:23           ` Luke A. Guest
2018-06-12 15:44             ` Dan'l Miller
2018-06-12 17:59               ` Luke A. Guest
2018-06-13 16:03                 ` Dan'l Miller
2018-06-13 16:20                   ` Luke A. Guest
2018-06-13 18:04               ` G. B.
2018-06-13  5:53             ` Shark8
2018-06-13  6:57               ` Simon Wright
2018-06-13 18:58                 ` Shark8
2018-06-13 19:19                   ` Dmitry A. Kazakov
2018-06-14  3:19                     ` Lucretia
2018-06-14  7:26                       ` Dmitry A. Kazakov
2018-06-14 11:25                         ` Lucretia
2018-06-14 12:22                           ` Dmitry A. Kazakov
2018-06-15  3:35                             ` Lucretia
2018-06-15  7:20                               ` Dmitry A. Kazakov
2018-06-15 16:03                                 ` Lucretia
2018-06-15 20:50                                   ` Dennis Lee Bieber
2018-06-15 11:38                     ` jm.tarrasa
2018-06-15 12:06                       ` Dmitry A. Kazakov
2018-06-15 15:42                         ` J-P. Rosen
2018-06-15 17:30                           ` Simon Wright
2018-06-15 17:55                           ` jm.tarrasa
2018-06-15 19:58                             ` Shark8
2018-06-16  7:04                               ` Simon Wright
2018-06-16  9:14                               ` jm.tarrasa
2018-06-16 10:22                                 ` Simon Wright
2018-06-16 10:50                                   ` Jeffrey R. Carter
2018-06-16 11:32                                 ` Dmitry A. Kazakov
2018-06-13 21:15                   ` Paul Rubin
2018-06-14  3:20                     ` Lucretia
2018-06-14  3:27                     ` Shark8
2018-06-14  5:17                       ` Paul Rubin
2018-06-14 21:00                   ` Randy Brukardt
2018-06-15  3:41                     ` Lucretia
2018-06-15  7:08                       ` Dmitry A. Kazakov
2018-06-15  7:15                     ` Simon Wright
2018-06-14  8:51                 ` Marius Amado-Alves
2018-06-08 20:38 ` Mehdi Saada
2018-06-13  5:46   ` 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