"AdaMagica" wrote in message news:9dc6d5fe-3382-44dd-8460-e042bd6b808e@googlegroups.com... On Saturday, January 19, 2013 2:43:03 AM UTC+1, Stephen Leake wrote: ... >> Then 13.5.2 talks about the Position attribute. >> Which just retreives the mysterious "position" number, it doesn't say >> what it _means_. Huh? 13.5.2(2/2) says in part: "denotes Denotes the same value as R.C'Address � R'Address". That makes it pretty clear what it represents (for the Default_Bit_Order). For the non-default bit order, it just is whatever you specify (and that's all we can say, because it *doesn't* have a clear physical meaning - it defines the machine scalars to use, which makes it a totally confusing mess if you try to work the other way). >> > I agree that the RM is confusing in this area. >> > It's partly my fault. :-( >> Ok. What paragraphs do we add? (in five years; better late than never :) I don't think there is anything that would help. We surely tried when we created the non-default bit order stuff. >The AARM helps, but this is of course not a binding standard: > >13.5.2(2.a/2) Ramification: {AI95-00133-01} Thus, for the default bit >order, >R.C'Position is the offset of C in storage elements from the beginning of >the object, >where the first storage element of an object is numbered zero. R'Address + >R.C'Position = R.C'Address. For record extensions, the offset is not >measured >from the beginning of the extension part, but from the beginning of the >whole object, >as usual. >(2.b) In �R.C'Address � R'Address�, the "�" operator is the one in >System.Storage_Elements that takes two Addresses and returns a >Storage_Offset. > >Why isn't this in the RM itself? An oversight? It's not necessary, it follows directly from the definition of "-", 'Address, and 'Position as related above, for the default bit order case. In the non-default bit order, (2.a/2) isn't even true, so it wouldn't help to add such a statement in that case. ('Position defines the machine scalars to use in that case, and the meaning defies any simple explanation -- it's roughly the same as the meaning in the default-bit-order case, but not exactly. The RM can never lie.) Randy.