IBM Support

PI34966: ENABLE OPTIM CM LUA COMPILER FOR MULTIPLE CCSIDS

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Optim uses the Lua compiler (5.1.4) for Column Map PROC and Lua
    expression processing. This compiler is configured to work with
    chunks in CCSID 1047.
    This may lead to Lua compiler errors when the chunk has been
    created using a CCSID different than 1047.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * All Optim/z users processing Column Maps with Column Map     *
    * Procedures and Lua expressions.                              *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * Lua chunks attached to Column Map Procedures or CM           *
    * Expressions may contain certain special characters, or Lua   *
    * operators, which have different (hexadecimal) code point     *
    * values depending on the CCSID of the terminal session used   *
    * to enter the Lua chunk.                                      *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Apply the provided fix.                                      *
    ****************************************************************
    The Lua compiler embedded in Optim has been configured to
    correctly interpret Clua chunks entered using CCSID 1047/037 and
    compatible CCSIDs. Compiler errors may be reported when
    attempting to process Lua chunks entered using different CCSIDs.
    

Problem conclusion

  • Optim/z processing will be enhanced to allow for the user to
    specify the hexadecimal values of characters to be used for
    certain Lua special characters and operators.
    The following special comment line may now be used to define the
    representation of certain Lua special characters and operators:
    --   LuaSpcChr #\~^[]{} (in the exact order)
    --             |        Length     operator  (hash)
    --              |       Escape     character (backslash)
    --               |      Notequal~= character (tilde)
    --                |     Power      operator  (caret)
    --                 |    Left       square  bracket
    --                  |   Right      square  bracket
    --                   |  Left       squigly brace
    --                    | Right      squigly brace
    --
    The -- LuaSpcChr comment line may appear anywhere in the chunk
    before the first use of any of the characters #\~^[]{}.
    The order of the characters is predetermined and all characters
    have to be specified.
    The Guidelines for using Lua functions in column map expressions
    and procedures will be updated as follows:
    o Lua chunks attached to Column Map Procedures or CM Expressions
    may contain certain special characters, or Lua  operators, which
    have different (hexadecimal) code point values depending on the
    CCSID of the terminal session used to enter the Lua chunk. The
    Lua compiler embedded in Optim has been configured to correctly
    interpret Lua chunks entered using CCSID 1047/037 and compatible
    CCSIDs. Compiler errors may be reported when attempting to
    process Lua chunks entered using different CCSIDs.
    To prevent such errors the Optim Lua compiler has been modified
    to accept a special dedicated comment statement "-- LuaSpcChr"
    followed by values to define the representation of certain Lua
    special characters and operators:
    The -- LuaSpcChr comment line may appear anywhere in the chunk
    before the first use of any of the characters #\~^[]{}.
    The order of the characters must be specified in the following
    order and all characters have to be specified.
    --   LuaSpcChr #\~^[]{} (in the exact order)
    # = value for the Lua length operator
    \ = value for the backslash escape character
    ~ = value for the not inequality operator
    ^ = value for the exponentiation operator
    [ = value for the left square bracket character
    ] = value for the right square bracket character
    { = value for the left curly brace character
    } = value for the right curly brace character
    For example, the exponentiation operator (^) is defined at
    hexadecimal code point B0 in EBCDIC CCSID 37.  However, in
    EBCDIC CCSID 500 it is defined at code point 5F.  In addition,
    the left and right brackets are defined at code points 4A and 5A
    in CCSID 500 respectively instead of at BA and BB as in CCSID
    37.  Therefore, when using a terminal at CCSID 500, you can
    specify the following comment for Optim to properly recognize
    and process these operators and characters in your Lua chunk
    (hex values listed below characters)
    --   LuaSpcChr #\~^[]{}
    664DA8E98C8947EA545CD
    0003412733890B01FAA00
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI34966

  • Reported component name

    OPTIM MOVE FOR

  • Reported component ID

    5655V0700

  • Reported release

    B30

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2015-02-12

  • Closed date

    2015-02-26

  • Last modified date

    2015-04-02

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Modules/Macros

  • FOPMCOLA FOPCFPMN FOP4SVC  FOP4PEMN FOP09A   FOP0AA   FOPPOSX
    FOPHSTM  FOP9APIM FOPMCMMN FOP4ZEML FOP4ZNID FOP07A   FOP00103
    FOP0ITKA FOP00303 FOP4XEML FOPMCENU FOP00A   FOPMACAS FOPMTMDB
    FOPMCBMN FOP4XPVC FOP00003 FOPUUNLD FOPVOU   FOPMARCN FOPUBMC
    FOPZMAIN FOPCXLIB FOPZSUB  FOPZFMMN FOP1ODRV FOP4ZCCN FOPOMN
    FOPMMCMN FOPMADDE FOP00203 FOPMMUTL FOPMECMN FOPMDPRC FOPMCMAI
    FOP05A   LUAC     FOPMCDRT FOPMDBMN FOP4IPMN FOP1XTRN FOP0DAUE
    FOPMDMAI FOPMAIN  FOP4ZHSH FOPMDDDL FOPMCOFN FOPUMCBT FOPMMJBS
    FOPMDXTR FOPMSORT FOPMAFCN FOP01A   FOPMEMAI FOPMMUNU FOPMAMAI
    FOPZFBMN FOP3DTPR FOPMCOLP FOPMSELM FOPMIXMM FOP4PMMN FOP9GINF
    FOPIO    FOPMUXIM FOPMMCMR FOP1OSFN FOPUIAUL FOP4XCCN FOP08A
    LUA      FOP4XSSN FOP4TRCE
    

Fix information

  • Fixed component name

    OPTIM MOVE FOR

  • Fixed component ID

    5655V0700

Applicable component levels

  • RB30 PSY UI25494

       UP15/03/03 P F503

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"B30","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
02 April 2015