Subrelease 4.5A Compatibility warning: Due to a minor change in the format of QFLOCK.SYS, this version cannot be run simultaneously with 4.5. In addition, a number of LIT commands (SYSTAT, ASTAT, CHAT, SEND, KILL, LOKUTL, QUTL) had to be modified to match the new QFLOCK.SYS layout, so when you upgrade to 4.5A, it is best to do a complete install/update rather than just copying the ashell executable. Also note that this change in the QFLOCK.SYS format was actually implemented in 4.5(698) (see edit notes below) but this is the first public release of that code (which is why the subversion is just changing now.)
In addition to consolidating all of the version 4.5(698) patches...
1. (UNIX) SPOOL.LOG now contains an additional line containing a time stamp message, which includes the job name (J=jobnam), program name (P=program), user login name (U=user), tty name (T=ttynam), and the filename spooled. This last item is deliberately redundant (since it shows up in the trace of the UNIX lp); the redundancy could be useful in a situation where several people submitted printfiles at the same time, which could cause the timestamps and the actual tracing of the lp command to get slightly separated due to the interleaving of another job's spooler trace.
2. (UNIX) Introduce QUIT.LIT command. Works exactly like HOST, except that when running under P-SHELL, instead of just shutting down the current process, it shuts down all of the A-Shell processes running under that instance of P-SHELL and then exits you out of P-SHELL entirely. Note that any programs that were running in any of those other A-Shell sessions will be aborted with a Basic error 250 (same as hangup.)
3. FLOCK.SBR now double-checks the validity of the job's instance record before placing a lock. This obscure 'feature' was added to eliminate the possibility that a job could be ZAPped out of the QFLOCK.SYS file (using QUTL.LIT) and yet continue to place locks which would masquerade as having been placed by a different user (since the real user didn't official exist.) If this error is detected, Basic error 252 is generated. SYS:ERRMSG.USA has been updated to include the message "Job queue zapped" for error 252.
4. (UNIX) KILL.LIT 1.6(112) now works more sensibly and intelligently. Now, without the /K switch, it sends the SIGINT signal, which is handled by the target job exactly like Control-C. The job sending the kill signal then waits for up to 5 seconds and reports the status, among other things identifying the case where the target job simply trapped or ignored the Control-C signal. With the /K switch, it sends the SIGTERM signal, which will cause a Basic error 251 in the target program, generally causing an abrupt termination.
5. (UNIX) QUTL.LIT 1.3(112) no longer permits the ZAP operation on a live job (one whose underlying UNIX process still exists.) Instead, it reports this and suggest the use of the KILL command. On the other hand, if the underlying process is gone, it mentions this after the warning and before prompting for "PROCEED" to give the user a sense that it is probably ok to proceed. (This 'enhancement' by the site as the FLOCK 'enhancement' above, in which many hours of troubleshooting were made necessary by someone who used the ZAP command without fully considering the warning.)
6. File channels > 64K are now supported, both in Basic and in FLOCK.SBR. (This is a good example of the extreme uses that people put A-Shell to!) Note that the 64K limit on file channels remains in AMOS (both for Basic and for FLOCK) so use of feature will render your programs incompatible with AMOS. (Is that a problem?)
7. Fix a problem with the standalone compiler in which it would generate a memory fault after the first syntax error. Now, it properly supports standard out so you can redirect the output to a file or pipe it to pg.
8. Bring standalone VUE up to level of embedded version (edit 222.)