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,28b389d4503cb555 X-Google-Attributes: gid103376,public From: Robert A Duff Subject: Re: generic package dilemma Date: 1999/12/01 Message-ID: #1/1 X-Deja-AN: 555497052 Sender: bobduff@world.std.com (Robert A Duff) References: <80u48b$ghr$1@bunyip.cc.uq.edu.au> <3832e27f_1@news1.prserv.net> <3832E75D.5B1BA719@mail.com> <383319e8_4@news1.prserv.net> <3833F615.5AD7166C@mail.com> <383442e1_1@news1.prserv.net> <383510EA.9DFEE8B6@mail.com> <383569db_2@news1.prserv.net> <3835CF7A.5604C6A3@mail.com> <81bt4v$7cr$1@nnrp1.deja.com> <81cru4$url$1@nnrp1.deja.com> Organization: The World Public Access UNIX, Brookline, MA Newsgroups: comp.lang.ada Date: 1999-12-01T00:00:00+00:00 List-Id: Robert Dewar writes: > What don't you like about the GNAT scheme, it seems to work > remarkably well in practice. There is of course no fully > upwards compatible solution (there are halting problem issues), > but so what? I'm not so worried about the case that involve halting problem issues. That would be an example like: Package body A says (in elaboration code): if then B.Do_Something; end if; And package body B says (also in elaboration code): if then A.Do_Something; end if; I would be perfectly happy to make examples like that illegal at link time. I'm more concerned about a case where two packages 'with' each other, like the example above, but remove one of those if statements, so it is provable at link time that only one calls the other during elaboration. (Also, the Do_Something procedure had better not call back to the other package.) Making *that* example illegal is my concern. - Bob