Release notes for SirPro V7.5
This document lists the changes that have been made for SirPro version S7.5. It requires Model 204 release 7.5 or higher.
Procedure Search screen (SEARCH)
Field changes
The searching capabilities have been enhanced to provide better impact analysis. The following fields has been changed or added.
Procedure name
Enter a procedure name or search mask. If a procedure name is entered and any matching procedures are found, a procedure list is presented.
Wildcard strings are valid in this field, using "*" as a substitution character for any number of characters in the procedure name. For example: *XYZ will find all procedure names ending in the string XYZ, and XYZ* will find all procedure names beginning with XYZ.
A space indicates "AND", so entering "PU END" would return only those procedures whose names contain both the character sets "PU" and "ND", so, PUNP-END or PUMPKIN.SPENDER.
The "or" bar indicates "OR", so "PU|ND" would find any procedures containing the strings "PU" or "ND". This might include "PUMP", "COLORPURPLE" and "NINTENDO".
Wildcards can be used in conjuntion with the AND/OR selections, so "PUPR*|SCPR*|MOPR*" would find all procedures starting with any of the above strings.
The routine currently has a bias in favor of "OR" selections, so a selection like "PUPR*|SCPR AND" won't work. It will return all procedures beginning with PUPR, then will attempt to add to the list any procedure with the characters "SCPR AND", which will find nothing, because of the embedded space. So do not combine AND and OR selections.
Search strings
The maximum length has bene increased to nn.
# of context lines
Numeric indicator (0 through 9) of number of lines of code to display before and after the line containing the search string.
# occurrences to find
The number (from 1 to 999) that specifies the number of occurrences within a procedure that will be displayed.
Hide SEQa/BASEs
SirLib users will see a prompt and entry area that allows the display or hiding of SEQ. and BASE. procedures, which are used in code management functions but are not intended to be edited directly. Enter "Y" to prevent this procedures from being displayed, and "N" to display them.
Ignore Comment Lines
If set to Y it will ignore any Soul formatted comment lines. If set to N all found lines will be included.
New Function Keys
PF5 - Toggle between case sensitive/insensitive
In Case Sensitive mode, a search for "html" would only find the lower-case version of that string. In Case-Insensitive mode the same search would find procedures containing either "html" or "HTML".
PF6- Create Proc
Other features
Longer proc names
Better subsystem transfer
PL subsystem
Save profile for each change
Procedure List screen (PL)
Field changes
Command Line
Most of the functions able to be performed on the Search screen may now be done as commands in the Command Line field. In addition commands can be strung together using the semicolon as a delimiter. For example to switch to a new field and display those procedures that have HELP in their name can be done as: FL SIRIUS;A HELP
Most commands have a full name and an abbreviation.
BYTES/PAGES Switch between showing the number of bytes a procedure contains or the number of table D pages the procedure holds. Defaults to BYTES.
DISPLAY [x] Changes the value of '# of context lines'. CODE [x] With these commands you can alter the number of lines of SHOW [x] code to be displayed beginning with the first of any found CL [x] search string. Obviously, if no search string was specified on the previous screen, this command has no effect. Valid values for 'x' are 0 through 9. If there is no 'x' specified,it will give a default value of 0 to the '# of context lines'.
HAS/HA/H xxx Changes the selection to procedures containing the specified string 'xxx'. 'HAS $GETG' restricts procedures to those containing $GETG. HAS does not support wildcards, so a search for 'locate*' will look for the string 'locate*'.
PROCS xxx Changes the procedure name filter to 'xxx'. Wildcarding A xxxx is assumed and fully supported, so for instance, the command 'PROCS CADDIE' will find all procedures with the string 'CADDIE' in its name. If specific wildcard characters are used, the search is done for the specified pattern, so 'PROCS I.*' restricts the display to procedures beginning with 'I.' AND xxx Changes the procedure name filter bying combining 'xxx' with the existing value with AND logic, applying 'distributive law' if necessary. For instance, if the current value of the procedure name filter is 'A|B', an 'AND C' command will change it to 'A C|B C' by applying 'distributive law': (A|B) C -> A C|B C. +AND xxx Changes the procedure name filter bying combining 'xxx' with the existing value with AND logic, but WITHOUT applying 'distributive law'. It just simply appends 'xxx' to the existing procedure name filter. For instance, if the current value of the procedure name filter is 'A|B', an 'AND C' command will change it to 'A|B C'. OR xxx Changes the procedure name filter bying combining 'xxx' with the existing value with OR logic. For instance, if the current value of the procedure name filter is 'A|B', an 'OR C' command will change it to 'A|B|C'. FILE/FL xxx Changes the file context using the existing privileges to the file. FLP Changes the file context with prompt for password. GROUP/GP xxx Changes the group context using the existing privileges to the group. GPP Changes the group context with prompt for password. PASSWORD/PWD Reopens the current file or group with prompt for password. It implies a switch of privileges associated with the password to the current file or group. OCC [xxx] Changes the value of '# of occurrences to find'. The valid value for the optional 'xxx' is either a number between 1 and 999 or 'ALL'. If there is no 'xxx' specified, it will give a default value of 1 to the '# of occurrences to find'. HS [x] Changes the value of 'Hide SEQs/BASEs'. The valid value for the optional 'x' is 'Y' or 'N'. If there is no 'x' specified, it will give a default value of 'Y' to the 'Hide SEQs/BASEs'. IC [x] Changes the value of 'Ignore Comment lines'. The valid value for the optional 'x' is 'Y' or 'N'. If there is no 'x' specified, it will give a default value of 'Y' to the 'Igonre Comment lines'. CREATEPROC/ Creates a new procedure named 'xxx' in the current file/group CREATE/ context. If there is no 'xxx' specified, an unnamed CP [xxx] procedure will be created.
LASTID/ Changes the value of 'Last Updater ID'. LID [xxx] The valid value for 'xxx' is a string not longer than 10, or blank. EXIT/QUIT/ Return to previous screen without processing any prefix END commands.
Selection field
The following procedure selection options are valid:
B (Browse): SirPro browse mode reads the procedure into a Sirius LIST data structure, which allows the user to scroll forward and backward and right and left within the procedure. This command does not invoke an edit session.
C (Copy): Copies the procedure to another procedure. Each procedure passes through a copy verfication screen that allows the user to specify the destination file and destination procedure name, and allows the user to edit the new procedure before it is saved. The user may also elect to keep the old date information in the new procedure.
D (Delete): All procedures selected for deletion are displayed on a verification screen. If PF12 is pressed, all selected procedures are deleted at once.
I (Include): No SirPro error checking is done for INCLUDE.
M (Move): Same as copy command above, except the original procedure is deleted upon successful completion of the copy.
P (Print): All procedures selected for printing are displayed on a verification screen. If PF12 is pressed, a print destination screen is presented allowing the user to route the print where desired.
R (Rename): A screen is presented which allows the user to specify the new procedure name.
S or E (Edit): Invokes an edit session using the Model204 editor on the selected procedure(s). PF11 controls whether the edit is performed in *UPPER or *LOWER mode. If multiple edit sessions are requested, the next session is invoked immediately on exiting the current edit session.
V (Variable analysis): This command expands the selected procedure (that is, it includes all INCLUDE code), and then builds a list of %variables that are not declared. This option is relatively slow for procedures over 5000 lines long. All files that contain INCLUDED code for the selected procedure should be open prior to the V command being selected. If any INCLUDED code cannot be accessed by SIRPRO, a warning message is posted showing the procedure and file name.
# (Expand): Invokes the SirPro Browse function but expands all INCLUDE statements to present a view of the fully expanded user language.
SirFact users have access to a wealth of formatted debugging information stored in binary SirFact dump procedures. The "f" command placed in front of a properly formatted file will invoke the FACT apsy.
F (SirFact): Transfer to the FACT apsy for formatted dump analysis of the SirFact output (only valid for sites that have a copy of SirFact).
The following selection options generate "managed updates" for input to the Sirius Configuration and Change Control System (SirLib). If SirLib is not installed then these commands are not valid. Further information on managed updates and the Configuration Management system is in the SirLib User's Guide.
Q (Sequence): Generates a copy and a sequenced (SEQ.) copy of the procedure. A panel is presented which allows specificaiton of the destination file(s), destination procedure name(s) and the name of the file from which existing changes are to be pre-applied.
X (Xcompare): Generate a change deck for the procedure. A panel is presented allowing the user to specify the location and name of the sequenced copy for the XCOMPARE, and the destination of the change deck output, as well as the logical update name the change deck applies to.
Xcompare can also be used, with the "Project" identifier commented out, to create a temporary change deck that can then be edited and applied back to the working procedure.
N (New): Same as "Xcompare", but used when the change deck is for a new procedure (that is, when there is no sequenced copy for Xcompare to work against).
K (Klobber): Same as "Xcompare", but used to create a change deck that does a logical delete of the procedure (that is, a managed update delete--one that can be "undeleted" by SirLib).
Note that you should NOT check out the procedure before executing the "K" command against it. You must run the "K" prefix command against the procedure from the original production copy of the procedure file.
Z (ReSequence): This special-purpose command generates a change deck for the selected procedure which rebuilds the sequence numbers for all working versions of the procedure generated after the "Z" execution. This command need only be used after many change decks have effected the same section of code in the target procedure. "Z" is rarely executed and may be protected in SIRLIB.
U (Undo): May only be executed against a change deck. This command performes the same operation as a Q, resulting in a "working" procedure and a sequenced copy of that procedure being created in the user's selected development procfile. However, the U command specifically includes the change deck against which it is executed in the code for the working procedure, but NOT in the code from the sequenced copy. In other words, it recreates the state of the development procedures that created the change deck against which the U command is executed.
Typically, the U command is used to recreate the state of development when the programmer has accidentally deleted the procedures she was working on, either manually, or via the "Clean-up" switch on the Xcompare screen.
The U command is a special-use feature, and there are a number of ways in which it will fail to work -- most notably, if the selected change deck is somewhere in the middle of a series of changes and, by excluding it from procedure creation, some code dependency is missing. However, for its primary function -- recovering from a mistake that was made very recently, typically as the most recent change to a procedure, it should always work.
Y This change-control prefix command provides a special check-out ability in which the user can "refresh" their local working copy of a procedure with changes that have been checked in by other programmers since the working copy was originally taken from the source procedure file. "Y" is applied against the working procedure, a screen is presented, and the result is a new working procedure with all updates applied AND the user's current changes still in place, and a sequenced copy that has all updates applied, but the user's current changes not in place.
In other words, the "Y" command is very much like a "Q" command, but it is done while changes are in progress, and it slips into place other changes that have occurred since the original procedure check-out.