Consultor Eletrônico



Kbase 16814: Different compilers between 7.2E and 7.3C on VMS
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   5/10/1998
Different compilers between 7.2E and 7.3C on VMS

DRAFT COPY - Currently under review and edit.

INTRODUCTION:
=============
The purpose of this knowledgebase entry is to explain what effect
moving from 7.2 to 7.3C on VMS has on the user's ability to use
various file types. The differnce in the c compiler between these two
versions affects which file formats should be used in later versions.
WHY YOU NEED TO KNOW THIS:
===========================
Periodically portability problems between different
versions of Progress and VMS arise , and the problem lies in a
fundamental change made by DEC in the c compilers and the run time
library used to access files.


PROCEDURAL APPROACH:
====================
VMS allows various file formats to exist - one of the differences is
how the file "delimits" 'file records' - that is not every file is a
flat stream file (as is the case in unix)- files can be formatted
differently. If you tried to read the hex code for some file types,
they are delimitted in different ways. A line record is delimitted by
"00")(variable length records format this way). Others, such as
stream_lf files are delimitted by "0A".{note that both could have the
same record atributes-file descriptors in unix).
In any case the second half of the 7.2E vs. 7.3C is that different
compilers and different run time libraries are used to access the
files. 7.2E used VAX C while 7.3C uses DEC C and there is a world of
difference between the two.


DEC C is an "ANSI" compiler which takes more correct actions for
"generic" code. Anything that has to do with real specific VMS/RMS
file type differences is not something that DEC added to its compiler.
DEC C really works well with stream_lf files mainly because that's the
UNIX compatible format-and thus more industry standard.So the answer
is that portability can be a problem between vesions. The important
part is the "Record Format" field. If you want to do anything with
an input file, then it should be a stream_lf, otherwise the results
can be unpredictable.

*IF ONE CHOOSES TO GO TO UNIX OR NT, THEN IT IS NECESSARY TO HAVE
FILES IN THE STREAM_LF FORMAT, OTHERWISE THE TRANSITION IS DIFFICULT.

Progress Software Technical Support Note # 16814