Andreas J Guelzow <> wrote on 12/10/2009
02:16:56 PM:
> Dennis,
> could you explain to me what you see as the difference between the
> following two statements (in the context of the OpenFormula
> specification):
>
> 1) To comply with this specification, an implementation *shall* support
> parameters of at least 48 bits.
>
> 2) An implementation *shall* support parameters of at least 48 bits.
>
Some observations:
First, we should never be using the term 'comply' in the standard.
Although you'll see it used loosely even if some standards settings, the
general rule is you comply with legal requirements, such as to comply with
a regulation. And you 'conform' to voluntary standards. But this may be
moot, since as Andreas observed it is redundant. I suppose it could be
worse. We could say, "This specification defines the requirement that to
comply with this specification an implementation shall...." ;-)
Second, we agreed, at least in principle, on the Tuesday call to have two
conformance targets:
1) An OpenFormula 'formula' or 'expression'
2) An OpenFormula 'evalautor' or 'processor'
One expresses the static/syntactic constraints and the other the runtime
requirements.
So whenever we state a conformance requirement we need to make sure it is
clear what target it pertains to. This might be obvious from context in
many cases. But in some cases we may need to be explicit. In this case I
think it is obvious from context that this is a processor constraint. But
if we want to make it explicit, we certainly could.
In any case, it is odd to require 48 bit parameters in BITAND when we
don't have any such requirement for the Number type in general. Is there
some special reason why it would be a conformance requirement to support
48 bit params for BITAND, when operator '+' can be conformant with support
for only 32-bit arguments?
-Rob