AUTO Release History
AUTO Release History
====================
Level Date Pgm D e s c r i p t i o n
1.0 Jan 93 SJM Initial release.
1.1 Feb 93 SJM Add a keyword to TASK SGS indicating how the
command on the SGS should be processed:
- value of ADD indicates that the command
should be @ADDed.
- value of AMS indicates that the command
should be sent to AMS via:
*DISPLAY,O 'AMS PLEASE TYPE: command'
2.0 Mar 93 SJM Re-design the day selection criteria on the
WHEN SGS:
- allow multiple criteria (ANDed together).
- change all criteria to a 'keyword op value'
approach. All keywords allow the '='
operator and some allow the '>' and '<'
operators.
- allow specification of the calendar date
(01 to 31) so that tasks may be done only
on some days during the month.
- allow specifcation of the month (01 to 12)
so that tasks may be done only during some
months.
- add new criteria for n'th or last working
or banking day of the week or month, plus
last calendar day of the month.
- allow specification of all non-working or
non-banking days.
- allow these specifications for yesterday
and tomorrow.
- add edits of DAY, WHEN and TASK SGSs when
the skeleton is first called.
- add ability to simulate any date in the
calendar.
2.1 Mar 93 SJM - Add a new keyword on the TASK SGS: "MSG"
causes a message to be sent to the console
(without the script-triggering prefix that
the AMS keyword causes to be included).
- Add ability to perform a task based on a
given probability (PROB=). The probability
is expresssed as a percentage (1 to 99) and
is evaluated using the time in milliseconds.
- In simulation mode, allow user to enter a
null date. The first time it's taken to mean
'today'; subsequently it's taken to mean
'next day'. This allows the user to walk
through successive days by transmitting.
- Add screen paging for non-breakpointed
demand users in simulation mode.
2.2 Apr 93 SJM - Minor corrections and cosmetic changes.
- Tighten up edit of time (previously, some
illegal times were not caught).
- There are no functional differences from
the previous version.
3.0 Jun 93 SJM - Add 'FACT=' specification to the WHEN SGSs
to allow waiting for prerequiste conditions
to be @ASSERTed.
- Add 'FILE=' specification to the WHEN SGSs
to allow waiting for a prerequiste file to be
catalogued.
- Add two new types of days: online and
batch.
3.1 Jul 93 SJM - Add expiry time to WHEN SGS (used in
conjunction with 'FACT=' and 'FILE=').
- Move specification of the time to wait
between checks of the schedule from this
skeleton to AUTO/CONFIG.
- Add the STRT action type to the TASK SGS.
- Allow DOMAIN SGS to specify numeric ranges
(this change is invisible to users).
3.2 Aug 93 SJM - Add "not equals" ('~') operator for some
expressions on WHEN SGSs.
- Minor improvements to the edits of WHEN
SGS expressions and to the format of their
associated error messages.
3.3 Aug 93 SJM - Add W_TASK_EXP as the fourth field on the
WHEN SGS to allow performance of an alternate
task if the given task expires. This
requires conversion of previous WHEN SGSs.
- Add VERSION SGS to AUTO/CONFIG to record
AUTO's release level in one place.
- Rename 'x_NAME' fields to 'x_TASK' on WHEN,
TASK and PREREQ SGSs (invisible to user).
4.0 Sep 93 SJM - Add ASSERT and DENY action types to TASK
SGS. These assert and deny facts in the fact
database without exiting this skeleton. Part
of FACTSKEL has been made into a seperate
*COPY proc to serve both skeletons.
- Add HALT action type to TASK SGS to force
AUTO background run to terminate.
- Add Julian date to calendar (DAY SGSs) and
add JULIAN keyword to WHEN SGSs.
- Fix several bugs in edit of subject and
predicate.
4.1 May 94 SJM Bring documentation, default calendar, and
AMS scripts up to date.
5.0 May 94 SJM - Take advantage of SSG 23R1's extended date
support. It now provides a full four-digit
date and also provides a date SGS (DATE$)
that's updated each time it's referenced.
Thus, the CENTURY SGS is no longer needed,
and it is no longer necessary to exit and
re-invoke this skeleton at midnight in order
to pick up the new date.
- *LOOP syntax such as '*LOOP X' is changed
to '*LOOP . X'. Although SSG does not
generate a syntax error, the *LOOP directive
does not provide for an optional variable
name (unlike *ITERATE and *EXIT, which do).
So the variable name on *LOOPs is commented,
in case future SSG releases enforce *LOOP
syntax as the manual specifies it.
- This version requires SSG 23R1 (or above).
5.1 Jul 94 SJM - Use new version of DAY-OF-WEEK to generate
the calendar. This version works until 2099
(the old version only worked until 1999).
- Update GENERIC to version 2.0 .
- Update PIPELINE to version 1.2 .
- Move description of AUTO releases from
AUTOSKEL to RELEASE/HISTORY.
5.2 Oct 94 SJM - Add T option to @ASSERT to allow user to
specify date and time to be recorded in the
fact file.
- Upgrade @ASSERT, @DENY, and @PREREQ
processors to use GENERIC 2.1.
5.3 May 95 SJM - Allow user to exit early from the simulation
of a day's schedule.
- Edit user input SGS labels to ensure that only
expected labels are provided at fire-up time.
The (new) METALABEL SGSs describes acceptable
user-supplied labels for fire-up time.
- Several improvements are made to QUERYSKEL:
- Allow display (of facts or prerequisites)
backwards.
- Allow early exit from display (of facts or
prerequisites).
- Allow use in batch, and don't prompt user for
transmit if run is batch or breakpointed.
- Default calendar (CALENDAR/SGS) now contains
DAY SGSs for 1995, 1996, and 1997.
- Upgrade @ASSERT, @DENY, and @PREREQ processors
to use GENERIC 3.0.
- Upgrade RUNINFO subroutine (called by GENERIC)
to version 3.0. This contains correct PCT
definitions up to SB 5R3.
5.4 Jun 95 SJM Many small improvements:
Bug fixes:
- *SET IMGLEN$ = 132 in AUTOSKEL to fix bug where
*CREATE creates SGS greater than 80 characters
long.
- Properly display error message when a TASK SGS
has fields.
- Properly set date in simulator after user's
first attempt is illegal and he then elects to a
accept the default.
Editing enhancements:
- Set maximum task name length to 16 characters
and edit user input for this (previously there
was no maximum).
- Provide warning message for a task that can
never be scheduled (i.e., a task not mentioned
on any WHEN SGS).
Simulator enhancements:
- Replace keyword=value display with headings at
top of screen.
- Add expiry time and expiry replacement task to
the display.
- Allow user specification of start time to
simulate.
Query enhancements:
- Show all 16 characters of task names (previously
task names were truncated to 11 characters).
- Improve readability of the screen by omitting
seconds when displaying times.
Scheduling enhancements:
- Allow optional TASKID SGS to supply description
of a task. Example:
TASKID DBSAVE ''Save the production database''
- On task expiry where SHOWEXPIRY config tag is
set to YES, display on the console the
description of the expiring task (from the
TASKID SGS, if available).
- Add timestamp to several important console
messages. Useful for auditing.
Fact database enhancements:
- Display upon printer the subject/predicate for
each fact that changes (via @ASSERT or @DENY,
or via the ASSERT or DENY action types in
AUTOSKEL). This provides an audit trail of
fact database changes.
Documentation enhancements:
- Discuss the impact of the year 2000 on AUTO and
SSG.
Internal changes:
- Move all SGS specifications from @SSG call to
SGS cards following the call. This decreases
the chance of an element being overwritten
due to incorrect number of commas on the @SSG
call, and is more readable.
- Upgrade RUNINFO subroutine to version 4.0, which
works on Exec up to and including 44R4 (SB 5R4).
5.5 Oct 95 SJM - Add detailed simulation feature. This provides
a detailed report of what AUTO will do on a
given date.
- Add new configuration parameter PAGELINES.
This is needed only for the detailed simulation
feature.
- Upgrade @ASSERT, @DENY, and @PREREQ processors
to use PIPELINE 2.0 and GENERIC 5.0. (These
no longer use the RIBUFDEF and RUNINFO elements,
which have been deleted from AUTO.)
- Minor changes to backround run (AUTO): don't
leave SYS$LIB$*FURPUR assigned; small cosmetic
changes.
********************************************************************************
Release 6.0 Jan 1996 SJM
********************************************************************************
- Drops the ADD action type from the TASK SGS. This was an
undesirable feature that added to the complexity of AUTO.
- Adds a "relative day index" attribute to the calendar (DAY
SGSs). January 1, 1964 was day zero. One is added to this
number for each subsequent day.
- Adds file placement attribute to the FACTFILE and PREREQFILE
configuration parameters.
- Adds to the WHEN SGS the ability to specify that a task is
performed every i'th week. AUTO uses the relative day index
(see previous point) to compute a relative week number,
where Monday, January 6, 1964 began week #1. The WHEN SGS
parameter is specified as follows:
WEEK=i/j
In the above, i and j represent whole numbers where j is
greater than or equal to i. The not equals ('~') operator
is also allowed, as are the yesterday (YES_) and tomorrow
(TOM_) prefixes. A 'WEEK=i/j' parameter will evaluate to
true iff:
i = ( ( week# mod j ) + 1 )
Example: WEEK=1/2 specifies that the task is to be
performed during the first week of every two-week cycle
(i.e., during odd-numbered weeks).
- The order of fields #1 and #2 on the WHEN SGS is reversed.
The scheduled time now becomes field #1. The task name now
becomes field #2. I find this more intuitive and it's
consistent with the ordering of fields #3 and #4 (expiry
time and task).
- Changes the evaluation of 'WEEK_x_DAY<n' and 'MONTH_x_DAY<n'
expressions on WHEN SGSs such that they will never evaluate
to true on non-x days (where x = WORK, BANK, BATCH, ONLINE).
In previous versions, such expressions were true on non-x
days even though those using the equals ('=') or greater
than ('>') operators were false. This change means only the
not equals operator will return true in this case. This
change may require the addition of 'x=NO' parameters to WHEN
SGSs that relied on 'WEEK_x_DAY<n' or 'MONTH_x_DAY<n' to
disqualify non-x days!
- Upon initialization, AUTO runs tasks missed because AUTO or
the system was down. This feature uses a new (third) file--
the control file. The expiry feature can be used to
suppress subsequent running of tasks. Thus, even tasks
without prerequisites can now use the expiry time and task
fields on WHEN SGSs. In addition, global suppression of
this feature can be accomplished by starting AUTO with a
condition code (4) that will initialize the control file.
The CONTROLFILE config parameter names and places the
control file.
- Adds a normal termination function whereby a user can
request (via @AUTO,X) that AUTO terminate normally the next
time it wakes up. This removes the need to E AUTO.
- Splits AUTO/CONFIG element into DICTIONARY (not site-
modifiable) and CONFIG (site-modifiable).
- Renames elements:
Old Element Name New Element Name
CALENDAR/SGS CALENDAR
AUTO/TASKS SCHEDULE
AUTOSKEL MAIN/SKEL
FACTSKEL FACT/SKEL
CALSKEL CALENDAR/SKEL
QUERYSKEL QUERY/SKEL
AUTOSKEL MAIN/SKEL
- Adds a new processor (@AUTO with elements AUTO/ADD and
AUTO/SKEL) that performs the following functions:
@AUTO,H : give help for @AUTO (and do nothing else)
@AUTO,B : generates background run ECL
@AUTO,C : generates CALENDAR element in TPF$
@AUTO,Q : generates and executes query ECL
@AUTO,S : generates and executes simulation ECL
@AUTO,X : requests background run normal termination
- Deletes elements that have been replaced by @AUTO (see
previous point):
SIMULATE
SIMULATE/DETAIL
QUERY
CALGEN
- Adds new elements:
INIT/SKEL : generates and executes background run
initialization ECL
EXIT/SKEL : asks the AUTO background run to terminate
normally
FILE-SPEC : standard SSG *COPY proc used by AUTO/SKEL
- Most of the ECL in the background run (element AUTO) is
replaced with '@AUTO,B'.
*******************************************************************************
Release 6.1 Oct 1996 SJM
*******************************************************************************
- Minor enhancements:
- Upgrade processors to use version 2.2 of PIPELINE subroutine.
- Change AUTO to use the new-and-improved DAY-OF-WEEK (aka
FIND_THE_DAY) from the Group W Toolset.
- When generating a calendar (@AUTO,C), explicitly edit that
the input year is between 1964 and 2099 (inclusive).
Previously, AUTO relied on FIND_THE_DAY's error status
should the user supply an out-of-range year. This worked
but was ugly.
- Take advantage of the new FIND_THE_DAY's ability to set
ERRCNT$ if it finds an error: after calling FIND_THE_DAY,
check that ERRCNT$ is clear and *ABORT if it's not.
- Console messages for scheduling start, scheduling restart,
and AUTO termination now include the date in ISO 8601
external format. (This uses new element GET-ISO-DATE.)
- When AUTO is restarted, it validates its most recent
scheduling date/time (from the control file) and aborts
if any of the following conditions obtain:
- The date in the control file is not found in the calendar.
- AUTO has been down for more than 24 hours.
- The current date/time is less than the most recent
scheduling date/time. This means that the clock has
been moved backwards.
In these situations, AUTO cannot restart properly because
restart only applies to outages of less than 24 hours (due
to prerequisite expiry limitations). It's better to abort
than schedule tasks improperly. The problem can be corrected
by initializing the control file; depending on the nature of
the outage and the desired recovery, it might also be best to
initialize the fact and prerequisite files (this must be a
site decision based on knowledge of how AUTO is used).
- Adds new element:
- GET-ISO-DATE (used by MAIN/SKEL).
- Bug fixes:
- The date to be simulated is never solicited from the
console. This allows batch jobs to supply dates in their
input card deck.
- The MN options are included on the @SSG call to suppress
SSG's standard fire-up messages and page headings. This
is helpful when simulating in batch or breakpointed mode.
- MAIN/SKEL is changed to keep AUTO*CONTROL assigned
exclusively while AUTO is processing its schedule (i.e.,
during steps 1 to 4 in the previous log entry).
Previously, since AUTO*CONTROL was not assigned to the
run, SSG would assign it for the duration of the *RESTORE
and *SAVE commands and free it afterwards. Now it will
be assigned exclusively from just before the *RESTORE
until just after the *SAVE.
- EXIT/SKEL (used by @AUTO,X) is changed to add date and
time as fields on the HALT SGS. This will not affect what
AUTO does, but will make it easy to determine the age of a
HALT SGS when dumping AUTO*CONTROL.
- When restarting, check whether a task expired while AUTO
was down only after ensuring that the task is to run that
day. Previously, AUTO could falsely report an expiry for
a task that does not run that day.
- Corrects several bugs in restart logic where AUTO could
incorrectly expire a task or incorrectly fail to expire
a task (by granting an additional 24 hours) when AUTO
re-starts after being down over midnight.
These bugs were never reported; they were found during
code inspection.
- Corrects bug whereby AUTO could pick up inconsistent
date and time if midnight occurred between neighboring
DATE$ and TIME$ SGS references during start-up.
This bug was never reported; it was found during code
inspection.
*******************************************************************************
Release 6.2 Nov 1997 SJM
*******************************************************************************
- Minor enhancements:
- Bring the output date format shown by AUTO under user control
(input and internal date formats remain YYYYMMDD):
- Add the SITE_DATE_FORMAT and SITE_DATE_SEP_CHAR parameters
to the CONFIG element. Default external date format is ISO
8601 (YYYY-MM-DD), which is what previous releases of AUTO
used.
- Modify skeletons to use the two new date format parameters:
AUTO/SKEL, FACT/SKEL, MAIN/SKEL, UPDATE-FACTS.
- Use new version of SSG *COPY proc SHOW-ID-LINE from the Group
W Toolset, which uses these two new parameters to control date
formatting.
- Replace GET-ISO-DATE element with GET-EXT-DATE, and modify
MAIN/SKEL to *COPY the new element and to call its *DEFINE.
- Upgrade processors to use version 2.3 of PIPELINE subroutine
and version 6.0 of GENERIC.
- Use new version of SSG *COPY proc FILE-SPEC from Group W
Toolset.
- Set element subtype for SSG *COPY procedures to 'SSG'. This
simplifies finding *COPY procs with Table of Contents search
utilities such as @TOCED.
- Replace old @DOC-based documentation elements (AUTO/DOC and
AUTO/SYM) with Hypertext Markup Language (HTML) element called
called AUTO/HTM. This can be downloaded to a PC disk (or Web
server) and viewed with a Web browser.
*******************************************************************************
Release 6.3 Jul 1998 SJM
*******************************************************************************
- New feature:
- A new configuration parameter, SYSID, allow specification of a unique
system-id. If omitted (the default), then AUTO will get the system-id
from the Exec. The WHEN statement is enhanced to allow specification
of the system-id (via SYSID=xxxxxx). This feature allows different
scheduling needs for multiple systems to be controlled by a single
schedule.
- Bug fixes:
- Remove reference to AUTO02 ACR from CONFIG element. This was a local
modification that never should have been in the released version.
Thanks to Erich Staubringer for noticing this.
- Fix two bugs in one line of code (!) whereby AUTO could fail to properly
recognize that a file had arrived. Faulty facility bits check on
@ASG,AZ of file for which it's waiting:
- failed to recognize that various facility warning bits can be set (it
had allowed the disabled bit but no others); this could cause AUTO to
never recgonize that the file was there.
- failed to ensure that the file was not assigned to anyone else; this
could cause AUTO to proceed while the file is not yet fully created.
Thanks to Andrew Williams for finding and fixing this mess.
- Minor Enhancements:
- Default CALENDAR now contains 1998, 1999 and 2000. (Previous
version had 1996, 1997 and 1998.)
- Remove Nasdaq-specific code from SHOW-ID-LINE *COPY proc.
- Several minor changes to AUTO/HTM.
*******************************************************************************
Release 7.0 Sep 1999 SJM
*******************************************************************************
- New features:
- There are new computed day attributes for field #5 (and
beyond) of the WHEN SGS:
SINCE_WORK : # of days since last work day
SINCE_BANK : # of days since last bank day
SINCE_BATCH : # of days since last batch day
SINCE_ONLINE : # of days since last online day
SINCE_NON_WORK : # of days since last non-work day
SINCE_NON_BANK : # of days since last non-bank day
SINCE_NON_BATCH : # of days since last non-batch day
SINCE_NON_ONLINE : # of days since last non-online day
These provide schedule control based on the number of days
since the last day of the given type. Values will be GE 1
(e.g., if the day immediately preceding the day in question
was a batch day, then SINCE_BATCH_YES will be 1). These
counters can be used with yesterday ("YES_") and tomorrow
("TOM_") prefixes and with all AUTO relational operators
(=,~,>,<).
- Adds OR capability to WHEN SGSs. Fields 5 and higher can now
specify multiple subfields. As before, fields specify AND
conditions. Subfields, which were previously prohibited, now
specify OR conditions. The AND operator always has higher
precedence. Examples:
WHEN 22:45:00 TASK1 \ \ DAY=MON,DAY=TUE
.
WHEN 22:45:00 TASK2 \ 23:45:00 ONLINE=YES ;
BATCH=NO,FILE=SJM*F1
TASK1 will be performed IFF it's Monday OR Tuesday.
TASK2 will be performed IFF it's an on-line day AND
(EITHER it's a non-batch day OR SJM*F1 arrives before
23:45). Note that on non-batch days, TASK2 will not wait
for SJM*F1 because there is no need: BATCH=NO is true
and so it can proceed immediately.
Compatibility Considerations:
The format of the prerequisite file (AUTO*PREREQS) has
changed: A new field is added. This field contains a
timestamp used to link all prereqs that are part of an
OR (satisfying any of them satisfies them all). The
first time AUTO starts after release 7 is installed, it
automatically upgrades any entries in this file by
adding a unique dummy timestamp (no old prereqs can be
part of an OR because the feature did not exist).
Fallback Considerations:
- If prereq file contains no prereqs that are part of an
OR, there are no fallback issues with it. The extra
field will remain but is ignored by the previous release.
- If prereq file contains prereqs that are part of an OR,
then falling back will turn them into part of an AND
(which is all that the previous release supports). This
could cause a task not to be executed when desired. You
may need to workaround with a manual procedure. Note:
Falling back with "ST* AUTO,1" (re-create prereq file)
would guarantee that all new prereqs are trashed, and so
is recommended if feasible.
- New YYYYMMDD keyword on WHEN SGSs provides ability to schedule
tasks before, on, or after a specific date. Example:
WHEN 22:45:00 TASK1 \ \ DATE>19990419
Task TASK1 will be performed on 1999-04-20 and beyond. In
conjunction with the OR feature, this feature can be used to turn
prerequisites on or off starting at a given date:
WHEN 22:45:00 TASK2 \ \ FACT=JOB1/FIN ;
DATE<19990601,FACT=JOB2/FIN
Beginning on June 1, 1999, TASK2 will wait on JOB2/FIN.
- Time fields on WHEN SGSs can now be expressed without the seconds
portion (which will be assumed to be zero when omitted). Thus,
these four SGSs are equivalent:
WHEN 13:00:00 TASK1 13:15:00 \ DAY=ALL
WHEN 13:00 TASK1 13:15 \ DAY=ALL
WHEN 13:00:00 TASK1 13:15 \ DAY=ALL
WHEN 13:00 TASK1 13:15:00 \ DAY=ALL
- Expiry time field on WHEN SGSs can now be specified as a forward
relative time. This is indicated by a leading plus sign ('+').
Thus, these two WHEN SGSs are equivalent:
WHEN 13:00:00 TASK1 13:15:00 \ DAY=ALL
WHEN 13:00:00 TASK1 +15 \ DAY=ALL
The forward relative time must be an integer from 0 (immediate
expiry) to 1440.
- A single WHEN SGSs can now schedule a task repetitively. Field 1
has optional subfields: Subfield 2 specifies that the task is to
be repeated every N minutes. Subfield 3 specifies a cessation
time for the repetition. For example:
WHEN 08:00:00,30,17:00:00 TASK1 +10 \ DAY=ALL
TASK1 is executed every 30 minutes between 8 a.m. and 5 p.m. (and
exprires at 8:10 to 5:10, respectively).
Please note:
- If subfield 2 is omitted, then it defaults to zero. This
means no repetition and so would work exactly as in
previous releases. If supplied, it must be an integer
between 1 and 1440.
- Subfield 3 is meaningful only if subfield 2 is specified.
If subfield 2 is specified but subfield 3 is omitted, then
it defaults to the subfield 1 time (i.e., repeat around
the clock). Subfield 3 can be expressed in any of the
supported time formats (HH:MM, HH:MM:SS or +MIN).
- Use of this feature requires that an internal sort be done
to order the items by ascending schedule time. This sort
uses the original WHEN occurrence number as a tiebreaker
when multiple WHENs have the same scheduled time. This
preserves the input order of user-created WHEN SGSs. It
also controls the order of scheduling internally-created
items for repetition: The occurrence number of the WHEN
SGS that specified the repetition will be used. This means
that, when multiple WHENs specify the same schedule time,
items generated for repetition will be scheduled before
user-submitted items if the time is later than the original
WHEN time; otherwise, they will be scheduled after. You
are strongly advised not to count on any specific behavior
as to the order that repetitive items will be scheduled
when several items are to be scheduled at the same time.
All that is guaranteed is that repetitive items will be
scheduled at the specified time.
- AUTO can now refresh its schedule, calendar, configuration and
all software used by the background run without terminating.
This can be down on a scheduled basis via
TASK taskname REFRESH
or forced externally via
@AUTO,R
These are analogous to the HALT keyword and @AUTO,X. But instead
of terminating, the refresh forces AUTO to exit MAIN/SKEL and then
@ADD TPF$.AUTOECL (which will re-copy all elements to TPF$ and
re-invoke MAIN/SKEL).
- Bug Fixes:
- Fix bug whereby these WHEN SGS clauses were incorrectly evaluated
when number of digits in the operands differed:
MONTH_WORK_DAY>n
MONTH_BANK_DAY>n
MONTH_BATCH_DAY>n
MONTH_ONLINE_DAY>n
MONTH_WORK_DAY<n
MONTH_BANK_DAY<n
MONTH_BATCH_DAY<n
MONTH_ONLINE_DAY<n
This bug was never reported (found during code inspection).
- Fix bug whereby production AUTO files could be initialized by
non-production version of AUTO. This bug was never reported
(found during AUTO 7 testing).
- Fix bug whereby assertions performed by the ASSERT keyword on
the TASK SGS had an incorrect time of assertion recorded in
AUTO's fact file. The time that MAIN/SKEL started was used
rather than the actual time of the assertion. This time
serves as documentation only; it does not affect AUTO's
processing. The date was correct. Assertions made with
@ASSERT were correct.
- Fix bug in the handling of the SHOWEXPIRY configuration SGS.
AUTO should show task expiry info on the console iff
"[SHOWEXPIRY,1,1,1,UCSTR$] = YES." But it was showing it iff
[SHOWEXPIRY] existed.
- Minor Enhancements:
- A new edit displays a warning if a WHEN SGS specifies both no
expiry time and an expiry replacement task: It warns that the
replacement task can never be executed.
- Upgrade GENERIC processor from version 6.0 to 6.1.
- Default CALENDAR now contains 1999, 2000 and 2001. (Previous
version had 1998, 1999 and 2000.)
*******************************************************************************
Release 7.1 Nov 2002 SJM
*******************************************************************************
- New features:
- New 'NOW_FACT' and 'NOW_FILE' keywords on the WHEN SGS cause
immediate rejection of the clause if false. Unlike the similar
'FACT' and 'FILE' keywords, there will be no waiting (i.e.,
prerequisite will not be created). Thanks to Andrew Williams for
the suggestion and initial development.
- New optional configuration SGS (KEYIN_OK) supplies list of
acceptable keyins for AMS action on TASK SGSs. If no KEYIN_OK
SGSs are supplied, then all keyins are allowed. If one or more
KEYIN_OK SGSs are supplied, then only those keyins are allowed.
Note that a 'keyin' is defined here as the string of characters
which precedes the first space or comma (e.g., 'ST JOB1' and
'ST,/U JOB1' are both ST keyins). Thanks to Erich Staubringer
for the suggestion.
- Allow main task name on WHEN SGS to be null (\). This is useful
when you wish to do something only upon expiry. A warning is
issued if both task names on a WHEN SGS are null. An error is
issued if the task name on a TASK SGS is null.
- Enhance console display of expiry to show the original schedule
time (in format HH:MM or HH:MM:SS, as supplied on the WHEN SGS).
This makes it easier to determine exactly which task expired.
Site-local Smart Console scripts which trap expiry messages may
need to be modified.
- Bug Fixes:
- Fix bug whereby AUTO would encounter SSG "no find" when user does
long simulation (S and L options) and answers 'END' when asked
for the initial date.
- Fix bug whereby detailed simulation (@AUTO,SL) report #2 showed
heading "Definition of AUTO Tasks in Chronological Order". This
is corrected to "Definition of AUTO Tasks in Alphabetical Order".
Bug affected versions 5.5 to 7.0, was never reported (found
during code inspection), and was cosmetic.
- Minor Enhancements:
- Default CALENDAR now contains 2002, 2003 and 2004. (Previous
version had 1999, 2000 and 2001.)
*******************************************************************************
Release 7.1a May 2004 SJM
*******************************************************************************
- Minor Enhancements:
- @AUTO,C (build calendar) now displays date of Easter Sunday. This
is for the convenience of the AUTO administrator and does not affect
scheduling logic.
- Author contact information has been updated in documentation.
- Default CALENDAR now contains 2004, 2005 and 2006. (Previous
version had 2002, 2003 and 2004.)
*******************************************************************************
Release 8.0 Jun 2004 SJM
*******************************************************************************
- License Status:
- This version is released under the GNU General Public License
(GPL) version 2. New element LICENSE contains complete license.
- This version is OSI Certified Open Source Software.
- @AUTO,O will show brief license information.
- New required dictionary SGS (COPYRIGHT) supplies copyright notice.
- Minor Enhancements:
- SOLAR$SGS element changed to install AUTO file as WRITEABLE.
*******************************************************************************
Release 8.1 Oct 2007 SJM
*******************************************************************************
Thanks to Erich Staubringer for bug reports, feature suggestions and
testing.
- License Status:
- This version is released under the GNU General Public License
(GPL) version 2.
- New Features:
- New optional field #4 of TASK SGS allows specification of a delay
in seconds before the action is taken. Delays are cumulative within
a TASK set, that is, each delay is since the previous TASK SGS was
acted upon. A new optional configuration parameter, MAXDELAY,
controls the maximum allowable delay.
- Three new scheduling controls are added for the multi-host feature:
MULTI_HOST={YES|NO}, MULTI_HOST_STAT={UP|DN|RV|NC} and
MULTI_HOST_ID=<hostid>. These can also use the '~' (not equals)
operator. A new optional, multiply-occurring configuration
parameter, HOST, controls the names of the hosts that can be
specified on MULTI_HOST_ID.
- Bug Fixes:
- @AUTO,R (request for refresh) and @AUTO,X (request for exit) did
not take into account whether AUTO was active or whether such a
request has already been made. This could lead to AUTO background
run starting and immediately terminating or refreshing due to
@AUTO,R or @AUTO,X that was done while AUTO was down. @AUTO,R
and @AUTO,X are no longer allowed if one of these is already in
progress or if AUTO background run is not running.
- @AUTO with various options could generate @qual*file(cycle).SSG call
with absolute cycle number of SSG absolute file. If SSG was installed
during the very short time between generation of this ECL and its
execution, the execution of the ECL could fail because the given
absolute cycle does not now exist. This call will no longer specify
the absolute cycle number.
- So that it does not remain assigned to the background run, AUTO @FREEs
the file from which SSG was invoked. However, at some sites this will
be SYS$*LIB$ and it is never desirable to @FREE this file. So AUTO
now checks to ensure that SSG was not invoked from SYS$*LIB$ before
@FREEing.
- Upon start-up or refresh, AUTO would incorrectly remove null tasks
(i.e., tasks of form "WHEN <time> \") from the prerequisite file.
This is because it checked that all tasks in the prereq file are
still included in its schedule, which might have changed. But it
should not check that null tasks exist because, by definition, they
will not.
- Upon start-up or refresh, AUTO did not check to ensure that expiry
tasks stored in the prerequisite file still exist in the schedule.
This could cause a fatal error later if the task expired. The fix
is to check for this condition upon start-up or refresh, and to
remove the prereq and display a console message if it occurs.
- On WHEN SGS clauses that use 'FACT=' or 'FILE=', AUTO could try
to *CREATE an SGS that exceeds SSG's 133 character maximum. This
could happen if sum of the lengths of task name, expiry task name
and right-hand side of 'FACT=' or 'FILE=' (i.e., subject/predicate
or file name) exceed 50 characters. Rather than erring at
run-time, an edit is added to consider this to be a syntax error.
Removing this restriction would require some re-design.
- AUTO would err at run-time if text in field #3 of TASK SGSs had a
single-quote character. This is now caught at edit time and an
error message issued.
- Minor Enhancements:
- Default CALENDAR now contains 2007, 2008 and 2009. (Previous
version had 2004, 2005 and 2006.)
*******************************************************************************
Release 8.2 Nov 2009 SJM
*******************************************************************************
Thanks to Erich Staubringer for feature suggestions and testing.
- License Status:
- This version is released under the GNU General Public License
(GPL) version 2.
- New Features:
- On TASK SGS, STRT function has new optional subfields, which may
be specified in any combination:
- Subfield 2 specifies how many times to try @START if error 2
(file access denied) occurs.
- Subfield 3 specifies how many seconds to wait between tries.
- Subfield 4 specifies whether to show warning message on the
console if there are more tries remaining. (An error message
will always be shown when @START fails and that failure is
final.)
- New optional configuration parameters STARTMAX, STARTWAIT and
STARTWARN provide site defaults that are used if the STRT function
does not specify these values.
- Bug Fixes:
- Fixed a minor bug whereby in simulation mode display of the @START
command sometimes lacked a space after '@START'.
- Minor Enhancements:
- New COPYRIGHT element contains copyright information. Most other
elements have their previous copyright notice removed and now
instead refer to the COPYRIGHT element.
- Default CALENDAR now contains 2009, 2010 and 2011. (Previous
version had 2007, 2008 and 2009.)
*******************************************************************************
Release 8.3 Dec 2010 SJM
*******************************************************************************
- License Status:
- This version is released under the GNU General Public License
(GPL) version 2.
- New Feature:
- @ASSERT has new Y and Z options, which are effective if and only
if the R option is set, and are mutually exclusive:
- The Y specifies that the predicate asserted will be FIN-T2-nnnn
(where nnnn is the current value of condition word T2 as four
octal numbers).
- The Z specifies that the predicate asserted will be FIN-T3-nnnn
(where nnnn is the current value of condition word T2 as four
octal numbers).
For example, if original run-id is STEVEM and it has condition
code T2 = zero and condition code T3 = 1:
@ASSERT,R asserts STEVEM/FIN
@ASSERT,RY asserts STEVEM/FIN-T2-0000
@ASSERT,RZ asserts STEVEM/FIN-T3-0001
- Bug Fixes:
- None
- Minor Enhancements:
- AUTO now checks the built-in variable ERRCNT$ once per sleep/wake
cycle. This will catch serious skeleton errors that SSG, in its
wisdom, does not consider to be fatal. Previously, AUTO checked
ERRCNT$ only before MAIN/SKEL terminated; this check remains.
- 'Warning: TASK SGS #<n> "<taskname>" is never scheduled' message
now goes to the console in batch mode. This makes it consistent
with other warning messages.
- The format of the messages produced by @ASSERT, @DENY, and the
ASSERT and DENY action types has changed. Messages begin with
current date and time, which makes them more useful when they
are in AUTO background run's print file.
- Default CALENDAR now contains 2010, 2011 and 2012. (Previous
version had 2009, 2010 and 2011.)
*******************************************************************************
Release 9.0 Feb 2014 SJM
*******************************************************************************
Thanks to Erich Staubringer for feature suggestions and testing.
- License Status:
- This version is released under the GNU General Public License
(GPL) version 2.
- New Features:
- AUTO now keeps basic operational counts of how many tasks and
subtasks it performs, how many tasks expire (and how many of these
are replaced), and how many error and warning messages it issues.
AUTO will show these counters on the console in response to the
II grunid STATUS keyin. AUTO will display these counters on the
printer at the top of each breakpoint part, before processing
II grunid RESET keyin, and whenever MAIN/SKEL exits (i.e.,
refreshes or terminates). Alas, these counters are NOT
remembered across MAIN/SKEL invocations. New optional config
parameter COUNTWIDTH describes the width of the counter field
when shown on the console or printer; this width includes a comma
every 3 digits.
- If SSG 24R2 or higher is used to run AUTO and new optional
configuration parameter IIKEYIN is set to YES ("IIKEYIN YES"),
then AUTO will accept these II console keyins (except when in
simulation mode):
- II grunid HALT (same functionality as @AUTO,X)
- II grunid TERM (synonym for II grunid HALT)
- II grunid REFR (same functionality as @AUTO,R)
- II grunid BRKPT (breakpoints print and prints counters)
- II grunid RESET (prints and then resets counters)
- II grunid STAT (shows config highlights and counters--short)
- II grunid STATUS (shows config highlights and counters--long)
- II grunid HELP (shows available II keyins)
AUTO checks for II keyins each time it awakes. So it can take
up to SLEEPTIME seconds for it to receive an II keyin. SSG
will not allow another II keyin for a skeleton until the previous
one is processed. Oh, how I wish Unisys had used ER KEYIN$.
- Bug Fixes:
- None
- Minor Enhancements:
- Default CALENDAR now contains 2014, 2015 and 2016. (Previous
version had 2010, 2011 and 2012.)
*******************************************************************************
Release 9.1 Mar 2016 SJM
*******************************************************************************
- License Status:
- This version is released under the MIT License. This is the first
release under this license. See the LICENSE element for details.
- New Features:
- A new configuration parameter, MCN, allows specification of a unique
Manufacturing Control Number. If this is omitted (as in the default
config), then AUTO will get the MCN from the Exec. Getting MCN from
Exec requires SSG 24R2 or higher. If MCN config parameter is not
supplied and AUTO cannot get MCN from Exec, then it will use "NONE".
- The WHEN statement is enhanced to allow specification of the MCN
(via MCN=xxxxxxxx). This feature provides another method for a
single schedule to support different scheduling needs for multiple
systems.
- Bug Fixes:
- None
- Minor Enhancements:
- ID line for processor calls is changed to show the time zone iff
it is available on the DATIME$ SGS.
- Documentation is changed to note that AUTO works in local time,
not UTC.
- Default CALENDAR now contains 2016, 2017 and 2018. (Previous
version had 2014, 2015 and 2016.)
*******************************************************************************
Release 9.2 Aug 2020 SJM
*******************************************************************************
- License Status:
- This version is released under the MIT License. See the LICENSE
element for details.
- New Features:
- A new configuration parameter, UTC, determines whether AUTO schedules
in UTC or local time. If this is omitted (as in the default config),
then scheduling will be in local time. Use of this feature requires
SSG 24R3 or higher. If you change the value of this parameter, you
must intialize AUTO's control, fact and prerequisite files (that is,
start AUTO comma 7).
- A new configuration parameter, SLEEPMIN, specifies the minimum value
in seconds to which AUTO's SLEEPTIME parameter may be set. If
omitted, default is 1 (which is the minimum allowed by SSG's *WAIT).
- A new configuration parameter, SLEEPMAX, specifies the maximum value
in seconds to which AUTO's SLEEPTIME parameter may be set. If
omitted, default is 86400 (which is the maximum allowed by SSG's
*WAIT).
- A new configuration parameter, SCREENLINES, specifies how many lines
to show before solicting user to press ENTER when in non-breakpointed
demand. If this is omitted, default is 24.
- The TASK statement is enhanced to support change of number of
seconds to sleep via, for example: TASK SLEEP 60
- New "II grunid SLEEP+" and "II grunid SLEEP-" keyins allow dynamic
change of number of seconds to sleep, doubling and halving the
current value, respectively.
- Bug Fixes:
- Fix a bug whereby when computing counters for a day, AUTO did not
go back far enough in the calendar. It only went back 33 days,
but this could compute incorrect values for SINCE_ counters if a
particular type of day (work, bank, batch, online) has more than
33 consecutive days with the same value (YES or NO). The fix is
to go back through the entire calendar.
- Minor Enhancements:
- In the simulator (@AUTO,S), after showing info for yesterday,
today and tomorrow, allow user to type NEXT or PREV to move
to yesterday or tomorrow, respectively, without viewing the
the tasks for today.
- When showing facts for @AUTO,Q, the format is changed so that
a 12-character user-id will not use the 80th character of the
display.
- Show CPU (User IP) consumption of AUTO initialization and
configuration/calendar/schedule edit.
- Default CALENDAR now contains 2020, 2021 and 2022. (Previous
version had 2016, 2017 and 2018.)
*******************************************************************************
Release 9.3 Apr 2022 SJM
*******************************************************************************
- License Status:
- This version is released under the MIT License. See the LICENSE
element for details.
- New Features:
- None.
- Bug Fixes:
- Iff one or more "TASK SLEEP <n>" SGSs exist, on startup or refresh
AUTO would use value on the last such SGS, rather than the
configured SLEEPTIME value.
- @AUTO,R or @AUTO,X caused AUTO to show a misleading message saying
that AUTO background run would refresh/exit within (configured)
SLEEPTIME seconds. This would be wrong if sleep time had been
changed dynamically. Fix is to say "when it next wakes up" which
is vague but never wrong.
- Fix typos in comments at the top of GET-EXT-DATE.
- Minor Enhancements:
- Default CALENDAR now contains 2022, 2023 and 2024. (Previous
version had 2020, 2021 and 2022.)
*******************************************************************************
Release 9.4 Feb 2023 SJM
*******************************************************************************
- License Status:
- This version is released under the MIT License. See the LICENSE
element for details.
- New Features:
- New II keyins "II AUTO SLPMIN", "II AUTO SLPMAX" and "II AUTO SLPDEF"
change AUTO's sleep time to minimum, maximum and configured default
seconds, respectively.
- "II AUTO STATUS" keyin now shows time zone.
- Bug Fixes:
- None.
- Minor Enhancements:
- Default CALENDAR now contains 2023, 2024 and 2025. (Previous
version had 2022, 2023 and 2024.)
*******************************************************************************
Release 9.5 Aug 2023 SJM
*******************************************************************************
- License Status:
- This version is released under the MIT License. See the LICENSE
element for details.
- New Features:
- None.
- Bug Fixes:
- Fix bug whereby PROB= clause was ignored unless it was the final
scheduling clause on the WHEN card.
- Fix bug in GET_UNIQUE_TIMESTAMP whereby there is a very small
window when midnight could be crossed between getting the date
and getting the time.
- Minor Enhancements:
- Add a display in PRINT$ when a task is skipped because of PROB=.
- Simulator display now right-justifies the probability percentage.
- ECL now explicitly specifies TPF$ rather than relying on it being
the default.
- Processors are re-compiled to remove ER TDATE$ references.
- Documention is now in HTML. Elements are renamed:
- AUTO/HTM is renamed to USER-GUIDE/HTML.
- READ-THIS is renamed to READ-THIS/HTML.
- RELEASE/HIST is renamed to RELEASE-HIST/HTML.
*******************************************************************************
Release 9.6 Mar 2025 SJM
*******************************************************************************
- License Status:
- This version is released under the MIT License. See the LICENSE
element for details.
- Minor New Features:
- Upon initialization, show number of TASK and WHEN SGSs, and
calendar date range.
- "II auto STATUS" will show date and time of last refresh.
- Bug Fixes:
- Fix bug whereby AUTO/ADD referred to SJM*AUTONEW.AUTO/SKEL
(should have been SYS$LIB$*AUTO.AUTO/SKEL).
- Minor Enhancements:
- ASSERT/ADD, DENY/ADD, PREREQ/ADD and AUTO/ADD are changed to
remove useless and annoying copyright comments at the top.
- Default CALENDAR now contains 2025, 2026 and 2027. (Previous
version had 2023, 2024 and 2025.)