comp.lang.ada
 help / color / mirror / Atom feed
From: "Matthew Heaney" <mheaney@on2.com>
Subject: Re: why not
Date: Wed, 31 Oct 2001 13:56:36 -0500
Date: 2001-10-31T13:56:36-05:00	[thread overview]
Message-ID: <tu0i54ndv2q94d@corp.supernews.com> (raw)
In-Reply-To: 9rp9bk$6m9$1@nh.pace.co.uk


"Marin David Condic" <dont.bother.mcondic.auntie.spam@[acm.org> wrote in
message news:9rp9bk$6m9$1@nh.pace.co.uk...
> Perhaps you would agree with my proposal that a first cut at a standard
> component library could start with some basic form of Lists and Maps?

We could start with an unbounded, doubly-linked list, a la STL std::list.

>  I'd
> like to see an informal adoption of a handful of packages that let the
user
> make lists (sorted? unsorted?) of basic data types (things like Integers,
> Strings, plain vanilla records, ...) and Maps of similar items.

The element type that is nonlimited and definite.  (Type String all by
itself would NOT be supported, because that type is unconstrained.)

The container itself doesn't do sorting.  (I assume there would be a
separate algorithms package, that operates on iterators.  That influences
what iterator types look like.)

Here's one idea:

generic
   type Element_Type is private;
   with function "=" (L, R : Element_Type) return Boolean is <>;
package Ada.Lists_Unbounded is

   type List_Type is private;

   procedure Push_Front (List : in out List_Type; Element : in
Element_Type);

   procedure Push_Back (List : in out List_Type; Element : in Element_Type);

   procedure Clear (List : in out List_Type);
...
   type Iterator_Type (List : access List_Type) is limited private;

   type Constant_Iterator_Type (List : access constant List_Type) is limited
private;

   type Reverse_Iterator_Type (List : access List_Type) is limited private;

   type Constant_Reverse_Iterator_Type (List : access constant List_Type) is
limited private;
...
end;

You have to decide whether the List_Type is limited or nonlimited.  The
latter implies that List_Type must privately derives from Controlled.

You have to decide whether the List_Type will automatically Clear itself
when its lifetime ends.  Your answer would influence whether List_Type is
Controlled.

The decision to be Controlled influences where the generic may be
instantiated (say, only a library scope).

Note that not automatically reclaiming memory by the list itself isn't such
a bad thing, because you can include another component in the library to do
this, like this:

generic
   type Container_Type (<>) is limited private;
   with procedure Clear (Container : in out Container_Type) is <>;
package Container_Control is

   type Control_Type (Container : access Container_Type) is limited private;
...
end;

declare
   List : aliased List_Type;
   Control : Control_Type (List'Access);
begin
   ... use list
end;

When the scope ends, Control is finalized, and during its Finalization it
calls Clear (Container).

Not making the container types controlled will make them more efficient, but
introduce the possibility for memory leaks (if the client doesn't also use a
helper type, as above).

Of course the containers should NOT be task safe.  Threading behavior can be
handled by the client himself, by combining a sequential container type with
other language primitives.  This is consistent with how the rest of the
predefined library has been designed.









  reply	other threads:[~2001-10-31 18:56 UTC|newest]

Thread overview: 315+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-07 19:31 is Ada dying? Ralph M�ritz
2001-10-07 19:42 ` martin.m.dowie
2001-10-07 21:03   ` robert
2001-10-08 16:42     ` Ted Dennison
2001-10-08 17:33     ` Ted Dennison
2001-10-09  8:02       ` Reinert Korsnes
2001-10-08  8:56   ` John McCabe
2001-10-08 21:53     ` martin.m.dowie
2001-10-09  8:13       ` John McCabe
2001-10-09  9:12         ` Martin Dowie
2001-10-09 10:39           ` John McCabe
2001-10-09 11:48             ` Martin Dowie
2001-10-09 12:58             ` Peter Amey
2001-10-09 14:51         ` Marin David Condic
2001-10-10  8:08           ` John McCabe
2001-10-09 13:12       ` Ted Dennison
2001-10-09 14:40     ` Marin David Condic
2001-10-10  8:13       ` John McCabe
2001-10-10 17:45         ` Stephen Leake
2001-10-11  8:38           ` John McCabe
2001-10-07 20:09 ` Jeffrey Carter
2001-10-07 20:56   ` Ralph M�ritz
2001-10-08 23:49   ` Poul-Erik Andreasen
2001-10-09  8:19     ` Lutz Donnerhacke
2001-10-09 13:38     ` Ted Dennison
2001-10-09 14:50       ` Robert*
2001-10-09 16:05         ` James Rogers
2001-10-09 20:30         ` Al Christians
2001-10-09 20:32           ` Pat Rogers
2001-10-10 17:04           ` Warren W. Gay VE3WWG
2001-10-10 17:02         ` Warren W. Gay VE3WWG
2001-10-10 19:14           ` Robert*
2001-10-07 20:09 ` David Botton
2001-10-08  0:46   ` Richard Riehle
2001-10-08  1:23     ` David Botton
2001-10-08  4:02       ` Robert*
2001-10-08  4:49         ` James Rogers
2001-10-08  5:42           ` Navid Azimi
2001-10-08  6:11             ` Preben Randhol
2001-10-08 16:49               ` Ted Dennison
2001-10-08  9:26             ` John English
2001-10-08 14:37             ` James Rogers
2001-10-08 17:05             ` Ted Dennison
2001-10-08  6:09           ` Robert*
2001-10-08 15:35             ` James Rogers
2001-10-08 17:02               ` Robert*
2001-10-08 18:06                 ` Martin Dowie
2001-10-08 18:44                   ` Robert*
2001-10-09  3:42                   ` minyard
2001-10-12 14:21                     ` martin.m.dowie
2001-10-13 17:18                       ` Richard Riehle
2001-10-08 18:17                 ` James Rogers
2001-10-08 18:42                   ` David Starner
2001-10-11  9:22                     ` AG
2001-10-08 19:22                 ` Stephen Leake
2001-10-09  3:11                   ` Robert*
2001-10-09  4:28                     ` tmoran
2001-10-09  4:54                       ` Robert*
2001-10-09  6:23                         ` tmoran
2001-10-09 19:44                     ` Stephen Leake
2001-10-09 20:41                       ` James Rogers
2001-10-08 19:55                 ` Dalen Kruse
2001-10-09  3:33                   ` Robert*
2001-10-09 10:41                     ` Larry Kilgallen
2001-10-09 15:21                       ` Marin David Condic
2001-10-09 16:12                         ` translations [OT] Wes Groleau
2001-10-09 11:01                 ` is Ada dying? Florian Weimer
2001-10-09 12:40                 ` John English
2001-10-09 14:38                   ` Robert*
2001-10-09 16:22                     ` Pascal Obry
2001-10-10  9:09                     ` John English
2001-10-10  9:16                     ` John English
2001-10-08  8:44           ` Robert*
2001-10-09  4:49             ` Navid Azimi
2001-10-09  9:44             ` Preben Randhol
2001-10-09 10:00               ` Lutz Donnerhacke
2001-10-09 10:06                 ` Preben Randhol
2001-10-08  8:59         ` is Ada dying?(Perhaps a CPAN network is in order?) McDoobie
2001-10-07 20:49 ` is Ada dying? Larry Kilgallen
2001-10-08  9:30   ` John English
2001-10-08  0:19 ` Preben Randhol
2001-10-08  5:45 ` Michael Bode
2001-10-09  2:45   ` James Rogers
2001-10-09  5:33     ` Michael Bode
2001-10-09 15:49     ` Marin David Condic
2001-10-09 16:23       ` Wes Groleau
2001-10-28  8:25     ` Hyman Rosen
2001-10-28  9:53       ` Larry Kilgallen
2001-10-28 17:20         ` Brian Rogoff
2001-10-29 16:36       ` Tony Gair
2001-10-09 14:10   ` Ted Dennison
2001-10-09 15:14     ` Wes Groleau
2001-10-09 15:32       ` Ted Dennison
2001-10-08  6:40 ` Florian Weimer
2001-10-08  7:38 ` Robert*
2001-10-08  9:31   ` John McCabe
2001-10-08 20:25     ` Richard Riehle
2001-10-09  8:18       ` John McCabe
2001-10-09 15:10         ` Gary Scott
2001-10-10  8:15           ` John McCabe
2001-10-18  1:37             ` Gary Scott
2001-10-18 13:16               ` Ted Dennison
2001-10-18 16:01                 ` Wes Groleau
2001-10-18 17:54                   ` Ted Dennison
2001-10-18 19:06                     ` Marin David Condic
2001-10-19  0:00                 ` Gary Scott
2001-10-10  5:03         ` Richard Riehle
2001-10-10  8:25           ` John McCabe
2001-10-10 17:41             ` Stephen Leake
2001-10-11  8:42               ` John McCabe
2001-10-10 13:38           ` Marin David Condic
2001-10-11  8:41             ` John McCabe
2001-10-11 13:53               ` Ada on the 1750a (was Re: is Ada dying?) Marin David Condic
2001-10-11 16:21                 ` John McCabe
2001-10-08 17:16   ` is Ada dying? Ted Dennison
2001-10-08 14:59 ` Stephen Leake
2001-10-08 15:02 ` Robert Dewar
2001-10-08 18:11   ` David Starner
2001-10-09 14:42     ` Vincent Marciante
2001-10-08 17:25 ` chris.danx
2001-10-08 19:57   ` Gary Scott
2001-10-08 20:56     ` chris.danx
2001-10-09 15:06       ` Gary Scott
2001-10-09 14:15   ` John English
2001-10-09 17:22     ` chris.danx
2001-10-09 21:42     ` Marin David Condic
2001-10-09 22:49     ` Ehud Lamm
2001-10-11 12:11       ` webwarrior
2001-10-13 10:36         ` Ehud Lamm
2001-10-15  8:21           ` John McCabe
2001-10-15 10:24             ` Robert*
2001-10-15 16:10               ` John McCabe
2001-10-15 20:03                 ` Robert*
2001-10-15 22:05                   ` minyard
2001-10-15 22:16                     ` Wes Groleau
2001-10-16  2:01                       ` minyard
2001-10-16 12:53                   ` John McCabe
2001-10-15 19:43               ` Wes Groleau
2001-10-15 20:07                 ` Ted Dennison
2001-10-17 15:05               ` Israel Raj T
2001-10-17 16:50                 ` John McCabe
2001-10-17 17:50                   ` Brian Rogoff
2001-10-17 19:40                     ` Larry Kilgallen
2001-10-17 20:31                       ` Marin David Condic
2001-10-11 12:29       ` why not "standardize" the Booch Components? (was Re: is Ada dying?) Pat Rogers
2001-10-11 13:23         ` why not Ted Dennison
2001-10-11 16:14           ` minyard
2001-10-11 18:10             ` Marc A. Criley
2001-10-11 19:37             ` Ted Dennison
2001-12-01 17:24             ` Harri J Haataja
2001-12-04 10:18               ` Harri J Haataja
2001-10-11 20:34           ` Simon Wright
2001-10-12 13:44             ` Ted Dennison
2001-10-13  7:04               ` Simon Wright
2001-10-15 13:43                 ` Ted Dennison
2001-10-11 14:14         ` why not "standardize" the Booch Components? (was Re: is Ada dying?) Marin David Condic
2001-10-11 14:46           ` why not Ted Dennison
2001-10-11 14:37             ` Pat Rogers
2001-10-11 15:39               ` Ted Dennison
2001-10-11 15:24                 ` Pat Rogers
2001-10-11 18:55                   ` Ted Dennison
2001-10-11 15:04             ` Marin David Condic
2001-10-11 15:27               ` Ted Dennison
2001-10-11 14:46           ` why not "standardize" the Booch Components? (was Re: is Ada dying?) Pat Rogers
2001-10-11 15:30             ` why not Ted Dennison
2001-10-11 20:52             ` why not "standardize" the Booch Components? (was Re: is Ada dying?) Simon Wright
2001-10-11 15:26           ` Robert*
2001-10-11 16:02             ` Marin David Condic
2001-10-11 15:56               ` Pat Rogers
2001-10-11 17:50                 ` Marin David Condic
2001-10-11 18:59                   ` why not Ted Dennison
2001-10-11 19:20                     ` Marin David Condic
2001-10-12  0:10                       ` why not "standardize" the Booch Components? (was Re: is Ada dying?) Pat Rogers
2001-10-12 13:18                         ` Marin David Condic
2001-10-12 13:51                           ` Pat Rogers
2001-10-12 13:55                           ` why not Ted Dennison
2001-10-12 14:04                             ` Marin David Condic
2001-10-12 13:50                       ` Ted Dennison
2001-10-11 20:43             ` why not "standardize" the Booch Components? (was Re: is Ada dying?) Simon Wright
2001-10-11 18:59           ` Pascal Obry
2001-10-11 19:33             ` Marin David Condic
2001-10-11 20:52               ` Pascal Obry
2001-10-11 21:32                 ` Marin David Condic
2001-10-12  1:05                   ` mitch
2001-10-12 13:28                     ` Marin David Condic
2001-10-12 14:15                       ` why not Ted Dennison
2001-10-12 13:39                   ` why not "standardize" the Booch Components? (was Re: is Ada dying?) Simon Wright
2001-10-12 12:11                 ` Marc A. Criley
2001-10-12 13:30                 ` Simon Wright
2001-10-11 20:40           ` Simon Wright
2001-10-11 21:42             ` Marin David Condic
2001-10-11 17:30         ` Jeffrey Carter
2001-10-11 18:44           ` Marin David Condic
2001-10-12  8:30             ` Lutz Donnerhacke
2001-10-12  8:41               ` Jean-Marc Bourguet
2001-10-12  8:48                 ` Lutz Donnerhacke
2001-10-12 13:47                   ` Marin David Condic
2001-10-12 14:09                 ` why not Ted Dennison
2001-10-12 16:50                   ` Jeffrey Carter
2001-10-12 18:35                     ` Ted Dennison
2001-10-13  2:57                       ` Jeffrey Carter
2001-10-15 13:47                         ` Ted Dennison
2001-10-16 14:44                         ` Stephen Leake
2001-10-16 15:13                           ` Marin David Condic
2001-10-16 16:14                             ` Pat Rogers
2001-10-16 16:53                               ` Marin David Condic
2001-10-16 16:57                               ` Marin David Condic
2001-10-27 18:51                               ` Pat Rogers
2001-10-29 15:24                                 ` Marin David Condic
2001-10-30  5:49                                   ` Barry Kelly
2001-10-30 15:35                                     ` Marin David Condic
2001-10-30 17:09                                       ` Pascal Obry
2001-10-30 17:41                                         ` Marin David Condic
2001-10-30 18:27                                       ` Darren New
2001-10-30 19:25                                         ` Marin David Condic
2001-10-30 21:44                                           ` Darren New
2001-10-30 23:08                                             ` Marin David Condic
2001-10-31  5:30                                               ` Hyman Rosen
2001-10-31 14:03                                                 ` David Botton
2001-10-31 15:51                                                   ` Matthew Heaney
2001-10-31 16:37                                                     ` Marin David Condic
2001-10-31 18:56                                                       ` Matthew Heaney [this message]
2001-11-01 15:22                                                         ` Ted Dennison
2001-11-01 16:13                                                           ` Matthew Heaney
2001-11-01 16:35                                                           ` Marin David Condic
2001-11-01 17:40                                                             ` Matthew Heaney
2001-11-11 19:50                                                               ` Ehud Lamm
2001-11-12 17:07                                                                 ` Ted Dennison
2001-11-12 19:02                                                                   ` Marin David Condic
2001-11-13  2:42                                                                   ` Jeffrey Carter
2001-11-13 14:15                                                                     ` Ted Dennison
2001-11-02  5:21                                                             ` Hyman Rosen
2001-11-01  6:07                                                     ` Hyman Rosen
2001-11-01 15:09                                                     ` Ted Dennison
2001-11-11 19:47                                                 ` Ehud Lamm
2001-10-31 18:09                                               ` Darren New
2001-10-31 18:27                                                 ` Matthew Heaney
2001-10-31 19:37                                                   ` Darren New
2001-10-31 21:29                                                     ` Marin David Condic
2001-11-01 19:26                                                       ` Darren New
2001-11-01 19:55                                                         ` Marin David Condic
2001-11-01 22:15                                                           ` Larry Hazel
2001-11-01 22:30                                                             ` Marin David Condic
2001-11-02 15:34                                                               ` Ted Dennison
2001-11-01 15:37                                                   ` Ted Dennison
2001-11-01 16:56                                                     ` Marin David Condic
2001-11-01 18:12                                                       ` Matthew Heaney
2001-11-01 18:26                                                         ` Marin David Condic
2001-11-01 20:08                                                           ` Darren New
2001-11-01 21:33                                                         ` Ted Dennison
2001-11-01 22:08                                                           ` Marin David Condic
2001-11-01 22:31                                                           ` Matthew Heaney
2001-11-02 15:05                                                       ` Jacob Sparre Andersen
2001-11-01  7:23                                                 ` Mark Biggar
2001-11-01 15:08                                                   ` Marin David Condic
2001-11-01 16:18                                                     ` Matthew Heaney
2001-11-01 17:15                                                       ` Marin David Condic
2001-11-01 19:06                                                         ` Matthew Heaney
2001-11-01 19:29                                                           ` Marin David Condic
2001-11-01 21:40                                                             ` Ted Dennison
2001-11-02  5:27                                                           ` Hyman Rosen
2001-11-01 19:31                                                         ` Darren New
2001-11-01 20:11                                                           ` Marin David Condic
2001-11-01 20:15                                                           ` Matthew Heaney
2001-11-01 15:09                                                   ` Matthew Heaney
2001-10-30 15:07                                   ` Pat Rogers
2001-10-30 15:43                                     ` Questions - Polimorphism/Dynamic Binding Eric Merritt
2001-10-30 16:28                                       ` David Botton
2001-10-30 17:02                                         ` Eric Merritt
2001-10-30 22:28                                       ` Matthew Heaney
2001-10-30 23:04                                         ` Eric Merritt
2001-10-31  2:16                                           ` Matthew Heaney
2001-10-31 15:46                                             ` Eric Merritt
2001-10-31 16:26                                               ` Matthew Heaney
2001-10-31 16:50                                                 ` Eric Merritt
2001-10-30 15:55                                     ` why not Marin David Condic
2001-11-11 20:00                                     ` Ehud Lamm
2001-11-01 17:45                                   ` Jeffrey Carter
2001-11-01 19:58                                   ` Larry Kilgallen
2001-11-01 20:16                                     ` Eric Merritt
2001-11-01 20:07                                   ` Jeffrey Carter
     [not found]                                   ` <jbfstt097fvrrqmrl0kuscmbl57nOrganization: LJK Software <wxjM7LDNji1I@eisner.encompasserve.org>
2001-11-01 20:19                                     ` Marin David Condic
     [not found]                                   ` <jbfstt097fvrrqmrl0kuscmbl57n <3BE18A23.BC921FA9@boeing.com>
2001-11-01 18:23                                     ` Marin David Condic
2001-11-11 20:02                                       ` Ehud Lamm
2001-11-12 15:53                                         ` Marin David Condic
2001-11-12 19:27                                           ` Ehud Lamm
2001-11-01 21:42                                     ` Ted Dennison
     [not found]                                   ` <jbfstt097fvrrqmrl0kuscmbl57n <tu0i54ndv2q94d@corp.supernews.com>
2001-11-02  7:31                                     ` Simon Wright
2001-11-02 15:12                                       ` Matthew Heaney
     [not found]                                   ` <jbfstt097fvrrqmrl0kuscmbl57n <PMdE7.8703$xS6.11455@www.newsranger.com>
2001-11-02  7:40                                     ` Simon Wright
     [not found]                                   ` <jbfstt097fvrrqmrl0kuscmbl57n <3BE1A1D5.A1DC08AE@san.rr.com>
2001-11-02  7:46                                     ` Simon Wright
     [not found]                                   ` <jbfstt097fvrrqmrl0kuscmbl57n <VijE7.9164$xS6.12867@www.newsranger.com>
2001-11-02  7:59                                     ` Simon Wright
2001-11-02 15:39                                       ` Ted Dennison
2001-11-02 18:58                                         ` Darren New
2001-10-16 16:01                           ` Ted Dennison
2001-10-16 19:25                             ` Stephen Leake
2001-10-16 20:19                               ` Ted Dennison
2001-10-16 17:10                         ` Jeffrey Carter
     [not found]                         ` <us <3BCC69F1.49E8A65@boeing.com>
2001-10-16 19:27                           ` Stephen Leake
2001-10-17  2:19                             ` Jeffrey Carter
     [not found]                         ` <us <9qhoti$d5f$1@nh.pace.co.uk>
2001-10-18 20:04                           ` Simon Wright
2001-10-18 20:56                             ` Marin David Condic
2001-10-19 11:52                               ` Simon Wright
     [not found]                         ` <us <9rmii8$oh2$1@nh.pace.co.uk>
2001-10-31  6:52                           ` Simon Wright
2001-11-02 15:20                             ` Marin David Condic
2001-10-28  7:58                     ` Hyman Rosen
2001-10-13  7:28                   ` Simon Wright
2001-10-12 13:33               ` why not "standardize" the Booch Components? (was Re: is Ada dying?) Marin David Condic
2001-10-12 13:53               ` Wes Groleau
2001-10-12 13:34             ` Simon Wright
2001-10-12 13:32           ` Simon Wright
2001-10-08 21:34 ` is Ada dying? Ehud Lamm
2001-10-11  4:27 ` David Brown
2001-10-11 16:52   ` Warren W. Gay VE3WWG
2001-10-12 14:20     ` Ted Dennison
replies disabled

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