2.4.13 The OPTIONS Instruction OPTIONS expr ; The OPTIONS instruction is used to set various interpreter- specific options. Its typical uses are to select certain REXX dialects, enable optimizations (e.g. time versus memory considerations), etc. No standard dictates what may follow the OPTIONS keyword, except that it should be a valid REXX expression, which is evaluated. Currently, no specific options are required by any standard. The contents of expr is supposed to be word based, and it is the intention that more than one option can be specified in one OPTIONS instruction. REXX interpreters are specifically instructed to ignore OPTIONS words which they do not recognize. That way, a program can use run-time options for one interpreter, without making other interpreters trip when they see those options. An example of OPTION may be: OPTIONS 4.00 NATIVE_FLOAT The instruction might instruct the interpreter to start enforcing language level 4.00, and to use native floating point numbers in stead of the REXX arbitrary precision arithmetic. On the other hand, it might also be completely ignored by the interpreter. It is uncertain whether modes selected by OPTIONS will be saved across subroutine calls. Refer to implementation-specific documentation for information about this. Example: Drawback of OPTIONS Unfortunately, the processing of the OPTIONS instruction has a drawback. Since an interpreter is instructed to ignore option- settings that it does not understand, it may ignore options which are essential for further processing of the program. Continuing might cause a fatal error later, although the behavior that would most precisely point out the problem is a complaint about the non- supported OPTION setting. Consider: options ‘cms_bifs’ pos = find( haystack, needle ) If this code fragment is run on an interpreter that does not support the cms_bifs option setting, then the OPTIONS instruction may still seem to have been executed correctly. However, the second clause will generally crash, since the FIND() function is still not available. Even though the real problem is in the first line, the error message is reported for the second line.