 |
» |
|
 |
|
 |

Copyright (c) Digital Equipment Corporation 1992,1995. All rights reserved
PRODUCT: VAX PL/1
DEC PL/1
OP/SYS: OpenVMS VAX
OpenVMS AXP
SOURCE: Digital Equipment Corporation
SYMPTOM:
Received error at compile time:
-RMS-W-RTB, 510 byte record too large for user's buffer
WORKAROUNDS:
Convert the file to variable length records using the convert utility.
Or, edit the file and exit, causing it to reset the LRL in the file
header.
DIGITAL RESPONSE:
The following has now been documented in the PLI release notes:
o The compiler can now handle records up to 32K which is RMS
max. After a file is opened, a buffer equal to the longest
record length is allocated. This buffer is then used when
the record is read.
This change is highly dependent on obtaining the longest
record length value for a file from RMS (using the xab$w_lrl
field of fhc_xab block) when the file is opened. However,
there are some rare cases in which RMS fails to provide a
correct value in that field. If this occures the
%PLIG-F-READERR message, followed by an -RMS-F-USZ, invalid
user buffer size error will be returned.
One suggested user action is to edit the source file and
write out a new version, causing RMS to update the lrl value
in the file header.
ANALYSIS:
This error was generated at compile time when trying to do a %include
with a file that has a record format of stream, or a record length
greater than 32000.
This command procedure will reproduce the behavior:
$CREATE INCLUDE_FILE.PLI
do: proc options(main);
dcl incfl stream;
dcl i fixed bin(31);
open output file(incfl) title('incfl.inc');
do i = 1 to 10000;
put file(incfl) edit ('newdata ',i)(a,f(5,0));
end;
close file(incfl);
end;
$ CREATE INCFL.FDL
IDENT "30-JUL-1992 08:27:41 VAX/VMS ANALYZE/RMS_FILE Utility"
SYSTEM
SOURCE VAX/VMS
FILE
ALLOCATION 315
BEST_TRY_CONTIGUOUS no
CLUSTER_SIZE 3
CONTIGUOUS no
EXTENSION 0
FILE_MONITORING no
GLOBAL_BUFFER_COUNT 0
NAME "INCFL.INC"
ORGANIZATION sequential
PROTECTION (system:RWED, owner:RWED, group:RE, world:)
RECORD
BLOCK_SPAN yes
FORMAT stream
$ PLI INCLUDE_FILE
$ LINK INCLUDE_FILE
$ RUN INCLUDE_FILE
$ CONVERT/FDL=incfl.fdl incfl.inc incfl.inc
$ CREATE TEST.PLI
test: proc options(main);
%include 'incfl.inc';
end test;
$ PLI/SHOW=ALL TEST.PLI
REFERENCES:
"SYS$HELP:PLI$035.RELEASE_NOTES", Section 5, KNOWN PROBLEMS AND RESTRICTIONS
"SYS$HELP:DPLI040.RELEASE_NOTES", Section 4.1 Compiler Known Errors and
Methods of Avoidance
|
buy online or call 1.800.AT.COMPAQ
|
|