.th PX VI 9/10/77 .sh NAME px \- Pascal interpreter .sh SYNOPSIS .bd px [ obj [ argument ... ] ] .sh DESCRIPTION .it Px interprets the abstract machine code generated by .it pi. The first argument is the file to be interpreted, and defaults to \fIobj\fR\|; remaining arguments are available to the Pascal program using the built-ins .it argv and .it argc. .it Px is also invoked by .it pix when running ``load and go''. .s3 If the program terminates abnormally an error message and a control flow backtrace are printed. The number of statements executed and total execution time are printed after normal termination. The .bd p option of .it pi suppresses all of this except the message indicating the cause of abnormal termination. .sh FILES .dt obj default object file .br pmon.out profile data file .sh "SEE ALSO" UNIX Pascal User's Manual .br pi (VI), pix (VI) .sh DIAGNOSTICS Most run-time error messages are self-explanatory. Some of the more unusual ones are: .s3 .lp +6 3 Reference to an inactive file .br A file other than .it input or .it output was used before a call to .it reset or .it rewrite. .s3 .lp +6 3 Statement count limit exceeded .br The limit of 500,000 executed statements (which prevents excessive looping or recursion) has been exceeded. .s3 .lp +6 3 Bad data found on integer read .lp +6 3 Bad data found on real read .br Usually, non-numeric input was found for a number. For reals, Pascal requires digits before and after the decimal point so that numbers like `.1' or `21.' evoke the second diagnostic. .s3 .lp +6 3 panic: \fISome message\fP .br Indicates a internal inconsistency detected in .it px probably due to a Pascal system bug. .i0 .sh AUTHORS Charles B. Haley, William N. Joy, and Ken Thompson .sh BUGS Calls to the procedures .it dispose and .it linelimit are ignored. .s3 Post-mortem traceback is not limited; infinite recursion leads to almost infinite traceback. .s3 Because interrupts sometimes find the system in the middle of a .bd procedure or .bd function entry or exit, the error backtrace on an interrupt is occasionally meaningless. The current line is, however, always correct; only the call backtrace and the name of the current routine may be lost.