From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,f82868bd08967223,start X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.68.35.131 with SMTP id h3mr13240514pbj.1.1321114307896; Sat, 12 Nov 2011 08:11:47 -0800 (PST) Path: h5ni37508pba.0!nntp.google.com!news2.google.com!goblin2!goblin1!goblin.stu.neva.ru!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Booch Components question Date: Sat, 12 Nov 2011 16:11:45 +0000 Organization: A noiseless patient Spider Message-ID: Mime-Version: 1.0 Injection-Info: mx04.eternal-september.org; posting-host="dFCm8HWntFqmDIilBLqEJQ"; logging-data="32335"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18PM4RGrhPHTgsr938usHnDh5Vj/mrFmug=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (darwin) Cancel-Lock: sha1:nChZzDnJk6+LgghtrFH2yDr2K7Q= sha1:ZQJed9PITytWOCN+TBFuzyCVvCE= Xref: news2.google.com comp.lang.ada:14405 Content-Type: text/plain; charset=us-ascii Date: 2011-11-12T16:11:45+00:00 List-Id: 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