XPLINK concepts and terms

XPLINK
Extra Performance Linkage (XPLINK) is a new call linkage between programs which has the potential for a significant performance increase when used in an environment of frequent calls between small functions or subprograms.
non-XPLINK application
A non-XPLINK application is one in which none of the executables involved have been compiled with the XPLINK compiler option specified.
XPLINK application
An XPLINK application is one in which at least one of the executables involved as been compiled with the XPLINK compiler option specified. XPLINK and non-XPLINK compiled source code cannot be link-edited together into the same executable, but XPLINK and non-XPLINK executables (for example, DLLs) can be mixed in the same application. The performance advantage from XPLINK is increased as the percentage of XPLINK executables in an application increases.
XPLINK environment
An XPLINK environment is one in which Language Environment has initialized the necessary resources to run an XPLINK application (for example, a downward-growing stack). This is accomplished by either invoking an initial program that was compiled with the XPLINK compiler option specified, or specifying the XPLINK(ON) runtime option.
downward-growing stack
The standard Language Environment stack is upward-growing. For XPLINK, a main feature of its more efficient program prolog code is a program stack which grows from higher to lower addresses. This provides implicit protection against exceeding available stack storage, rather than having to make an explicit test, and therefore reduces path length.
guard page
A write-protected area of storage at the low address end of a downward-growing stack segment. This allows a stack frame (smaller than the size of the guard page) to be allocated by storing into the low address of the stack frame. Stack segment overflow and extension is triggered by the exception resulting from a prolog storing into the guard page (implicit stack overflow detection).
glue code
With respect to XPLINK compatibility, glue code refers to the code inserted between XPLINK and non-XPLINK executables, which converts the stack structure, registers and parameter list into a format suitable for the called function, and then restores the environment upon return.