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=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: begin clause in package bodies Date: Fri, 1 Dec 2017 16:52:48 +0100 Organization: Aioe.org NNTP Server Message-ID: References: <4c77317b-6d12-474f-928d-c713501f647a@googlegroups.com> <7732b88c-5911-4857-a9c8-e5a719043b26@googlegroups.com> <8c6a8a64-0ae5-4fcc-8756-3aab7c3ed508@googlegroups.com> NNTP-Posting-Host: sWq1fEaAu/L5fGxxOY76vQ.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 X-Notice: Filtered by postfilter v. 0.8.2 Content-Language: en-US Xref: reader02.eternal-september.org comp.lang.ada:49303 Date: 2017-12-01T16:52:48+01:00 List-Id: On 2017-12-01 16:15, Mehdi Saada wrote: > Such global variables can be corrupted by one program in a > unforeseen way, and corrupt another program using/reading it. No, they cannot. Package elaboration is guaranteed to happen before its first use. It means that any outside access will happen after the package initialization. Once initialization is done it is done. Initialization is not a "variable", global or local. Furthermore the term "global" does not quite apply to Ada. Ada has nested scopes and a variable may exist in any scope starting from the local one up to the library level. This also applies to task objects. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de