comp.lang.ada
 help / color / mirror / Atom feed
* Booch Components question
@ 2011-11-12 16:11 Simon Wright
  2011-11-14 23:18 ` Randy Brukardt
  0 siblings, 1 reply; 8+ messages in thread
From: Simon Wright @ 2011-11-12 16:11 UTC (permalink / raw)


As you may know I've been maintaining the Ada 95 Booch Components[1] for
some years now.

I've just been reviewing the outstanding bugs; there are 7, and all but
one of them are to do with misbehaviours in Lists and date back to 2007.

The point of this query is, I'd like to close the bugs by saying "Won't
Fix" and to remove Lists from the BCs (I could put them in a
'deprecated' section, I suppose).

What!, you say, the BCs don't do lists, what sort of container facility
is that? ... and the answer is, that the BCs do support straightforward
sequences of items that you can copy, insert into, delete from, iterate
over, etc, it's just that they're called Collections.

The way Grady saw Lists, they were "polylithic" by which he meant they
implement structural sharing; what the user sees as a List is
effectively a pointer to an internal List structure maintained by the
library (an iList, let's say). Other Lists may point to the same or
different parts of the same iList; you can graft one List into another.

This is probably a hugely powerful facility, but I have to say that to
me it's also hugely dangerous, not least because it's far from obvious
how it's meant to be used (which might explain some of the bugs). For
example,

   --  It is possible, but not generally desirable, to produce
   --  multi-headed lists. In such cases, the predecessor of the item
   --  at the neck of a multi-headed list points to the most recently
   --  attached head.

I've tried to indicate this to users by including this warning:

   -------------------------------------------------------------------
   --  WARNING: If  you just want a standard  container to support  --
   --  iteration, filtering and sorting, use Collections. The List  --
   --  components  are   much  more  complex   than  you'll  need.  --
   -------------------------------------------------------------------

If anyone has objections/suggestions, now would be a good time to raise
them; thanks in advance.

[1] http://sourceforge.net/projects/booch95/index.html



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-11-15 23:26 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-11-12 16:11 Booch Components question Simon Wright
2011-11-14 23:18 ` Randy Brukardt
2011-11-15  9:00   ` Dmitry A. Kazakov
2011-11-15  9:23     ` Simon Wright
2011-11-15 10:08       ` Dmitry A. Kazakov
2011-11-15 10:06   ` Simon Wright
2011-11-15 11:19     ` Simon Wright
2011-11-15 23:26       ` Jeffrey Carter

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