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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,27af4b26a20589ec X-Google-Attributes: gid103376,public From: robert_dewar@my-dejanews.com Subject: Re: with'ing a "foreign" package or subsystem Date: 1999/03/01 Message-ID: <7be4aj$cqf$1@nnrp1.dejanews.com>#1/1 X-Deja-AN: 449931396 References: X-Http-Proxy: 1.0 x3.dejanews.com:80 (Squid/1.1.22) for client 166.72.70.10 Organization: Deja News - The Leader in Internet Discussion X-Article-Creation-Date: Mon Mar 01 13:22:35 1999 GMT Newsgroups: comp.lang.ada X-Http-User-Agent: Mozilla/4.04 [en] (OS/2; I) Date: 1999-03-01T00:00:00+00:00 List-Id: In article , Matthew Heaney wrote: > Suppose my company and another company are collaborating > on building a large software system written in Ada. We > each go off and separately build the subsystems we're > responsible for, and then come together some > time later for system integration. > > During development, I needed a stack, and I implemented > the following package: > > generic > type Item_Type is private; > package Stacks is ...; > > and my company has been using it for a while. > > But come integration time, the other company (call them > ACME) had also written package Stacks, but with a > different interface, and they're > using their version of Stacks everywhere. > > Can both packages coexist in the same application? No! And the trouble you are in reflects a fundamental mistake in how you proceeded. If you are sharing a global name space with someone, you MUST negotiate how this name space will be used in advance, or of course you will get into a mess. In the case of Ada 95, it is *easy* to avoid such a mess. It is clear that package Stacks in both cases should have been a child package, since it was not part of the agreed global spec between you. You should each have agreed to a global top level utility package name, and put all your stuff under that name. As an example, when you use GNAT, providing you have not used the package name GNAT, then you can use all the GNAT provided special packages with no worry about name conflicts. I would be strongly opposed to implementing the kind of kludge solution to this mess that you propose. The proper way to fix a mess is to clean it up! -----------== Posted via Deja News, The Discussion Network ==---------- http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own