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=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,5894fe67040038b X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-11-13 00:07:09 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newshub.sdsu.edu!newspeer.cts.com!galanthis.cts.com!127.0.0.1.MISMATCH!not-for-mail Sender: kst@king.cts.com Newsgroups: comp.lang.ada Subject: Re: Attributes 'Version and 'Body_Version References: <9s9iti$g$1@nh.pace.co.uk> <5ee5b646.0111081953.31e2633c@posting.google.com> <5ee5b646.0111121351.27897bc4@posting.google.com> From: Keith Thompson Date: 13 Nov 2001 00:07:07 -0800 Message-ID: X-Newsreader: Gnus v5.7/Emacs 20.7 NNTP-Posting-Host: 209.68.192.180 X-Trace: 1005638828 nntp.cts.com 51828 209.68.192.180 Xref: archiver1.google.com comp.lang.ada:16399 Date: 2001-11-13T00:07:07-08:00 List-Id: dewar@gnat.com (Robert Dewar) writes: > Keith Thompson wrote in message > news:... > > I don't see a > > requirement for A'Version or A'Body_Version to change > > when this happens, > > Yes, you are missing something obvious, keep reading (all > the way to para 5 :-) > > Once again, the idea of 'Version is that it identifies > the *object* executable code of a unit, to see if it is > compatible, it has nothing to do with source versions. Aha! In RM95, E.3(5) says: The version of a compilation unit changes whenever the version changes for any compilation unit on which it depends semantically. The version also changes whenever the compilation unit itself changes in a semantically significant way. It is implementation defined whether there are other events (such as recompilation) that result in the version of a compilation unit changing. However, the RM I was using is a version with Technical Corrigendum 1 merged into it. In that version, E.3(5) has been modified and expanded to two paragraphs: The *version* of a compilation unit changes whenever the compilation unit changes in a semantically significant way. This International Standard does not define the exact meaning of "semantically significant". It is unspecified whether there are other events (such as recompilation) that result in the version of a compilation unit changing. If P is not a library unit, and P has no completion, then P'Body_Version returns the Body_Version of the innermost program unit enclosing the declaration of P. If P is a library unit, and P has no completion, then P'Body_Version returns a value that is different from Body_Version of any version of P that has a completion. I still don't see anything that precludes implementing 'Version as, say, a checksum of the source, or perhaps a checksum of a canonically formatted version of the source (so semantically insignificant changes don't affect the version). -- Keith Thompson (The_Other_Keith) kst@cts.com San Diego Supercomputer Center <*> Cxiuj via bazo apartenas ni.