On 2015-02-24 11:52, Beesley, Paul wrote:
Robert
Many thanks for your reply. I have added my vote to the RFE.
Here are the compiler options from the latest trial, the LE override options
from the DCL PLIXOPT statement, and the results of a CLER transaction from the
relevant CICS region.
I don’t pretend to understand many of them but any comments on these are
welcome!
Apologies for the length of this post
AGGREGATE(DECIMAL)
ARCH(6)
As mentioned by others, try ARCH(8) up to, depending on the system, ARCH(10)
ATTRIBUTES(FULL)
BACKREG(5)
BIFPREC(15)
BLANK('05'x)
NOBLKOFF
CASERULES( KEYWORD( MIXED ) )
CEESTART(FIRST)
CHECK( NOCONFORMANCE NOSTORAGE )
CMPAT(V2)
CODEPAGE(01140)
NOCOMMON
NOCOMPILE(S)
NOCOPYRIGHT
CSECT
CSECTCUT(4)
CURRENCY('£')
DDSQL('')
DECIMAL( FOFLONASGN NOFOFLONMULT NOFORCEDSIGN )
DEFAULT(IBM ASSIGNABLE NOINITFILL NONCONNECTED
DESCRIPTOR DESCLOCATOR DUMMY(ALIGNED) ORDINAL(MIN)
BYADDR RETURNS(BYADDR) LINKAGE(OPTLINK) NORETCODE
NOINLINE REORDER NOOVERLAP NONRECURSIVE ALIGNED NULL370
BIN1ARG PSEUDODUMMY NULLSTRADDR NULLSTRPTR(NULL) EVENDEC
NOEVENDEC might be better.
SHORT(HEXADEC) EBCDIC HEXADEC NATIVE NATIVEADDR E(HEXADEC))
DEPRECATE(
BUILTIN()
ENTRY()
INCLUDE()
VARIABLE()
STMT()
)
DEPRECATENEXT(
BUILTIN()
ENTRY()
INCLUDE()
VARIABLE()
STMT()
)
DISPLAY( WTO )
NODLLINIT
NOEXIT
EXTRN(FULL)
FLAG(W)
FLOAT( AFP(NOVOLATILE) NODFP )
FLOATINMATH(ASIS)
NOGOFF
NOGONUMBER
NOGRAPHIC
NOHGPR
NOIGNORE
INCAFTER(PROCESS(""))
NOINCDIR
INCLUDE
NOINITAUTO
NOINITBASED
NOINITCTL
NOINITSTATIC
NOINSOURCE
NOINTERRUPT
LANGLVL(OS)
LIMITS( EXTNAME(7) FIXEDBIN(31,31) FIXEDDEC(15,15) NAME(100) )
LINECOUNT(60)
NOLINEDIR
LIST
LISTVIEW(SOURCE)
MACRO
MAP
MARGINI(' ')
MARGINS(2,72,1)
MAXGEN(100000)
MAXMEM(1048576)
MAXMSG(W 250)
MAXNEST( BLOCK(17) DO(17) IF(17) )
MAXSTMT(4096)
MAXTEMP(50000)
I would personally set this lower to flag complex statements!
MDECK
NOMSGSUMMARY
NONAME
NAMES('@#£' '@#£')
NATLANG(ENU)
NEST
NOT('¬')
NUMBER
OBJECT
NOOFFSET
NOONSNAP
OPTIMIZE(0)
OPTIONS(DOC)
OPTIONS (ALL), so that you can see anything that's added later!
OR('|')
PP( MACRO )
NOPPCICS
NOPPINCLUDE
PPLIST(KEEP)
NOPPMACRO
NOPPSQL
NOPPTRACE
PRECTYPE(ANS)
PREFIX(CONVERSION FIXEDOVERFLOW INVALIDOP OVERFLOW
NOSIZE NOSTRINGRANGE NOSTRINGSIZE NOSUBSCRIPTRANGE
UNDERFLOW ZERODIVIDE)
NOPROCEED(S)
PROCESS(DELETE)
QUOTE('"')
NOREDUCE
NORENT
RESEXP
RESPECT()
RTCHECK( NONULLPTR )
RULES(IBM BYNAME CONTROLLED NODECSIZE ELSEIF EVENDEC GOTO GLOBALDO
NOLAXBIF NOLAXCTL LAXDCL NOLAXDEF LAXENTRY LAXIF LAXINOUT LAXLINK
LAXMARGINS LAXNESTED LAXPUNC LAXQUAL LAXRETURN LAXSCALE LAXSEMI LAXSTG
NOLAXSTRZ MULTICLOSE PADDING PROCENDONLY RECURSIVE SELFASSIGN UNREF)
Use NOLAXDCL, NOLAXPUNC, NOMULTCLOSE, NOSELFASSIGN!
The first three don't have any effects on the performance, but they will point
out questionable code!
NOSEMANTIC(S)
NOSERVICE
SOURCE
SPILL(512)
STATIC(FULL)
NOSTDSYS
NOSTMT
STORAGE
STRINGOFGRAPHIC(GRAPHIC)
NOSYNTAX(S)
SYSPARM('')
SYSTEM(MVS)
NOTEST
UNROLL(AUTO)
USAGE( HEX(SIZE) ROUND(IBM) SUBSTR(STRICT) UNSPEC(IBM) )
WIDECHAR(BIGENDIAN)
WINDOW(1950)
WRITABLE
XINFO(NODEF MSG SYM SYN NOXML)
XML( CASE(UPPER) )
DCL PLIXOPT CHAR(46) VAR STATIC EXTERNAL
INIT('HEAP(16K),ANYHEAP(1320K),STACK(6K),RPTSTG(OFF)');
Run programs, even if only once with PLIXOPT('RPTSTG(ON)') and check that you
allocate enough storage to start with. A bog-standard stack of 6K seems pretty
small, from what I remember, we used to have substantially higher values.
LAST WHERE SET OPTION
----------------------------- ------------------------------------------------
PARMLIB(CEEPRM00) ABPERC(NONE)
PARMLIB(CEEPRM00) ABTERMENC(ABEND)
PARMLIB(CEEPRM00) NOAIXBLD
PARMLIB(CEEPRM00) ALL31(ON)
PARMLIB(CEEPRM00) ANYHEAP(4096,4080,ANYWHERE,FREE)
PARMLIB(CEEPRM00) NOAUTOTASK
PARMLIB(CEEPRM00) BELOWHEAP(4096,4080,FREE)
PARMLIB(CEEPRM00) CBLOPTS(ON)
PARMLIB(CEEPRM00) CBLPSHPOP(ON)
PARMLIB(CEEPRM00) CBLQDA(ON)
Installation default CEEDUMP(60,SYSOUT=*,FREE=END,
SPIN=UNALLOC)
PARMLIB(CEEPRM00) CHECK(ON)
PARMLIB(CEEPRM00) COUNTRY(GB)
PARMLIB(CEEPRM00) DEBUG
PARMLIB(CEEPRM00) DEPTHCONDLMT(0)
Installation default DYNDUMP(*USERID,NODYNAMIC,TDUMP)
Installation default ENVAR("")
PARMLIB(CEEPRM00) ERRCOUNT(0)
PARMLIB(CEEPRM00) ERRUNIT(6)
PARMLIB(CEEPRM00) FILEHIST
PARMLIB(CEEPRM00) FILETAG(NOAUTOCVT,NOAUTOTAG)
Default setting NOFLOW
PARMLIB(CEEPRM00) HEAP(4096,4080,ANYWHERE,KEEP,4096,
4080)
PARMLIB(CEEPRM00) HEAPCHK(OFF,1,0,0,0,1024,0,1024,0)
PARMLIB(CEEPRM00) HEAPPOOLS(ON,8,5,32,5,128,5,256,5,
1024,5,2048,5,0,10,0,5,0,5,0,5,0,5,
0,5)
PARMLIB(CEEPRM00) INFOMSGFILTER(OFF,,,,)
PARMLIB(CEEPRM00) INQPCOPN
PARMLIB(CEEPRM00) INTERRUPT(OFF)
PARMLIB(CEEPRM00) LIBSTACK(4096,4080,FREE)
PARMLIB(CEEPRM00) MSGFILE(SYSOUT,FBA,121,0,NOENQ)
PARMLIB(CEEPRM00) MSGQ(15)
PARMLIB(CEEPRM00) NATLANG(ENU)
Ignored NONONIPTSTACK(See THREADSTACK)
PARMLIB(CEEPRM00) OCSTATUS
Installation default PAGEFRAMESIZE(4K,4K,4K)
PARMLIB(CEEPRM00) NOPC
PARMLIB(CEEPRM00) PLITASKCOUNT(20)
PARMLIB(CEEPRM00) POSIX(OFF)
PARMLIB(CEEPRM00) PROFILE(OFF,"")
PARMLIB(CEEPRM00) PRTUNIT(6)
PARMLIB(CEEPRM00) PUNUNIT(7)
PARMLIB(CEEPRM00) RDRUNIT(5)
PARMLIB(CEEPRM00) RECPAD(OFF)
PARMLIB(CEEPRM00) RPTOPTS(OFF)
PARMLIB(CEEPRM00) RPTSTG(OFF)
PARMLIB(CEEPRM00) NORTEREUS
PARMLIB(CEEPRM00) NOSIMVRD
Region default STACK(4096,4080,ANYWHERE,KEEP,4096,
4080)
Region default STORAGE(00,NONE,00,0)
The third parameter set to zero is a killer, get rid of it! The consequence of
using it is that all automatic storage in a procedure will be set to binary
zeroes upon each entry to the procedure, and if you've got deeply nested
procedures with lots of local variables, you will suffer, big, big, big time! If
you need specific variables to be initialised use INIT(whatever) on those, and
only those.
PARMLIB(CEEPRM00) TERMTHDACT(UADUMP,CESE,96)
PARMLIB(CEEPRM00) NOTEST(ALL,"*","PROMPT","INSPPREF")
PARMLIB(CEEPRM00) THREADHEAP(4096,4080,ANYWHERE,KEEP)
PARMLIB(CEEPRM00) THREADSTACK(OFF,4096,4080,ANYWHERE,
KEEP,4096,4080)
PARMLIB(CEEPRM00) TRACE(OFF,4096,NODUMP,LE=0)
PARMLIB(CEEPRM00) TRAP(ON,SPIE)
PARMLIB(CEEPRM00) UPSI(00000000)
PARMLIB(CEEPRM00) NOUSRHDLR(,)
PARMLIB(CEEPRM00) VCTRSAVE(OFF)
Installation default XPLINK(OFF)
PARMLIB(CEEPRM00) XUFLOW(AUTO)
I cannot see anything more obvious, but you might also ask around on the pl1
list and/or the comp.lang.pl1 Usenet newsgroup. Peter Elderon, one of IBM lead
PL/I developer reads the former and may read the latter.
Robert
--
Robert AH Prins
robert(a)prino(d)org
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN