comp.lang.ada
 help / color / mirror / Atom feed
From: Brad Moore <bmoore.ada@gmail.com>
Subject: Re: How to get Ada to “cross the chasm”?
Date: Tue, 24 Jul 2018 22:16:04 -0700 (PDT)
Date: 2018-07-24T22:16:04-07:00	[thread overview]
Message-ID: <c5a9ab43-1224-4592-8740-b7781708544f@googlegroups.com> (raw)
In-Reply-To: <fqukb9F4sb5U1@mid.individual.net>

On Saturday, July 14, 2018 at 9:48:59 AM UTC-6, Niklas Holsti wrote:
> On 18-07-14 17:28 , Shark8 wrote:
> > On Saturday, July 14, 2018 at 4:07:16 AM UTC-6, Dmitry A. Kazakov wrote:
> >>
> >> I doubt there is any real problem in Ada that cannot be resolved keeping
> >> *everything* backward compatible.
> >
> > There are some things that can't be fixed while keeping backwards
> > compatibility and *NOT* adding yet-another-way-to-do-this; which
> > is what C++ did with it's myriad of pointers and references.
> >
> > A couple of good examples:
>      [snip]
> > * Protected objects (What's in the private section ought to be the body, IMO.)
> >        protected type Signal_Object is
> >           entry Wait;
> >           procedure Signal;
> >           function Is_Open return Boolean;
> >        private
> >           Open : Boolean := False; -- WHY ARE WE EXPOSING THIS?
> >        end Signal_Object;
> 
> The answer to your shouted question is (as I suspect you know): because 
> a protected type declaration defines a type that will be used to declare 
> objects, and the compiler must know the size, structure and alignment of 
> the data contained in the object before it can make code to create such 
> an object.
> 
> If the private component declarations were moved to the body, clients 
> of the package that defines the protected type would come to depend on 
> the body of that package.
> 
> Nevertheless, as such a dependency is usually not fatal (resulting also 
> from generics) I don't see why Ada could not be extended to allow the 
> private component declarations to be optionally postponed to the body, 
> for example with this declaration syntax (just a what-came-first-to-mind 
> sketch):
> 
>     protected type Signal_Object is
>        entry Wait;
>        procedure Signal;
>        function Is_Open return Boolean;
>     private in body; -- NOT current Ada!
>     end Signal_Object;
> 
> and this body syntax (the declarations of the object components come 
> first, because the operations must see them):
> 
>     protected body Signal_Object is
>        Open : Boolean := False;  -- NOT current Ada!
>        entry Wait
>           ...  -- Body of Wait.
>        ... -- Bodies of Signal and Is_Open.
>     end Signal_Object;
> 
> I don't see any backward compatibility problem with this.
> 
> Of course it is "yet another way" to declare the components of a 
> protected type. So what? If you convince enough people that this kind of 
> protected declaration is desirable, you might be able to convince the 
> ARG to add it to Ada. 

Well, I cant speak for others, but I am so far not convinced that this kind of protected declaration is desirable.

I think it can be done without breaking backward 
> compatibility with current Ada.

I think what you are asking for is too close to what is already available, and so I think there is not enough benefit to add "more ways to doing the same thing"

Here are two ways to do something similar.

First, we could use an incomplete type (Taft amendment type) to move the protected type declaration to the body of a package, as in...

package Q
is

   type Signal_Object is limited private;

   procedure Wait   (Item : in out Signal_Object);
     --  with Nonblocking => False;

   procedure Signal (Item : in out Signal_Object);
     --  with Nonblocking;

   function Is_Open (Item : Signal_Object) return Boolean;
     --  with Nonblocking;

   function Create return Signal_Object;

private

   type Private_In_Body;
   type Signal_Object is not null access Private_In_Body;

end Q;

package body Q is

   protected type Private_In_Body is
      entry     Wait;
      procedure Signal;
      function  Is_Open return Boolean;
   private
      Open : Boolean := False;
   end Private_In_Body;

   protected body Private_In_Body is

      function Is_Open return Boolean is
      begin
         return Open;
      end Is_Open;

      procedure Signal is
      begin
         Open := True;
      end Signal;

      entry Wait when Open is
      begin
         null;
      end Wait;

   end Private_In_Body;

   function Create return Signal_Object is
   begin
      return new Private_In_Body;
   end Create;

   procedure Signal (Item : in out Signal_Object) is
   begin
      Item.Signal;
   end Signal;

   function Is_Open (Item : Signal_Object) return Boolean is
      (Item.Is_Open);

   procedure Wait   (Item : in out Signal_Object) is
   begin
      Item.Wait;
   end Wait;

end Q;

We are hiding the implementation behind an access type, but that is not exposed in the public part of the package, so that seems OK to me.
The public view is not of a protected type, but instead a limited type, however with Ada 202x, we will be able to specify that the Wait call is a call that can block (via the Nonblocking aspect), which gives more of a clue about the implementation.

I think a reasonable approach however is to have the protected type declared in the private part of the package. 
Here is one way to do that using protected interfaces....

package P is

   type  Signal_Interface is protected interface;

   procedure Wait   (Item : in out Signal_Interface) is abstract;
   procedure Signal (Item : in out Signal_Interface) is abstract;
   function Is_Open (Item : Signal_Interface) return Boolean is abstract;

end P;

with P;

package R is
   type Signal_Object is synchronized new P.Signal_Interface with private;

   overriding
   procedure Wait   (Item : in out Signal_Object)
     with Synchronization => By_Entry;

   overriding
   procedure Signal (Item : in out Signal_Object)
      with Synchronization => By_Protected_Procedure;

   overriding
   function Is_Open (Item : Signal_Object) return Boolean;

private

   protected type Signal_Object is new P.Signal_Interface with
      entry Wait_For_Signal;
      procedure Set_Signal;
      function Signal_Is_Open return Boolean;
   private
      Open : Boolean := False;
   end Signal_Object;

end R;

package body R is

   protected body Signal_Object is

      procedure Set_Signal is
      begin
         Open := True;
      end Set_Signal;

      function Signal_Is_Open return Boolean is
      begin
         return Open;
      end Signal_Is_Open;

      entry Wait_For_Signal when Open is
      begin
         null;
      end Wait_For_Signal;

   end Signal_Object;

   overriding
   function Is_Open
     (Item : Signal_Object)
      return Boolean is
   begin
      return Item.Signal_Is_Open;
   end Is_Open;

   overriding procedure Signal
     (Item : in out Signal_Object) is
   begin
      Item.Set_Signal;
   end Signal;

   overriding procedure Wait
     (Item : in out Signal_Object) is
   begin
      Item.Wait_For_Signal;
   end Wait;

end R;

with Ada.Text_IO; use Ada.Text_IO;
with Q;
with R;

procedure Main
is
begin -- Main

   Example_1 :
   declare
      The_Signal : Q.Signal_Object := Q.Create;

      task T;
      task body T is
      begin
         delay 5.0;
         Put_Line ("Signalling...");
         Q.Signal (The_Signal);
      end T;
   begin

      Put_Line ("The Signal is " &
                (if Q.Is_Open (The_Signal) then "Open" else "False"));

      Put_Line ("Waiting...");
      Q.Wait (The_Signal);
      Put_Line ("Done");
   end Example_1;

   Example_2 :
   declare
      The_Signal : R.Signal_Object;

      task T;
      task body T is
      begin
         delay 5.0;
         Put_Line ("Signalling...");
         The_Signal.Signal;  -- Dot_Prefix notation
      end T;
   begin

      Put_Line ("The Signal is " &
                (if The_Signal.Is_Open then "Open" else "False"));

      Put_Line ("Waiting...");
      The_Signal.Wait;
      Put_Line ("Done");
   end Example_2;

end Main;

The advantage of this second example, is that the client of the package is more aware that the type, Signal_Object, is a protected object. Also, because it is a tagged type, the dot prefix notation can be used when making the calls, as shown in Example_2.

Alternatively, we could have not used interfaces, but declared the protected type in the private part, while using a limited type in the public part as the partial view of the type.

Other variants are also possible, such as using a controlled type to provide finalization for types involving heap allocation, etc.

Brad Moore

> 
> -- 
> Niklas Holsti
> Tidorum Ltd
> niklas holsti tidorum fi
>        .      @       .

  reply	other threads:[~2018-07-25  5:16 UTC|newest]

Thread overview: 510+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-15 21:48 How to get Ada to “cross the chasm”? Dan'l Miller
2018-04-16  3:02 ` Dan'l Miller
2018-04-25 22:48   ` How to get Ada to "cross the chasm"? Randy Brukardt
2018-04-26  8:29     ` Dmitry A. Kazakov
2018-04-16  5:35 ` How to get Ada to “cross the chasm”? Paul Rubin
2018-04-16 14:07   ` Dan'l Miller
2018-04-16 15:23     ` Mehdi Saada
2018-04-16 18:07       ` How to get Ada to ?cross the chasm?? Simon Clubley
2018-04-16 18:13         ` Luke A. Guest
2018-04-16 19:04           ` Dan'l Miller
2018-04-16 19:53             ` Luke A. Guest
2018-07-10  2:41         ` toanpx.hut
2018-07-10  4:32           ` Lucretia
2018-07-10  4:55             ` Jacob Sparre Andersen
2018-07-10 12:06               ` Dan'l Miller
2018-07-10 12:36                 ` Lucretia
2018-07-10 14:26                   ` Simon Wright
2018-07-10 15:37                     ` Alejandro R. Mosteo
2018-07-10 13:23                 ` Björn Lundin
2018-07-10 14:19                   ` Simon Wright
2018-07-10 14:57                     ` Björn Lundin
2018-07-10 15:31                       ` Dennis Lee Bieber
2018-07-10 18:12                         ` Björn Lundin
2018-07-10 18:22                           ` Lucretia
2018-07-10 18:26                 ` Maciej Sobczak
2018-07-10 19:16                   ` Dan'l Miller
2018-07-10 14:23               ` Simon Wright
2018-04-17 15:53   ` How to get Ada to “cross the chasm”? Dan'l Miller
2018-04-17 18:27     ` Dan'l Miller
2018-04-19  5:57     ` Paul Rubin
2018-04-19 14:48       ` Dan'l Miller
2018-04-20 10:27         ` Paul Rubin
2018-04-20 13:25           ` Dan'l Miller
2018-04-20 13:44             ` Shark8
2018-04-20 17:41               ` Paul Rubin
2018-04-20 21:16                 ` Shark8
2018-04-20 21:25                   ` Paul Rubin
2018-04-20 22:49                     ` Shark8
2018-04-21  0:10                       ` Paul Rubin
2018-04-21  1:50                         ` Shark8
2018-04-21  2:10                           ` Dan'l Miller
2018-04-21  5:38                           ` Paul Rubin
2018-04-25 23:02                         ` How to get Ada to "cross the chasm"? Randy Brukardt
2018-04-26  7:45                           ` Simon Wright
2018-04-26  7:57                             ` Paul Rubin
2018-04-26  8:35                           ` Dmitry A. Kazakov
2018-04-26 17:38                             ` Mehdi Saada
2018-04-26 19:38                               ` Dmitry A. Kazakov
2018-04-27  9:23                                 ` G. B.
2018-04-27  9:52                                   ` Dmitry A. Kazakov
2018-04-26 23:19                               ` Randy Brukardt
2018-04-27  7:40                                 ` Dmitry A. Kazakov
2018-04-30 19:40                                 ` Norman Worth
2018-04-27  1:10                               ` Paul Rubin
2018-04-29 18:23                               ` Paul Rubin
2018-04-21 23:01               ` How to get Ada to “cross the chasm”? Brian Drummond
2018-04-21 23:50                 ` Paul Rubin
2018-04-20 19:34             ` Paul Rubin
2018-04-20 21:16               ` Dan'l Miller
2018-04-20 21:24                 ` Dan'l Miller
2018-04-21 19:27               ` Simon Wright
2018-04-21 21:28                 ` Paul Rubin
2018-04-21 21:48                   ` Paul Rubin
2018-04-21 22:11                   ` Dan'l Miller
2018-04-26  3:48                     ` Paul Rubin
2018-04-25 22:46           ` How to get Ada to "cross the chasm"? Randy Brukardt
2018-04-25 22:56     ` Randy Brukardt
2018-04-18 13:29   ` How to get Ada to “cross the chasm”? Jere
2018-04-18 17:02     ` Lucretia
2018-04-18 17:59       ` Dan'l Miller
2018-04-19  2:00         ` Dennis Lee Bieber
2018-05-04 13:30       ` Jere
2018-05-04 15:57         ` Simon Wright
2018-05-04 19:07         ` Niklas Holsti
2018-05-04 19:25           ` Jere
2018-05-05  4:01           ` Dennis Lee Bieber
2018-05-05  8:06             ` Simon Wright
2018-05-05 20:02               ` Paul Rubin
2018-05-05 20:22                 ` Niklas Holsti
2018-05-05 23:06                   ` Paul Rubin
2018-05-05 23:32                     ` G.B.
2018-05-05 23:37                       ` Paul Rubin
2018-05-06  1:15                         ` Dennis Lee Bieber
2018-05-06  7:08                           ` Dmitry A. Kazakov
2018-05-06  8:02                           ` Simon Wright
2018-05-06  8:38                             ` Niklas Holsti
2018-05-06 10:16                               ` Simon Wright
2018-05-06 15:18                                 ` Niklas Holsti
2018-05-06 17:40                                   ` Simon Wright
2018-05-06 16:58                     ` Jacob Sparre Andersen
2018-05-08  6:32                       ` Paul Rubin
2018-05-08  8:28                         ` Jacob Sparre Andersen
2018-05-09  6:42                           ` Paul Rubin
2018-05-09 11:18                             ` Jacob Sparre Andersen
2018-05-07 23:44                     ` How to get Ada to 'cross the chasm'? Randy Brukardt
2018-07-14  9:27       ` How to get Ada to “cross the chasm”? jm.tarrasa
2018-07-14 10:07         ` Dmitry A. Kazakov
2018-07-14 14:28           ` Shark8
2018-07-14 15:04             ` Dmitry A. Kazakov
2018-07-14 15:48             ` Niklas Holsti
2018-07-25  5:16               ` Brad Moore [this message]
2018-07-15 14:32             ` AdaMagica
2018-07-15 15:16               ` Dmitry A. Kazakov
2018-07-14 14:49         ` Dennis Lee Bieber
2018-04-19  9:31     ` Marius Amado-Alves
2018-04-18  1:48 ` Mehdi Saada
2018-04-18  9:54   ` Simon Wright
2018-04-18 12:47     ` How to get Ada to ?cross the chasm?? Simon Clubley
2018-04-18 14:12       ` Simon Wright
2018-04-18 19:57       ` invalid
2018-04-18 12:44   ` Simon Clubley
2018-04-18 13:53     ` J-P. Rosen
2018-04-18 18:19       ` Simon Clubley
2018-04-18 18:54         ` Jacob Sparre Andersen
2018-04-18 14:31     ` Dan'l Miller
2018-04-18 17:08       ` Lucretia
2018-04-18 18:42         ` Dan'l Miller
2018-04-18 21:03         ` Niklas Holsti
2018-04-19  4:01           ` Dan'l Miller
2018-04-19 14:28             ` Shark8
2018-04-19 14:57               ` Dmitry A. Kazakov
2018-04-19 15:25               ` Dan'l Miller
2018-04-20 16:32             ` gautier_niouzes
2018-04-20 17:45               ` Dan'l Miller
2018-04-22 20:14                 ` gautier.de.montmollin
2018-04-22 20:34                 ` gautier_niouzes
2018-04-25 23:31               ` Randy Brukardt
2018-04-25 23:27             ` Randy Brukardt
2018-04-19 16:02           ` Jeffrey R. Carter
2018-04-19  6:47         ` Paul Rubin
2018-04-18 14:36     ` Simon Wright
2018-04-18 15:56       ` Dan'l Miller
2018-04-18 17:15         ` Lucretia
2018-04-18 17:36       ` Simon Clubley
2018-04-18 20:02         ` invalid
2018-04-25 23:35         ` Randy Brukardt
2018-04-18 16:45     ` Lucretia
2018-04-18 17:30       ` Simon Wright
2018-04-18 17:49         ` Simon Clubley
2018-04-18 17:11     ` Jeffrey R. Carter
2018-04-18 20:00     ` invalid
2018-04-18 20:46       ` Simon Wright
2018-04-22 17:48         ` invalid
2018-04-22 20:15           ` Simon Wright
2018-04-19 15:12     ` Olivier Henley
2018-04-20  8:16     ` briot.emmanuel
2018-04-20  9:42       ` Maciej Sobczak
2018-04-20 13:32       ` Lucretia
2018-04-22 17:52       ` invalid
2018-04-25 23:41         ` Randy Brukardt
2018-04-26  1:04           ` Dan'l Miller
2018-04-26 23:27             ` Randy Brukardt
2018-04-26  1:45           ` Paul Rubin
2018-04-26 23:01             ` Randy Brukardt
2018-04-27  0:53               ` Paul Rubin
2018-04-27 21:20                 ` Randy Brukardt
2018-04-28 17:25                 ` Jacob Sparre Andersen
2018-04-29  0:39                   ` patrick
2018-04-29  5:26                     ` Paul Rubin
2018-04-29  7:15                     ` Simon Wright
2018-04-29  7:54                     ` Jeffrey R. Carter
2018-04-29  8:26                       ` Paul Rubin
2018-04-29  7:57                     ` Jeffrey R. Carter
2018-04-29  8:21                       ` Dmitry A. Kazakov
2018-04-29 11:33                       ` patrick
2018-04-29 12:31                         ` Mehdi Saada
2018-04-29 14:34                           ` Paul Rubin
2018-04-29 14:42                             ` Dmitry A. Kazakov
2018-04-29 14:59                               ` Paul Rubin
2018-04-29 15:16                                 ` Dmitry A. Kazakov
2018-04-29 14:45                             ` patrick
2018-05-01  2:45                             ` Randy Brukardt
2018-04-29 14:57                         ` Jeffrey R. Carter
2018-04-30 13:06                       ` Simon Clubley
2018-04-30 16:56                         ` Jeffrey R. Carter
2018-04-30 17:18                           ` Simon Clubley
2018-04-30 17:44                           ` Dan'l Miller
2018-04-30 20:53                             ` Simon Wright
2018-04-29  8:39                     ` Jeffrey R. Carter
2018-04-29 10:50                       ` patrick
2018-04-29 14:52                         ` Jeffrey R. Carter
2018-04-29 15:09                         ` Paul Rubin
2018-04-29 15:14                           ` patrick
2018-04-30  9:35                           ` Björn Lundin
2018-04-30 15:15                             ` Jacob Sparre Andersen
2018-05-11 20:19                         ` Warren
2018-05-11 20:44                           ` Jeffrey R. Carter
2018-05-12  7:38                           ` G.B.
2018-05-15  7:19                           ` Jacob Sparre Andersen
2018-05-15  7:24                             ` Paul Rubin
2018-05-15  7:44                               ` Jacob Sparre Andersen
2018-04-29 14:15                     ` Lucretia
2018-04-29  5:22                   ` Paul Rubin
2018-04-29  6:29                     ` gautier_niouzes
2018-04-29  6:44                     ` gautier_niouzes
2018-04-29  7:01                       ` Paul Rubin
2018-04-29  7:21                         ` Simon Wright
2018-04-29  7:48                         ` Jeffrey R. Carter
2018-04-29 14:58                           ` Paul Rubin
2018-05-01  3:08                             ` Randy Brukardt
2018-05-01  4:26                               ` Paul Rubin
2018-05-01  6:43                                 ` Dmitry A. Kazakov
2018-05-01  7:09                                   ` gautier_niouzes
2018-05-01 22:32                                     ` Randy Brukardt
2018-05-02  8:46                                       ` Dmitry A. Kazakov
2018-05-02 14:23                                       ` Paul Rubin
2018-05-02 14:36                                         ` Dmitry A. Kazakov
2018-05-01  8:17                                 ` Jeffrey R. Carter
2018-05-01  9:02                                   ` Paul Rubin
2018-05-01 11:29                                     ` Jeffrey R. Carter
2018-05-01 15:45                                       ` patrick
2018-05-01 16:48                                         ` Lucretia
2018-05-01 17:07                                         ` Dan'l Miller
2018-05-01 17:27                                           ` Dan'l Miller
2018-05-02  0:23                                           ` Paul Rubin
2018-05-01 22:37                                         ` Randy Brukardt
2018-05-02  0:05                                           ` David Trudgett
2018-05-01 17:34                                       ` Paul Rubin
2018-05-01 18:30                                         ` Dan'l Miller
2018-05-02  0:02                                           ` Paul Rubin
2018-05-02 16:51                                   ` G.B.
2018-05-01  2:59                         ` Randy Brukardt
2018-05-01  3:45                           ` Paul Rubin
2018-05-01  7:21                             ` gautier_niouzes
2018-05-02  0:46                               ` Paul Rubin
2018-05-02 21:27                                 ` Randy Brukardt
2018-05-02 22:28                                   ` Paul Rubin
2018-05-03  0:07                                     ` Mehdi Saada
2018-05-03  0:25                                       ` Paul Rubin
2018-05-03 23:14                                     ` Randy Brukardt
2018-05-04  0:07                                       ` Paul Rubin
2018-05-04 23:29                                         ` Randy Brukardt
2018-05-05  4:07                                           ` Dennis Lee Bieber
2018-05-05  9:50                                             ` Ben Bacarisse
2018-05-05 23:35                                           ` Paul Rubin
2018-05-06  8:34                                             ` Niklas Holsti
2018-05-06  9:53                                               ` Dmitry A. Kazakov
2018-05-06 15:32                                                 ` Niklas Holsti
2018-05-06 17:40                                                   ` Dmitry A. Kazakov
2018-05-06 19:27                                                     ` Niklas Holsti
2018-05-06 21:02                                                       ` Dmitry A. Kazakov
2018-05-07  1:31                                                         ` Paul Rubin
2018-05-07  7:25                                                           ` Dmitry A. Kazakov
2018-05-07 17:49                                                             ` Paul Rubin
2018-05-07 19:05                                                               ` Dmitry A. Kazakov
2018-05-07 20:29                                                                 ` Paul Rubin
2018-05-07 23:54                                                                   ` Randy Brukardt
2018-05-08  7:34                                                                   ` Dmitry A. Kazakov
2018-05-09  5:02                                                                     ` Paul Rubin
2018-05-09  6:41                                                                       ` Niklas Holsti
2018-05-09  6:49                                                                         ` Paul Rubin
2018-05-09  8:25                                                                       ` Dmitry A. Kazakov
2018-05-09 21:33                                                                         ` Paul Rubin
2018-05-10  8:07                                                                           ` Dmitry A. Kazakov
2018-05-10 22:27                                                                             ` Randy Brukardt
2018-05-11  1:07                                                                             ` Paul Rubin
2018-05-11 10:04                                                                               ` Dmitry A. Kazakov
2018-05-11 10:57                                                                                 ` Niklas Holsti
2018-05-11 12:06                                                                                   ` Dmitry A. Kazakov
2018-05-11 21:29                                                                               ` Randy Brukardt
2018-05-10 21:58                                                                           ` Randy Brukardt
2018-05-10 22:52                                                                             ` Paul Rubin
2018-05-11  7:15                                                                               ` Simon Wright
2018-05-11  7:21                                                                               ` Niklas Holsti
2018-05-11 20:46                                                                                 ` Randy Brukardt
2018-05-11 12:46                                                                               ` Lucretia
2018-05-14 10:56                                                                                 ` Marius Amado-Alves
2018-05-08 22:26                                                                   ` Niklas Holsti
2018-05-09  1:20                                                                     ` Paul Rubin
2018-05-09 20:03                                                                       ` Niklas Holsti
2018-05-09 22:03                                                                         ` Paul Rubin
2018-05-10 20:47                                                                           ` Niklas Holsti
2018-05-10 23:15                                                                             ` Dennis Lee Bieber
2018-05-11  7:51                                                                               ` Niklas Holsti
2018-05-11  8:10                                                                                 ` Paul Rubin
2018-05-11  9:16                                                                                   ` Niklas Holsti
2018-05-11 16:45                                                                               ` Jeffrey R. Carter
2018-05-11 19:22                                                                               ` Niklas Holsti
2018-05-11 22:39                                                                             ` Paul Rubin
2018-05-12  9:29                                                                               ` Niklas Holsti
2018-05-12 10:57                                                                                 ` Jeffrey R. Carter
2018-05-12 15:51                                                                                   ` Niklas Holsti
2018-05-12 16:08                                                                                     ` Jeffrey R. Carter
2018-05-12 17:10                                                                                       ` Paul Rubin
2018-05-14 22:21                                                                                   ` Randy Brukardt
2018-05-15 17:34                                                                                     ` Jeffrey R. Carter
2018-05-15 21:32                                                                                       ` Randy Brukardt
2018-05-16 16:57                                                                                         ` Jeffrey R. Carter
2018-05-16 18:07                                                                                           ` Dan'l Miller
2018-05-16 18:19                                                                                           ` Paul Rubin
2018-05-15 18:44                                                                                     ` Dan'l Miller
2018-05-15 20:41                                                                                     ` wilson
2018-05-12 15:45                                                                                 ` Dennis Lee Bieber
2018-05-12 19:04                                                                                   ` Niklas Holsti
2018-05-12 19:59                                                                                     ` Paul Rubin
2018-05-13 13:19                                                                                       ` Niklas Holsti
2018-05-13 17:03                                                                                         ` Paul Rubin
2018-05-14  0:36                                                                                           ` Dennis Lee Bieber
2018-05-12 20:01                                                                                     ` Dennis Lee Bieber
2018-05-13 13:41                                                                                       ` Niklas Holsti
2018-05-13 15:00                                                                                         ` Dennis Lee Bieber
2018-05-12 18:37                                                                                 ` Paul Rubin
2018-05-12 21:27                                                                                   ` Forth and others (Was Re: How to get Ada to ?cross the chasm??) Niklas Holsti
2018-05-13  2:21                                                                                     ` Paul Rubin
2018-05-13  3:20                                                                                       ` Dennis Lee Bieber
2018-05-13  3:34                                                                                         ` Paul Rubin
2018-05-13  6:33                                                                                           ` Simon Wright
2018-05-13 10:21                                                                                           ` Mart van de Wege
2018-05-13 12:43                                                                                       ` Niklas Holsti
2018-05-13  8:06                                                                                     ` Jeffrey R. Carter
2018-05-09  8:25                                                                     ` How to get Ada to ?cross the chasm?? Dmitry A. Kazakov
2018-05-08 21:43                                                               ` Niklas Holsti
2018-05-08 21:28                                                             ` Niklas Holsti
2018-05-08 21:46                                                               ` Dmitry A. Kazakov
2018-05-09  7:23                                                                 ` Paul Rubin
2018-05-09  8:37                                                                   ` Dmitry A. Kazakov
2018-05-09 19:41                                                                 ` Niklas Holsti
2018-05-09 19:48                                                                   ` Dmitry A. Kazakov
2018-05-08 21:02                                                         ` Niklas Holsti
2018-05-08 21:34                                                           ` Dmitry A. Kazakov
2018-05-06 19:02                                                 ` Niklas Holsti
2018-05-06 18:38                                               ` Paul Rubin
2018-05-08 20:53                                                 ` Niklas Holsti
2018-05-08 22:41                                                   ` Paul Rubin
2018-05-07  1:49                                               ` Paul Rubin
2018-05-08 21:23                                                 ` Niklas Holsti
2018-05-09  0:53                                                   ` Paul Rubin
2018-05-10 20:05                                                     ` Niklas Holsti
2018-05-10 21:57                                                       ` Paul Rubin
2018-05-11 12:20                                                         ` Marius Amado-Alves
2018-05-11 16:34                                                           ` Jeffrey R. Carter
2018-05-11 17:39                                                             ` Paul Rubin
2018-05-11 18:59                                                               ` Niklas Holsti
2018-05-11 19:50                                                                 ` Paul Rubin
2018-05-11 20:32                                                                   ` Niklas Holsti
2018-05-12  1:04                                                                     ` Paul Rubin
2018-05-11 20:39                                                                   ` Niklas Holsti
2018-05-11 21:45                                                                     ` Randy Brukardt
2018-05-11 22:04                                                                       ` Niklas Holsti
2018-05-12  6:44                                                                         ` J-P. Rosen
2018-05-11 19:58                                                                 ` Jeffrey R. Carter
2018-05-08 20:44                                         ` Niklas Holsti
2018-05-08 21:31                                           ` Paul Rubin
2018-05-10 11:16                                             ` Niklas Holsti
2018-05-10 19:32                                               ` Paul Rubin
2018-05-04  0:59                                     ` Nasser M. Abbasi
2018-05-03  7:15                                 ` gautier_niouzes
2018-05-03  7:20                                   ` Paul Rubin
2018-05-03 12:05                                     ` gautier_niouzes
2018-05-03 20:38                                       ` Paul Rubin
2018-05-03 22:27                                         ` Randy Brukardt
2018-05-03 22:41                                           ` Paul Rubin
2018-05-03 23:45                                             ` Randy Brukardt
2018-05-04  0:28                                               ` Paul Rubin
2018-05-04 22:30                                                 ` Randy Brukardt
2018-05-09 20:03                                                   ` Paul Rubin
2018-05-09 20:15                                                     ` Niklas Holsti
2018-05-09 20:41                                                       ` Paul Rubin
2018-05-09 22:56                                                     ` Randy Brukardt
2018-05-09 23:33                                                       ` Paul Rubin
2018-05-10  0:03                                                         ` Luke A. Guest
2018-05-10  0:23                                                           ` Nasser M. Abbasi
2018-05-10  1:53                                                             ` Luke A. Guest
2018-05-10  0:41                                                           ` Paul Rubin
2018-05-10  1:53                                                             ` Luke A. Guest
2018-05-10  2:07                                                               ` Paul Rubin
2018-05-10  7:29                                                                 ` Dmitry A. Kazakov
2018-05-10  3:47                                                             ` Shark8
2018-05-10  4:08                                                               ` Paul Rubin
2018-05-09 23:55                                                       ` Luke A. Guest
2018-05-10 22:10                                                         ` Randy Brukardt
2018-05-10  9:01                                                       ` Jeffrey R. Carter
2018-05-10 17:34                                                         ` Paul Rubin
2018-05-10 19:11                                                           ` Dennis Lee Bieber
2018-05-10 19:36                                                             ` Simon Wright
2018-05-10 20:00                                                             ` Paul Rubin
2018-05-10 21:23                                                               ` Niklas Holsti
2018-05-10 23:21                                                                 ` Paul Rubin
2018-05-11  1:32                                                                   ` gautier_niouzes
2018-05-11  7:58                                                                     ` Niklas Holsti
2018-05-11  8:21                                                                       ` Paul Rubin
2018-05-11  7:04                                                                   ` Niklas Holsti
2018-05-11  8:07                                                                     ` Paul Rubin
2018-05-10 22:15                                                               ` Randy Brukardt
2018-05-10 23:32                                                               ` Dennis Lee Bieber
2018-05-11  0:05                                                                 ` Paul Rubin
2018-05-11  2:54                                                                   ` Dennis Lee Bieber
2018-05-11  8:43                                                                   ` Niklas Holsti
2018-05-11  9:09                                                                     ` Paul Rubin
2018-05-11  9:14                                                                       ` Paul Rubin
2018-05-11 13:07                                                                         ` gautier_niouzes
2018-05-11 11:26                                                                       ` Niklas Holsti
2018-05-11 21:24                                                                         ` Randy Brukardt
2018-05-11 13:09                                                                       ` Lucretia
2018-05-11 17:51                                                                         ` Paul Rubin
2018-05-11 14:35                                                                       ` Dennis Lee Bieber
2018-05-11 21:09                                                                     ` Randy Brukardt
2018-05-04  7:15                                               ` Simon Wright
2018-05-04 22:02                                                 ` Randy Brukardt
2018-05-05  7:37                                                   ` Simon Wright
2018-05-07 20:40                                                     ` Randy Brukardt
2018-05-08 20:41                                           ` Niklas Holsti
2018-05-08 21:00                                             ` Egil H H
2018-05-09 21:57                                               ` Randy Brukardt
2018-05-09 22:05                                                 ` Paul Rubin
2018-05-09 22:05                                             ` Randy Brukardt
2018-05-09 22:09                                               ` Paul Rubin
2018-05-11  7:37                                               ` Niklas Holsti
2018-05-04  3:24                                         ` gautier_niouzes
2018-05-04  3:34                                           ` Paul Rubin
2018-05-04  4:28                                             ` Paul Rubin
2018-05-08  2:05                                               ` gautier_niouzes
2018-05-08  2:19                                                 ` Paul Rubin
2018-05-08  2:47                                                   ` gautier_niouzes
2018-05-08  2:54                                                     ` Dan'l Miller
2018-05-08  3:25                                                       ` gautier_niouzes
2018-05-08  4:19                                                     ` Paul Rubin
2018-05-08  5:46                                                     ` Paul Rubin
2018-05-08  6:31                                                       ` Luke A. Guest
2018-05-08  6:34                                                         ` Paul Rubin
2018-05-08 14:25                                                           ` gautier_niouzes
2018-05-08  6:36                                                       ` gautier_niouzes
2018-05-08  9:03                                                         ` Paul Rubin
2018-05-08 14:05                                                           ` gautier_niouzes
2018-05-08 14:31                                                             ` Simon Wright
2018-05-08 16:39                                                               ` Jeffrey R. Carter
2018-05-08 18:54                                                             ` Paul Rubin
2018-05-08 19:05                                                               ` Simon Wright
2018-05-08 20:12                                                             ` Randy Brukardt
2018-05-08 20:24                                                               ` J-P. Rosen
2018-05-09  9:27                                                                 ` Björn Lundin
2018-05-09  9:56                                                                   ` J-P. Rosen
2018-05-09 21:53                                                                   ` Randy Brukardt
2018-05-08  7:45                                                       ` Simon Wright
2018-05-08 21:59                                                       ` Niklas Holsti
2018-05-09  8:44                                                         ` Dmitry A. Kazakov
2018-05-04 23:34                                             ` Randy Brukardt
2018-05-01 22:17                             ` Randy Brukardt
2018-05-02  0:04                               ` Paul Rubin
2018-05-02 21:24                                 ` Randy Brukardt
2018-05-02 22:01                                   ` Paul Rubin
2018-04-29 16:14                     ` Jacob Sparre Andersen
2018-04-29 16:54                       ` Paul Rubin
2018-04-29 18:21                         ` Jacob Sparre Andersen
2018-04-29 18:52                           ` Paul Rubin
2018-04-29 19:09                             ` Jacob Sparre Andersen
2018-04-29 20:44                               ` Mehdi Saada
2018-04-29 20:55                             ` gautier_niouzes
2018-04-29 21:20                               ` Paul Rubin
2018-04-29 22:06                                 ` gautier_niouzes
2018-04-29 23:22                                   ` Paul Rubin
2018-04-30  1:50                                     ` Jere
2018-04-30  2:16                                     ` Lucretia
2018-04-30  2:33                                       ` Paul Rubin
2018-04-30  3:05                                         ` Luke A. Guest
2018-04-30  3:37                                           ` Paul Rubin
2018-04-30  4:02                                             ` Lucretia
2018-04-30  4:03                                               ` Paul Rubin
2018-04-30  4:18                                                 ` Lucretia
2018-04-30  5:11                                                   ` Paul Rubin
2018-04-30  5:21                                                     ` Lucretia
2018-04-30  5:29                                                       ` Lucretia
2018-04-30  4:04                                             ` Lucretia
2018-04-30 14:30                                 ` Dan'l Miller
2018-05-01  3:19                                   ` Randy Brukardt
2018-05-02  2:07                                   ` Paul Rubin
2018-05-01  2:32                             ` Dan'l Miller
2018-05-02  0:47                               ` Paul Rubin
2018-04-29 11:34                   ` patrick
2018-07-13  8:22       ` jm.tarrasa
2018-07-13 15:17         ` Lucretia
2018-07-21 19:51         ` Jacob Sparre Andersen
2018-04-25 23:19     ` Randy Brukardt
2018-04-28 17:13       ` Jacob Sparre Andersen
2018-04-28 17:25         ` Mehdi Saada
2018-05-01  2:36           ` Randy Brukardt
2018-05-01  2:32         ` Randy Brukardt
2018-05-01 18:39           ` marciant
2018-04-30  2:09     ` Commercial GPL David Trudgett
2018-04-30  6:01       ` Jacob Sparre Andersen
2018-04-30 20:39     ` How to get Ada to ?cross the chasm?? Norman Worth
2018-04-30 21:36       ` Simon Wright
2018-05-02 14:39     ` ric.wai88
2018-05-02 17:10       ` Dan'l Miller
2018-05-02 22:48         ` Niklas Holsti
2018-05-03 17:00           ` Simon Wright
2018-05-03 17:58             ` Dan'l Miller
2018-05-03 18:37             ` Dan'l Miller
2018-04-18 22:44 ` How to get Ada to “cross the chasm”? Olivier Henley
2018-04-30 11:28 ` Mehdi Saada
2018-04-30 12:39   ` Dmitry A. Kazakov
2018-04-30 11:30 ` Mehdi Saada
2018-04-30 20:15 ` Norman Worth
2018-05-04 16:13 ` guyclaude.burger
2018-05-04 16:47   ` Dan'l Miller
2018-05-04 23:48     ` How to get Ada to "cross the chasm"? Randy Brukardt
2018-05-05  3:33       ` Dan'l Miller
2018-05-05  8:41         ` Luke A. Guest
2018-05-06  0:12           ` Paul Rubin
2018-05-07 20:50           ` Randy Brukardt
2018-05-07 21:13             ` Paul Rubin
2018-05-07 23:59               ` Randy Brukardt
2018-05-07 21:27             ` Dan'l Miller
2018-05-04 19:05   ` How to get Ada to “cross the chasm”? Jere
2018-05-04 23:55     ` How to get Ada to "cross the chasm"? Randy Brukardt
2018-05-05 16:47     ` How to get Ada to “cross the chasm”? G.B.
2018-05-07 23:36       ` How to get Ada to "cross the chasm"? Randy Brukardt
2018-05-09  7:33         ` G.B.
2018-05-18 12:10 ` How to get Ada to “cross the chasm”? Lucretia
  -- strict thread matches above, loose matches on Subject: below --
2018-05-11 22:39 How to get Ada to 'cross the chasm'? 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