[comp.os.vms] Pascal V3.7 query

SMITH@BKNLVMS.BITNET (06/03/88)

We recently upgraded VMS Pascal from V3.5 to V3.7.  When I recompiled one of
my programs, it stopped working.  It began to blow up with a call to reset
a file variable, and returned the error code INVFILVAR (Invalid file variable).
Through experimentation and sheer luck, I discovered that the presence of a
call to the $CrePrc System Service is what is causing the problem.  The
following is a simplified version of the program.  Compiling as is will show
the error, and commenting out the $CrePrc call will cause the program to
behave as expected (in this case, to report a missing file).  Compiling with
and without NoOp makes no difference.  Can anyone tell me what I'm doing
wrong/what the difference is/why this is happening?  Any help will be greatly
appreciated!  Thanks in advance,

Greg Smith  <Smith@Bknlvms.Bitnet>
Bucknell Computer Services



[inherit('SYS$LIBRARY:STARLET')]
Program Junk(input,output,indcb);

Var
   indcb : text;
   PrcName : Packed array [1..8] of char;
   Stats : integer;
   pid : Unsigned;

{**********************************************************************}

Begin   { M A I N }
   stats:=1;
   reset( indcb );     {death line}
   PrcName:='FooBar';

{ comment out the following call, and all works well }
   Stats := $CrePrc( pid, 'SYS$SYSTEM:LOGINOUT.EXE',
                     'DRA0:[MAILER]COMFILE.COM','DRA0:[MAILER]COMFILE.LOG',
                     'DRA0:[MAILER]COMFILE.ERR',,,PrcName,7,
                     ,,PRC$M_NOUAF );

   $Exit( Stats );

End.

clee@td2cad.intel.com (Master Of Darkness) (06/06/88)

In article <8806060356.AA24436@ucbvax.Berkeley.EDU> SMITH@BKNLVMS.BITNET writes:
>We recently upgraded VMS Pascal from V3.5 to V3.7.  When I recompiled one of
>my programs, it stopped working.  It began to blow up with a call to reset
>a file variable, and returned the error code INVFILVAR (Invalid file variable).
>Through experimentation and sheer luck, I discovered that the presence of a
>call to the $CrePrc System Service is what is causing the problem.  The
>following is a simplified version of the program.  Compiling as is will show
>the error, and commenting out the $CrePrc call will cause the program to
>behave as expected (in this case, to report a missing file).  Compiling with
>and without NoOp makes no difference.  Can anyone tell me what I'm doing
>wrong/what the difference is/why this is happening?  Any help will be greatly
>appreciated!  Thanks in advance,
>
>Greg Smith  <Smith@Bknlvms.Bitnet>
>Bucknell Computer Services
>
>
>

 	I had the same problem, except it was moving from Pascal V3.6 to
V3.7 under VMS V4.5.  It seems that making a System Service Call
*ANYWHERE*  in the program is going to generate the INVFILVAR error when
the program executes.  The program will Compile fine, without ANY
ERRORS.

	DEC was able to confirm this, and recommended that we go back to
Pascal V3.6 until we upgrade to VMS V4.6 (or higher).

	Hope that this helps, and Good Luck.

Cecil Lee
Intel Corp.

The_Doctor%F3ACC1.INTEL.COM@RELAY.CS.NET