Maybe if we give a small example of where things will go horribly wrong 
on a 64-bit system with a NUMERIC DIGITS setting of 9 then people will 
have a better idea of what the impact will be.

Here is a small sample.

a = copies('A', 99888777666555444) /* perfectly acceptable for 64-bit 
ooRexx */
c = half(length(a))
d = substr(a, 1, c)  /* this will not give the correct result! */
return

half: procedure
return arg(1) / 2

In this example the return value of the half function will not be what 
you expect because the procedure subkeyword will cause the NUMERIC 
DIGITS setting to revert to 9. Digits will be lost and any subsequent 
operations on the return value will not be precise.

In order to prevent this type of aberation a programmer will need to 
look at every procedure in a ported 32-bit program in order to determine 
if a larger setting is being inadvertently cancelled out in a procedure.

What this really means is that if you have a program the works on large 
objects (like very large strings) in a 32-bit environment and then port 
it over to a 64-bit environment, when the string objects start to grow 
beyond what a 32-bit environment can handle then the program will become 
incorrect over time. I believe this is a worse condition than the 
alternative of upping the NUMERIC DIGITS default setting.

Just my 2 cents worth.

David Ashley

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to