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=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,772ae8afc5db35f2 X-Google-Attributes: gid103376,public From: nospam@thanks.com.au (Don Harrison) Subject: Re: Can't export object of private type Date: 1999/03/01 Message-ID: #1/1 X-Deja-AN: 449866828 Sender: news@syd.csa.com.au X-Nntp-Posting-Host: dev7 References: <7b5u87$s88$1@nnrp1.dejanews.com> Organization: CSC Australia, Sydney Reply-To: nospam@thanks.com.au Newsgroups: comp.lang.ada Date: 1999-03-01T00:00:00+00:00 List-Id: Robert_dewar wrote: :In article , : nospam@thanks.com.au wrote: :> Because *non-recursive* declarations imply a partial :> ordering, a valid elaboration sequence can be determined :> for them, irrespective of declaration order. : :I know that seems reasonable for simple cases, but this :approach simply will not work, it is recursively :undecidable in the general case what ordering should be :used, since it depends on computational paths. By "computational paths", do you mean: - Functions called to initialise package variables, and - Procedures called in package blocks? I may be missing something here, but.. Wouldn't any declarations used in such operations simply be ordered ahead of the declaration that uses them in the elaboration order? You wouldn't need to order the branch declarations WRT each other because, you only need a partial ordering, rather than a total one. The only problem would seem to be where the ordering dictated by different declarations are mutually contradictory. This would yield a compile error. :Linear elaboration is a model that enormously simplifies :the semantics of the language, .. I can imagine elaboration problems would be even worse without it. Perhaps, it makes them tolerable. :(note that you do NOT have a formal definition of what :you mean by recursive here, and you will find that any :attempt to formalize this definition will fail.) "A recursive declaration is one which is composed of at least one declaration defined (transitively) in terms of the declaration being considered." -- Don (Harrison). donh at syd.csa.com.au