Last change 30.12.2004 (tt.mm.yyyy)
Changed paragraphs between the current version 1.1 and version 1.0 are marked like this.
REXX is a script language with one main focus on calling external processes. REXX manages the call itself and the IO from and to the called processes. It has the ability to wrap external libraries and to use them. REXX is therefore very extensible.
More and more applications or major parts of applications are put into libraries with a call interface to let GUIs execute a special functionality. This technique is more or less known as plugin. Plugins are handy and extensible, but not very easy to execute from a command line. A plugin doesn't have a command line interface in most cases. From REXX's view, an external wrapper library has to be written to use the external functionality. Such a library will be loaded in REXX's core and a script command executes a REXX external procedure or function which calls the original function. Of course, REXX external functions can do more than just calling other functions.
In case of pure wrapper code, REXX's approach isn't very handy. REXX isn't the most common language nowadays and nearly nobody delivers a REXX callable library. These have to be generated by folks to both are able to create code libraries and want to use the stuff from REXX. This inhibits the spread of REXX.
One solution is a generic call interface. This interface allows the use of almost every library function call by REXX and its own methods. This document describes a definition and the implementation of a generic call interface as an extension of the SAA API.