Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99g-bb - cbl12b.d13
There are no other files named cbl12b.d13 in the archive.
                 EDIT DESCRIPTIONS FOR COBOL-10-V12B                            
  
  
                             EDIT 1613   FOR COBOL
  
  
  
  
[SYMPTOM]
  
Very large COBOL compiles of programs with many  data  items
or  large  report writer sections may crash due to bad table
links or produce bad code.  These programs may get  a  "?Not
enough  memory  to continue compilation" error if a few more
lines are added to the largest section.  This is most likely
to happen with large report writer programs (~2000+ lines of
reports).
  
[DIAGNOSIS]
  
Information derived from the source is  stored  in  internal
dynamic compiler tables.  The tables have a limit of 2**16-1
words.  Large programs may  overflow  one  or  more  of  the
tables  and  cause  the  pointers  into them to wrap-around.
Data in the low end of  the  table  gets  overwritten.   The
table expanding routine does not check for table overflow.
  
[CURE]
  
Add a routine to the dynamic table expander  to  check  that
the  table  has  not  overflowed.   If a table overflows the
routine will produce and error and abort the  compile.   The
routine  will  expand  the  table by a smaller amount if the
requested expansion would overflow  the  table.   This  will
keep  the edit from breaking large programs that just squeak
through now.  No effort was made to find a way to  make  the
tables  larger  since  the problem only occurs if the source
program is close to compile-time  and  runtime  core  limits
anyway.   The  edit  goes into XPAND.MAC for version 12B and
into COBCOM.MAC for version 13.
********************************************************************************
  
  
                             EDIT 213    FOR ISAM
  
  
  
  
[SYMPTOM]
  
When ISAM is run on a file that cannot be opened because  it
is  being  modified  or  has  protection  failure ect.  ISAM
reports:
  
?Lookup failure on input file -- (0) file not found
  
When file does exist the error is erroneous.
  
[DIAGNOSIS]
  
The LOOKUP error processor assumes  that  the  short  lookup
block  was used and that it resides at TA-TC.  It expects to
find the error code in TB.  The lookup block that failed  is
at  IF1LB and is an extened lookup block.  The error code is
therefore in the right half of IF1LB+3 not in TB.  The "file
not  found"  error was reported because there happed to be a
zero in the right half of TB.
  
[CURE]
  
Make a new entry point into the LOOKUP failure routine  that
will  move  the  error  code  from IF1LB+3 to TB so that the
routine can report it.
********************************************************************************
  
  
                             EDIT 1150   FOR LIBOL
  
  
  
  
[SYMPTOM]
  
When writing and the subsequently reading a sixbit file, the
following error message result:  Maximum Record count cannot
be exceeded.
  
[DIAGNOSIS]
  
Forgot to check the buffer  for  being  full  in  all  cases
before writing.
  
[CURE]
  
Check the buffer to see if it is full before writing.
********************************************************************************
  
  
                             EDIT 1151   FOR LIBOL
  
  
  
  
[SYMPTOM]
  
If a program has both a sequential and a relative file  open
for  output,  and a relative write that causes the buffer to
output  to  disk  takes  the  invalid  key  path,  the  next
sequential  write  will  fail with an "?  illegal address in
UUO" error for the write.
  
[DIAGNOSIS]
  
The WRITE.  code puts a dump mode IOWD in the right half  of
UOUT.   The  normal  key path later clears the right half of
this word before returning to the user program.  The invalid
key path leaves the IOWD pointer in place.
  
[CURE]
  
Edit 1151 clears the right half of UOUT.   before  returning
via the invalid key path.
********************************************************************************
  
  
  
END OF  COBOL-10-V12B