Please enable JavaScript to view this site.

A-Shell Development History

1. A new MIAMEX function has been added to allow you to specify a program to chain to in the case of an attempt to run a program for which the user does not have sufficient privileges.  This is intended to be useful in situations where you control access to certain sensitive programs by setting the privilege bits accordingly.  Rather than have the user abort with an error message, this allows you to return them to a specific program.

XCALL MIAMEX, 121, OP, PRIV'CHAINTO

OP (numeric) should be set to 0 to read the current chainto spec and 1 to set a new one.

PRIV'CHAINTO (string) will return the current spec in the case of OP 0, and should be set to the desired program specification in the case of OP 1.  Note that the program spec should be in AMOS format (50 characters max) for a RUN or LIT (not CMD or DO) file.

2. SYSTAT.LIT 2.2(142) supports a /ZS switch which acts just like the /Z (kill zombies) switch, except that it skips zombies that were launched via SUBMIT.  This switch may be useful for people who are in the habit of launching background tasks via SUBMIT which are intended to keep running after the submitter job exits.  (Such jobs are considered zombies, since they have lost their parent, but they still be functioning properly functioning and thus you might not want to kill them like you would other zombies.)

Note that you can use the /NEXT or /AFTER switches of SUBMIT to launch background tasks that will run independently of the submitter and thus will not become zombies.  See next item...

3. SUBMIT.LIT 3.0(133) fixes a problem with the use of the /AFTER and /NEXT switches that sometimes resulted in the job being submitted twice; once through the 'at' queue and once as a child of the submitter.  Here are a few examples:

.SUBMIT ctlfil arg1 arg2

Submits the specified control file (ctlfil.ctl) and passes it arguments arg1 and arg2.  (Arguments are optional and work like DO files, but note that this is an A-Shell extension not supported under AMOS.)  Submitted jobs runs immediately as a child of your job; if you exit, it becomes a zombie.

.SUBMIT ctlfil arg1 arg2 /NEXT:0

Same as the above, but runs under the 'at' queue manager.  If you exit, it does NOT become a zombie. Note that you need a space following the last argument or the /NEXT switch would be treated as part of the argument.  (As with DO file processing, arguments are space delimited.)

.SUBMIT ctlfil arg1 arg2 <ARGS> /NEXT:0,0:10

Same as above but runs in 10 minutes.  SUBMIT by itself will show it waiting in the 'at' queue.

.SUBMIT ctlfil arg1 arg2 /NEXT:0-1-0

Same as above but runs in 1 day.

.SUBMIT ctlfil arg1 arg2 /AFTER:0,23:00

Same as above but tonight at 23:00 (note today specified as 0, not 0-0-0).

.SUBMIT ctlfil arg1 arg2 /AFTER:06-13-03,23:00

Same as above but on Jun 13 at 23:00

Also note that since you can use SUBMIT within a CTL file, you can have a CTL file re-submit itself every so often.

4. (UNIX) PolyShell handling of -j switch when there is a conflicting job already by that name has been improved somewhat.  It is now less likely to require additional retries or messages.

5. (UNIX) A-Shell now handles job name conflicts in the same way as PolyShell (see note above and under 831).  That is, it automatically senses and cleans up phantoms, and otherwise prompts you as to whether it should abort the conflicting job.  You can stop it from waiting for a keyboard response to such a prompt by using the -q switch.  For example, the following command would have the effect of removing the job JACK if it was running.

ashell -j jack -q -e

(The -e causes it to exit immediately, so the only side effect would have been to kill the job JACK and nothing otherwise.)

6. A tiny timing loophole on startup has been closed.  It allowed the job table to become corrupted (or in some cases, erroneously reported as such) during the creation of JOBTBL.SYS when multiple jobs launched A-Shell at the same instant.  This was probably most likely to occur in cases where A-Shell was being launched automatically by the bootup scripts (e.g. via ashgetty).

7. (Windows) Fixed a couple of obscure problems with saving and restoring of areas containing field emulation (OPTIONS=FIELDEMU) attributes.

8. (UNIX) Fixed a problem where the VAL() function would return a non-zero result for strings starting with "NAN" or "+nan" or "-Nan" (regardless of case or what followed).  The problem is caused by an obscure "feature" in some UNIX string-to-numeric conversion libraries which use "nan" to represent "Not A Number" (which ironically, turns out to have the effect of making strings like "NANCY" evaluate to a non-zero number.  (This problem was actually fixed in the 792-6 patch, but only now migrated into the 4.7 release.)

9. (UNIX) The ash_install script (used for installing and updating A-Shell) now looks for scripts pre_ash_install and post_ash_install in the custom subdirectory of the target object path (e.g. /vm/miame/custom). If found, the pre_ash_install script will be executed before the file copying begins, and the post_ash_install script will be executed after the files are copied.  This allows you to automate any procedures that you are now performing manually when updating A-Shell (such as preserving copies of customized routines, making backups of the executables, etc.)  Sample scripts (which see for further notes) are now installed into the custom subdirectory (with .sam extensions).

Note that the custom subdirectory is intended to be the place where sites keep their own utilities and configuration scripts.