z/OS TSO/E Customization
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


The compiler runtime processor

z/OS TSO/E Customization
SA32-0976-00

When TSO/E REXX encounters a compiled REXX exec, TSO/E REXX passescontrol to the appropriate compiler runtime processor to run the exec. Prior to the first invocation of a compiled REXX exec in the first language processor environment in the address space, TSO/REXX loads the appropriate compiler runtime processor, saves the location of thecompiler runtime processor, then invokes the compiler runtime processor. On subsequent invocations of compiled REXX execs, and in subsequent language processor environments, TSO/E REXX uses the saved location of the loaded compiler runtime processor to pass control to the compiler runtime processor.

A compiler runtime processor receives control in the same recovery environmentas the REXX interpreter; TSO/E REXX establishes ESTAE recovery and attention handling routines based on the characteristics of the language processor environment. The compiler runtime processor must issue all messages relating to language processing. For more information on REXX recovery and attention processing, see .

When the compiler runtime processor receives control, it must pass control to the exec initialization routine (EXECINIT) and exec termination routine (EXECTERM) at the appropriate times. The programming routine IRXRTE must be used to pass control to these routines.

Table 1 describes the results required from a compiler runtime processor.The results vary according to how the compiled exec was invoked under the compiler runtime processor.

Table 1. compiler runtime processor expected results
Invocation Method (compiled exec) Returned results (compiled exec)
EXIT/RETURN Without Expression EXIT/RETURN With Expression Language Error Processing Error
Subroutine Set return code to 0. The compiler runtime processor must not obtain or complete an EVALBLOK. Set return code to 0. The compiler runtime processor must use the GETEVAL function of IRXRLT to obtain an EVALBLOK. The compiler runtime processor must then use the results from the execution of the compiled exec to complete the EVALBLOK. Set return code to 200nn, where nn is greater than or equal to 1 and less than or equal to 99. The compiler runtime processor must not obtain or complete an EVALBLOK. Set return code to 20, 100, or 104; set abend and reason codes as appropriate. The compiler runtime processor must not obtain or complete an EVALBLOK.
Function For a RETURN without expression, set the return code to 20045. Return code 20045 is a special case of return code 200nn.

For an EXIT without expression, set the return code to 0.

Set return code to 0. The compiler runtime processor must use the GETEVAL function of IRXRLT to obtain an EVALBLOK. The compiler runtime processor must then use the results from the execution of the compiled exec to complete the EVALBLOK. Set return code to 200nn, where nn is greater than or equal to 1 and less than or equal to 99. The compiler runtime processor must not obtain or complete an EVALBLOK. Set return code to 20, 100, or 104; set abend and reason codes as appropriate. The compiler runtime processor must not obtain or complete an EVALBLOK.
Command Set return code to 0. The compiler runtime processor must use the GETEVAL function of IRXRLT to obtain an EVALBLOK. The compiler runtime processor must then complete the EVALBLOK with a result of 0. Set return code to 0. The compiler runtime processor must represent the results from the compiled exec execution as a number in string format. If the result string will fit in a fullword, the compiler runtime processor must use the GETEVAL function of IRXRLT to obtain an EVALBLOK. The compiler runtime processor must then complete the EVALBLOK with the result string. If the result string will not fit in a fullword, then the compiler runtime processor must set the return code to 20026 and must not obtain or modify an EVALBLOK. Set return code to 200nn, where nn is greater than or equal to 1 and less than or equal to 99. The compiler runtime processor must not obtain or complete an EVALBLOK. Set return code to 20, 100, or 104; set abend and reason codes as appropriate. The compiler runtime processor must not obtain or complete an EVALBLOK.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014