[index (frame version)]       [index (text version)]

uni-REXX, an interpreter (rxx), has been upgraded from Version 1.63b to Version 2.02. This file contains extracts from the readme file supplied by the vendor of uni-REXX.

The Workstation Group -- uni-REXX readme file -- 12 September 1994
 
 

uni-REXX is a UNIX implementation of IBM's popular REXX programming language.  It provides an alternative to shell programming and other languages such as awk or perl for command procedures, rapid prototyping, or more complex application development.  It may also be embedded as a macro language within applications written in compiled languages such as C.  It is the macro language for uni-XEDIT, a Unix implementation from The Workstation Group of IBM's XEDIT System Product for VM/CMS.  It is also the language for development of customized dialogs in uni-SPF, a Unix implementation of IBM's Interactive System Productivity Facility, also from The Workstation Group.
__________________________________________________________________________

uni-REXX 2.02 NOTES

This section contains information specific to Version 2.02 of uni-REXX. It covers enhancements or modifications implemented after the documentation was printed and special items of interest.  Topics in this section are:

    1.  Recent Enhancements
    2.  uni-REXX Sample Library
    3.  "Incorrect" PROCEDURE Syntax
 

_______________________________________________________________________
 
 

1.  Recent Enhancements

Version 2.02 includes support or a number of environment variables     to override internal defaults.

The enhancements included since the last release are detailed in      the "Release Guide" section of this file.

This version is fully compliant with REXX Language Level 4.00, as     documented in "The REXX Language, A Practical Approach to Programming"  (Second Edition, 1990)  by M. F. Cowlishaw.
 
 

2.  The uni-REXX Sample Library provides sample applications that you  may use as is or adapt for your specific needs.  It includes the following directories:

  functions     useful functions which may be called from any
                uni-REXX program; also includes a math function
                package that may be added to your interpreter
 
  filters       useful filters that accept input from STDIN or from
                a pipe and send output to STDOUT, which may be
                redirected to a file or piped to another command or
                program
 
  utilities     general-purpose programs which may be used alone or
                called from other programs; includes date calculation
                programs, a system administration tool for AIX/3,
                a program to perform the equivalent of the Unix
                'which' command, and many more
 
  api.samples    all the examples from the reference manual chapter on
                 Application Programming Interfaces, and a program
                 to build the examples on your system
 
  extensions.samples  the example applications from the reference manual
                      chapter on Unix-Specific Extensions and programs top
                      build them on your system
 

    The functions, api.samples, and extensions.samples directories each
    include samples that must be compiled and built for use on your system.
    Each of these directories includes the appropriate programs to automate
    this process.  These programs have names that end in the characters
    "bld".  The README file in each directory describes how to use the "bld"
    programs.  In addition, the program provides its own help if you invoke
    it with the '-h' option, as in "apibld -h".
 
 

3.  "Incorrect" Procedure Syntax

The IBM implementations of REXX allow what appears to be an incor- rect internal procedure syntax to operate properly.  uni-REXX does not support this syntax, which does not appear to conform toCowlishaw's definition of the language.  The following is an example of the "incorrect" syntax (which actually works in the IBM mainframe implementations) and of the corresponding syntax which will work in both the IBM mainframe and the Unix environments:

     /* The following way of using interpret to access a stem
       works on the mainframe, and will not work with uni-REXX */
      name:
             arg stem .
             interpret 'procedure expose' stem'.'

The language definition does not allow for any instructions being placed between the label ("name:") and the procedure instruction. Hence the "arg" command cannot be placed between the label and the (interpreted) procedure instruction.

    /* here is a way to accomplish the same thing that is valid under
       Cowlishaw's language definition and will work in both
       environments */
    name:
          interpret 'procedure expose' arg(1)'.'

Note that both these methods imply that the "interpret" isn't really a REXX instruction that lies between the label and the procedure instruction.  The supposition here is that the "interpret" instruction isn't actually executed, but its operand(s) are.
 
 

_________________________________________________________________________

uniREXX RELEASE GUIDE FOR VERSION V2.02
 

This Release Guide includes a description of all enhancements that have been made to this product since the last major release.  Clients who are on a product maintenance program automatically receive major releases as part of their maintenance contract.

The development and enhancement of products from The Workstation Group is a continuous process between each major release.  When an interim  release is made available to correct a specific problem, such an interim release may already contain some of the enhancements scheduled for the  next major release.  Users in some environments may have received interim releases (containing such enhancements) that were not suitable for other environments.

This Release Guide is organized to accommodate these situations, with  the enhancements included in the order that they were implemented.  For ease of understanding, the version number in which a set of enhancements first appeared is identified in the text.  Any version number that does not end in a zero represents an interim release, which may not have been available for your particular platform.
 
 
 

ENHANCEMENTS IN uni-REXX V2.00:

This version is compliant with REXX Language Level 4.00 as defined in "The REXX Language, A Practical Approach to Programming" (Second Edition, 1990) by M. F. Cowlishaw.

New Built-In Functions:

  B2X       -  converts binary representation to hexadecimal
  CONDITION -  returns information about the current trapped condition
  STREAM    -  determines the state of a stream or operates on a stream
  X2B       -  converts hexadecimal representation to binary
 
 

Enhancements to Built-In Functions:

  DATE      -  support for 'B' option (base date)
  FORMAT    -  support for fourth and fifth arguments
  POPEN     -  additional argument to specify whether command output
               is PUSHed or QUEUEd on the stack
 
 

Enhancements to Instructions:

  Support for CALL ON <condition> NAME <trapname>

  Support for SIGNAL ON <condition> NAME <trapname>

  Enhancement of TRACE command output

  Support for additional addressable environments:     csh
                                                       ksh
                                                       sh
                                                       command

  Support for external PROCEDURE EXPOSE
 
 

Unix-Specific Extensions:

  Commands  -  EXECIO
               GLOBALV
               MAKEBUF
               DROPBUF
               DESBUF
 
 

  Functions -  Process Management:         _exit              _setsid
                                           _fork              _sleep
                                           _getpid            _wait
                                           _getppid           _waitpid
                                           _kill

               Configuration Management:   _geteuid           _gethostname
                                           _gethostbyname     _getservbyname
                                           _gethostid         _getuid

               File/Directory Management:  _closedir          _stat
                                           _opendir           _truncate
                                           _readdir           _umask

               System Error Processing:    _errno             _syserrlist

               Regular Expressions:        _regex

               Interprocess Communication: _accept            _getservbyname
                                           _bind              _listen
                                           _closesocket       _recv
                                           _connect           _send
                                           _gethostbyname     _socket
                                           _gethostname
 
 
 
 

ENHANCEMENTS IN uni-REXX V2.02:

This version includes support for a number of environment variables to override internal default settings.  Each of these environment variables is described below.

    REXXENVPREFIX     The prefix used for all uni-REXX environment variables.

                      Default:  REXX

                      If this environment variable is set, all uni-REXX environ-
                      ment variables shown below plus REXXLIB and REXXPATH
                      (described in the Reference Manual) begin with the charac-
                      ters specified.

                      Examples:  If you set REXXENVPREFIX to "ABC", then
                                 uni-REXX searches the path specified by the
                                 variable ABCPATH to find external programs.

                                 If you set REXXENVPREFIX to "abc_", then
                                 uni-REXX searches the path specified by the
                                 variable abc_PATH to find external programs.

                      Note that the setting of REXXENVPREFIX and its use with
                      other environment variables is case sensitive.
 

    REXXSUFFIXSOURCE  The suffix used when searching for uni-REXX programs.

                      Default:  rex

                      When the default is used, if two source programs ("abc" and
                      "abc.rex") exist, uni-REXX runs program "abc".  If this
                      environment variable is set, uni-REXX runs the program with
                      the specified suffix, regardless of the existence of the
                      non-suffixed program.

                      The uni-REXX compiler (rxc) always uses a suffix to locate
                      its input file.
 

    REXXTEMP          The directory where temporaries are placed.

                      Default:  /tmp
 

    REXXTEMPDISK      The directory where temporary disk files are placed.

                      Default:  current setting of REXXTEMP or its default
 

    REXXTEMPIPC       The directory where temporary interprocess communication
                      files are placed

                      Default:  current setting of REXXTEMP or its default
 

    REXXMODULECC      For generating executable binaries using "rxc -m", the path
                      to the C compiler on the current system.

                      Default:  cc
 

    REXXMODULECFLAGS  For generating executable binaries using "rxc -m", the
                      compiler flags to be used.

                      Default:  platform-specific
 

    REXXMODULELDFLAGS For generating executable binaries using "rxc -m", the
                      loader (ld) flags to be used.

                      Default:  platform-specific
 

    REXXMODULELDSYMBOLS  For executable binaries generated with "rxc -m", an
                         indicator of whether or not the resulting binary is to
                         be stripped.

                         Default:  module is stripped

                         If this environment variable is set to any value, the
                         module is not stripped.
 
 
 
 
 

[index (frame version)]       [index (text version)]