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