Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99e-bb - alg10b.d08
There are 2 other files named alg10b.d08 in the archive. Click here to see a list.
                 EDIT DESCRIPTIONS FOR ALGOL-10-V10B                            
  
  
                             EDIT 347    FOR ALGOL
  
  
  
  
[SYMPTOM]
  
If the user tries to use the COPY procedure to copy nonexistant  bytes
past  the  end-of-string,  COPY  returns  the  last byte in the string
instead of a null string.
  
  
[DIAGNOSIS]
  
Default parameters are set up incorrectly  in  COPY.   There  is  some
confusion  created  by  the variable number of arguments that COPY can
accept.
  
  
[CURE]
  
Set up default parameters correctly.  If the  user  attempts  to  copy
bytes past the end of the string, return a null string.
********************************************************************************
  
  
                             EDIT 350    FOR ALGOL
  
  
  
  
[SYMPTOM]
  
If an expression is too long, ALGOL issues a  warning  and  continues.
The resultant .REL file is corrupt and the program will not run.
  
  
[DIAGNOSIS]
  
The error "EXPRESSION TOO LONG" was meant to be a fatal error,  not  a
warning.   If  ALGOL  issues  this  message,  the  user  must  use the
/TEMPCODE:n switch to the compiler  to  increase  the  tempcode  space
above the default value (256 decimal).
  
  
[CURE]
  
Change the EXPRESSION TOO LONG error to be fatal, not just a warning.
********************************************************************************
  
  
                             EDIT 351    FOR ALGOL
  
  
  
  
[SYMPTOM]
  
Programs die unexpectedly with memory managment  problems.   The  heap
integrity checker complains about a foulup.
  
  
[DIAGNOSIS]
  
WRITE improperly deletes all dynamic simple string expressions.   When
these  strings  are  returned to the free-space list, the list becomes
corrupt.  Procedures LENGTH, SIZE and  CONCAT  also  exhibit  problems
with improperly deleting strings.
  
  
[CURE]
  
Teach WRITE, LENGTH, SIZE, and CONCAT to  not  delete  dynamic  simple
string  expressions unless the actual string is dynamic and the result
of a procedure.
********************************************************************************
  
  
                             EDIT 352    FOR ALGOL
  
  
  
  
[SYMPTOM]
  
User program works with /CHECKON but gets an illegal memory  reference
with /CHECKOFF.
  
  
[DIAGNOSIS]
  
Incorrect code is sometimes generated by the compiler  when  /CHECKOFF
is  specified.   In particular, expressions nested several levels deep
in procedures and involving formals which are  multi-dimensional  LONG
REAL arrays will use conflicting accumulators.
  
  
[CURE]
  
Just before allocating an  accumulator,  check  if  a  conflict  might
occur.   If  it  might, change LAC (last accumulator allocated) so the
accumulator  loading/allocating  procedure  will  properly  assign   a
register.
********************************************************************************
  
  
  
END OF  ALGOL-10-V10B