Menu

#442 Enhance error message for 26.008

None
open
nobody
5
2012-08-22
2011-09-16
frank
No

Please don't close bug reports before there is some kind of consensus or some days for a "three-way handshake".

The 4.1.0 PDF chapter 10 contains "19 for 64-bit systems", I think that's wrong. Otherwise section 10.5 would say "If the default DIGITS value is 18, the whole number limit is 999999999999999999", and 18 or 19 nines are more than the 15 digits in my example. I guess (= I'm not sure, because it is apparently not mentioned in the release notes, or I missed it) that the 18 or 19 for 64bits platforms was at least partially dropped.

If that guess is correct the 15 digits in my example are more than 9 and as you said invalid. Section 10.5 in the PDF matches "Numbers used directly by REXX" in TRL section 11, the error code 26 is also fine. But ooREXX offers additional detailed error texts, and it does not need to say that a whole number is not a whole number, when the real problem is "abs(x) is greater than the implementation limit 999999999". I suggest to improve the appendix C.1.23 string for error 26.008 and similar 26.nnn strings to avoid the "high astonishment factor" of these error messages when x actually is a whole number.

Discussion

  • Rick McGuire

    Rick McGuire - 2011-09-16

    The reference to 19 for 64-bit systems was a missed update for a change that was backed out before the 4.0 release. This will be corrected. The limit on the digits is correct. An improved message will be considered for a future release.

     
  • frank

    frank - 2011-09-17

    Okay, I won't miss the obscure 18 or 19, and fix my two affected web pages when I'll get "a round tuit". If you ever consider to change the default digits() again please pick 19 or better 20 -- everything in REXX is decimal, the nine digits resulting in the nine nines are a special case.

    For work with signed 64bits integers 19 would be good enough, but you'd end up with three or more different limits: SEEK in stream(), charin(), charout(); internal limits in other functions such as abs(), max(), min(); whole numbers in exponents and as right hand side of **. From my POV the SEEK case is critical, everything else can stay as it used to be 30 years ago.

     
  • Mark Miesfeld

    Mark Miesfeld - 2012-02-03

    Committed revision 7469. For docs/rexxref

    Committed revision 7468. For docs/branches/4.1

    That fixes the doc part of this.

    The other part is enhancing the error message so that it doesn't say a whole number is not a whole number.

    So, I'm changing the title here to reflect what we are really talking about and am moving this to the RFE tracker rather than the Bug tracker.

     

Anonymous
Anonymous

Add attachments
Cancel