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!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!feeder.erje.net!eu.feeder.erje.net!news.ripco.com!news.glorb.com!peer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!post02.iad.highwinds-media.com!fx19.iad.POSTED!not-for-mail From: Hubert User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Elaboration Question Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Antivirus: avast! (VPS 150101-1, 01/01/2015), Outbound message X-Antivirus-Status: Clean Message-ID: X-Complaints-To: abuse@newsdemon.com NNTP-Posting-Date: Fri, 02 Jan 2015 03:27:51 UTC Organization: http://www.NewsDemon.com Date: Thu, 01 Jan 2015 19:27:47 -0800 X-Received-Bytes: 1748 X-Received-Body-CRC: 704511595 Xref: news.eternal-september.org comp.lang.ada:24311 Date: 2015-01-01T19:27:47-08:00 List-Id: For a newcomer to Ada, elaboration is one of the toughest things to understand. My understanding is so, that if you have for instance a variable in the package body, say : A : Integer := 0; then this variable must be initialized at some point and that's what elaboration does. The problem then occurs with the order in which elaboration occurs in different package that depend on each other etc. There are pragmas for the programmer to take control of the elaboration sequence but I have the feeling that may complicate things. especially when you want to make a library that should be independent and that's supposed to be be released to others at some point. So may question is, is it better to just leave those variables unitialized and then initialize them later for instance: A : Integer; PROCEDURE Initialize IS BEGIN A:= 0; END Initialize; Would that be generally better? Thanks --- This email has been checked for viruses by Avast antivirus software. http://www.avast.com