From: SourceForge.net <no...@so...> - 2007-02-01 07:21:59
|
Bugs item #1646738, was opened at 2007-01-29 03:31 Message generated for change (Comment added) made by orexx You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=1646738&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Interpreter Group: v3.1 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Leland Lucius (llucius) Assigned to: Nobody/Anonymous (nobody) Summary: DO loop not executing... Initial Comment: Not sure if this is a limitation of ooRexx or not, but this bit of code should produce 255 lines of output and it doesn't on Linux or OSX: /* rexx */ NUMERIC DIGITS 40 h = 3232241151 l = 3232240896 DO ndx = l TO h SAY ndx END EXIT Leland ---------------------------------------------------------------------- >Comment By: Rony G. Flatscher (orexx) Date: 2007-02-01 08:21 Message: Logged In: YES user_id=662126 Originator: NO AFAICT the fix is in the latest CVS (although the Status was not changed to "Pending" yet). Running "cvs diff -D 2007-01-28" yields: ---------------------- cut here ------------------------ Index: kernel/classes/NumberStringClass.cpp =================================================================== RCS file: /cvsroot/oorexx/oorexx/kernel/classes/NumberStringClass.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -r1.3 -r1.4 82,85d81 < /* is number about to overflow */ < if (intnum > MAXPOSBASE || ((intnum == MAXPOSBASE) && (*thisnum > 5))) { < return NO_LONG; /* YES, return unconvertable */ < } 87a84,88 > // on an overflow, this will wrap to a negative number. > if (intnum < 0) > { > return NO_LONG; > } 93c94 < if ((sign == 1 && intnum > MAXPOSNUM) || (sign == -1 && intnum > MAXNEGNUM)) { --- > if (intnum < 0 || sign == -1 && intnum > MAXNEGNUM) { Index: platform/windows/buildorx.bat =================================================================== ---------------------- cut here ------------------------ ---------------------------------------------------------------------- Comment By: Leland Lucius (llucius) Date: 2007-02-01 04:25 Message: Logged In: YES user_id=1024716 Originator: YES Was this the bit? RexxObject *temp = result->integerValue(number_digits()); if (temp != TheNilObject) { result = temp; } If so, what would be the correction? (Other than just commenting it.) ---------------------------------------------------------------------- Comment By: Rick McGuire (bigrixx) Date: 2007-01-29 11:22 Message: Logged In: YES user_id=1125291 Originator: NO One of the loop optimizations which attempted to detect if the loop iterators were integer values was failing when the values were between 2**31 and 2**32-1. ---------------------------------------------------------------------- Comment By: Leland Lucius (llucius) Date: 2007-01-29 03:33 Message: Logged In: YES user_id=1024716 Originator: YES Oops, this is under 3.1.1. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=1646738&group_id=119701 |