9.3. Required Limits These are the implementation minimums defined by REXX: [Binary strings] Must be able to hold at least 50 characters after packing. That means that the unpacked size might be at least 400 characters, plus embedded white space. [Elapse time clock] Must be able to run for at least 10**10-1 seconds, which is approximately 31.6 years. In general, this is really a big overkill, since virtually no program will run for a such a period. Actually, few computers will be operational for such a period. [Hexadecimal strings] Must be able to hold at least 50 characters after packing. This means that the unpacked size might be at least 100 characters, plus embedded white space. [Literal strings] Must be able to hold at least 100 characters. Note that a double occurrence of the quote character (the same character used to delimit the string) in a literal string counts as a single character. In particular, it does not count as two, nor does it start a new string. [Nesting of comments] Must be possible to in at least 10 levels. What happens then is not really defined. Maybe one of the syntax errors is issued, but none is obvious for this use. Another, more dangerous way of handling this situation would be to ignore new start-of-comments designators when on level 10. This could, under certain circumstances, lead to running of code that is actually commented out. However, most interpreter are likely to support nesting of comments to an arbitrary level. [The Number of Parameters] In calls must be supported up to at least 10 parameters. Most implementations support somewhat more than that, but quite a few enforce some sort of upper limit. For the built-in function, this may be a problem only for MIN() and MAX(). [Significant digits] Must be supported to at least 9 decimal digits. Also, if an implementation supports floating point numbers, it should allow exponents up to 9 decimal digits. An implementation is allowed to operate with different limits for the number of significant digits and the numbers of digits in exponents. [Subroutine levels] May be nested to a total of 100 levels, which counts both internal and external functions, but probably not built-in functions. You may actually trip in this limit if you are using recursive solution for large problems. Also, some tail- recursive approaches may crash in this limit. [Symbol (name) length] Can be at least 50 characters. This is the name of the symbol, not the length of the value if it names a variable. Nor is it the name of the variable after tail substitution. In other words, it is the symbol as it occurs in the source code. Note that this applies not only to simple symbols, but also compound symbols and constant symbols. Consequently, you can not write numbers of more than 50 digits in the source code, even if NUMERIC DIGITS is set high. [Variable name length] Of at least 50 characters. This is the name of a variable (which may or may not be set) after tail substitution.