-
Note that on the command-line
nypatchy
the order of the ASM output
files has been rationalized and differs from the order of ypatchy
:
ypatchy pam fort cradle print as data fort:2 as:2 data:2 cc cc:2
nypatchy pam fort cradle print cc as data fort:2 cc:2 as:2 data:2
(p= 1 2 3 4 5 6 7 8 9 10 11)
-
On the IBM with VM/CMS calling the programs into action is now
just like on UNIX or VAX, including the dialogue feature, see sect. 8.
-
File names are now case-sensitive; environment variables contained
in file names are now specified Unix-style as
${name}
or maybe
$name
, but the curly brackets are required on non-Unix machines.
The defaults for "cradle" and "print" are now standard input and output.
To get details, type HELP
in response to the prompt from any of
the programs.
-
File names may be given in Unix-style on the VAX; on the IBM file
names are given either as
fname.ftype.fmode
or as
fmode/fname.ftype
.
-
Status return codes from the programs are:
UNIX VAX IBM
$status = 0 $STATUS = 1 rc = 0 normal
1 9 1 no error, but void operation
2 4 8 error
For Nypatchy the status must be tested, it stops delivering ASM output
if an error occurs.
-
Pam files are now plain text files; the compact binary format of
version 4 is no longer handled.
-
The specification for the control-line
+ASM
has changed substantially,
see sect. 3 and sect. 7.
-
Control-line
+PAM
has changed a bit, see sect. 3.
-
With the new control-line
"+MORE .file-name"
given in the blank deck
of the cradle, the cradle can be continued with material from another file.
-
For any control-line given in the cradle substitution of an
environment variable can be requested by giving the name of the
variable enclosed by curly brackets and preceded with the
$
sign,
for example:
+USE, *PATCHY, ${PLINAME}.
will call for replacement of the string ${PLINAME}
by the contents of
the environment variable PLINAME
before the line is cracked for syntax.
Thus one could have a shell commmand like
setenv PLINAME "CONVEX, 64BIT"
Note that this cannot be used for c/lines on Pam files, nor on
delayed control-lines.
-
"Delayed control-lines" is the main new feature of version 5.
It is now possible to drive by means of a
+ADD
or +REPLACE
Patchy control lines to a target, to be interpreted when the target deck
is processed.
For example:
+ADD, *WYLSUN,, 7.
-USE, WINDOWS.
+REPL, WCDE,, 10-14.
-KEEP, CONSTLD, IF=LEAD11.
PARAMETER (NCHXBL=0, IQTYPE=6, NQL=512)
-KEEP, CONSTLD, IF=LEAD12.
PARAMETER (NCHXBL=1, IQTYPE=6, NQL=512)
Delayed c/ls are marked by "-"
in column 1,
to be converted to "+"
.
-
Running in update mode has now to be signalled by the new control
line
+UPDATE
in the blank deck of the cradle, see sect. 4;
sect. 9 shows an example.
-
The title of a Pam file, that is any material before the first
line
+PATCH,...
, is now handled slightly differently: it is considered
as a patch whose name is derived from the Pam-file identifier;
see the description of +PAM
in sect. 3.
-
The old line-length limit of 80 characters has been increased to 512.
Listings are "nice" for lines up to 80 characters, and "ugly" for longer
lines. Control-lines are no longer cut after column 72.
-
The old limit of 8 characters maximum for patch/deck/sequence names has
been increased to 32. Listings are "nice" for names of up to 12 characters.
For back-compatible processing of Pam files one can limit the number of
significant characters in names to 8 with the new c/l
+NAMES,8.
given in the blank deck of the cradle.
-
For some control-lines the syntax checking is now more rigorous.
In particular: of the values given to the "T=" parameter only the first
letter is significant with version 4; with version 5 subsequent characters
are also significant, if given. For example:
+OPTION, COMPACT, OFF.
is fine, but
+OPTION, COMPACT, ON.
is now failed. Sect. 3 gives details per command.
-
With version 4 the truth-value for an IF= parameter is evaluated at
the moment when the control-line is read. With version 5 this evaluation
occurs only when the c/l is used; thus for example:
+ADD, WYLBUR, XSET_RAN, 7.
+CDE, WWC, IF=WINDOWS.
given in the cradle will now work in the way one would like it to.
-
There are no more "lost activations" with version 5, which has the
complete deck in memory before it is processed (cf Patchy Ref.Man. 4.22).
-
Version 4 tried to be too subtle in deriving processing mode
selection from patches quoted in IF= parameters. It is now simply
the logical OR of the attached EXE bits of all patches quoted.
-
The processing-mode filter for c/l
+DIVERT
has been taken away;
thus one can specify on the Pam file which routines are to be compiled
without optimisation under which circumstances, without one having
to activate this from the cradle (cf Patchy Reference Manual 4.05).
-
The new Patchy initialises the patch-name
PY_VS5
to be "used".
This can be useful when one wants to make a compatible Pam file or
cradle usable with version 4 and 5.
-
For the maintenance of complete programs or packages the philosophy of the
use of Patchy has changed substantially: Using the combination of the new
Nypatchy and the new Nyshell one can automatically re-compile only those
routines whose source code has changed since the last successful compilation.
To achieve this, Nypatchy has been programmed to deliver, on demand, its
ASM output split onto individual files, one for each deck. If the ASM output
from the previous run still exists, Nypatchy can be instructed to read this
back into memory and to compare it to the expected new output. If the two
are identical, the file is not re-written and thus its time-stamp is not
changed. Nyshell receives from Nypatchy a list of all the routines in the
package and it creates a shell-script to compile all the routines which
need to be re-compiled. For details see sect. 7 and sect. 10.