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-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,7ee10ec601726fbf X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-10-13 00:59:01 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!dispose.news.demon.net!news.demon.co.uk!demon!pogner.demon.co.uk!zap!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: why not Date: 13 Oct 2001 08:28:34 +0100 Organization: Pushface Message-ID: References: <3BC30674.BA88AAB6@brighton.ac.uk> <9pvv3t$ves$1@news.huji.ac.il> <3BC5D730.DA950CC7@boeing.com> <9q4pa7$1ad$1@nh.pace.co.uk> <3BC6ACC8.23EF21BC@free.fr> NNTP-Posting-Host: localhost X-NNTP-Posting-Host: pogner.demon.co.uk:158.152.70.98 X-Trace: news.demon.co.uk 1002959936 nnrp-01:5418 NO-IDENT pogner.demon.co.uk:158.152.70.98 X-Complaints-To: abuse@demon.net NNTP-Posting-Date: 13 Oct 2001 07:28:34 GMT X-Newsreader: Gnus v5.7/Emacs 20.7 Xref: archiver1.google.com comp.lang.ada:14450 Date: 2001-10-13T07:28:34+00:00 List-Id: Ted Dennison writes: (discussing instantiating the BCs) > On the plus side, once you figure this mess out, it will be *way* > quiker to do it a second time. So its really an issue of if you want > to invest a bit extra time up front thwacking your head against a > wall figuring out Booch, in order to be able to save yourself extra > time the *next* time you need a component. I've been working on a utility to merge the various output files you get from gcov with GNAT (still don't _quite_ understand why some files get .da output and some don't). The declarations for the map that keeps the merged view of whether or not a line has been/can be executed are type Line_Kind is (Not_Executable, Executable); subtype Line_Number is Positive; type Line (Kind : Line_Kind := Not_Executable) is record Number : Line_Number; Text : Unbounded_String; case Kind is when Not_Executable => null; when Executable => Count : Natural := 0; end case; end record; package Abstract_Line_Containers is new BC.Containers (Line); function Hash (Key : Line_Number) return Natural; package Abstract_Line_Maps is new Abstract_Line_Containers.Maps (Key => Line_Number); package Line_Maps is new Abstract_Line_Maps.Unbounded (Hash => Hash, Buckets => 23, Storage => BC.Support.Standard_Storage.Pool); (uses the 20011011 release, not yet in the wild) which isn't too bad I think. Certainly doesn't qualify as "wild incantation" in my book. It would be nice if it didn't have to be in a library-level package spec .. Does the page at http://www.pushface.org/components/bc/case-study.html#instantiation help? (the version there has some errors and infelicities but the gist is right)