From: UDAA055@ELM.CC.KCL.AC.UK ("Andy, Systems Manager")
Newsgroups: comp.os.vms
Subject: Announcing VMS_SHARE version 8.1
Date: 11 Sep 92 15:48:00 GMT
Distribution: world
Organization: The Internet

Well, the response to last weeks announcement of VMS_SHARE version 8.0 was
pretty terrific. Thanks to all those who send helpful comments. I am moved to
bring forward the release of version 8.1, which includes fixes to all bugs
notified so far (only two!) and a few new things.  The appropriate portion of
the release notes for 8.1 is appended below detailing these.

To get hold of a copy of the new version, please send a mail request to the
file server    VMSSERV @ OAK.CC.KCL.AC.UK  (on JANET) or to
VMSSERV%OAK.CC.KCL.AC.UK @ NSFNET-RELAY.AC.Uk (Internet), containing the
following line in the body of the message:

   SEND VMS_SHARE.PACKAGE

You will receive the package in 17 parts. If you do not receive anything
within a couple of days, please let me know.

Please continue sending suggestions and bug reports to me.

Regards,

Andy Harper
Kings College London


        			V M S _ S H A R E

    			   R E L E A S E   N  O T E S


    								Version 8.1
    								Sep 1992


1. INTRODUCTION

Version 8.1 of VMS_SHARE is a major release which fixes a number of bugs and
makes a number of new features available.




2. NEW FEATURES

2.1 Date Based File Selection

The selection of files for packaging can now be modified on the basis of the
access dates associated with each file. The usual VMS qualifiers for this are
supported:

  /SINCE[=date]		Select files accessed since a specific date
  /BEFORE[=date]	Select files accessed before a specific date
  /BACKUP		Use the last backup date as the basis of date selection
  /CREATED		Use the create date as the basis of date selection
  /EXPIRED		Use the expiration date as the basis of date selection
  /MODIFIED		Use the last modified date as the basis of date selection

All sensible combinations of these are recognized. /SINCE and /BEFORE together
specify a range of dates; use of /BACKUP, /CREATED, /EXPIRED and /MODIFIED
together is allowed, but only the last one specified has any effect (the
default is /MODIFIED if none are given).

For example:

  $ VMS_SHARE *.* PACKAGE /CREATED /SINCE=1-JAN-1992 /BEFORE=TODAY
	Selects all files created this year


There is one deviation from the usual behaviour of these qualifiers. If any
part of the time field is omitted it takes on the CURRENT time values rather
than the values at midnight, so that:

         /SINCE=TODAY  and /SINCE=1-AUG-1992               are NOT equivalent
but      /SINCE=TODAY  and /SINCE=1-AUG-1992:00:00:00.00   are equivalent.

Note also the use of a : to separate the date and time fields. Spaces are not
allowed and quoted times are not recognized correctly.

A missing date/time spec (I.E. just /SINCE or just /BEFORE) defaults, as usual,
to "TODAY".



2.2 Confirmation of Selected Files

Users can now elect to confirm each file selected via the new /CONFIRM
qualifier. This works similarly to /CONFIRM on the DELETE, PURGE, COPY commands
etc. A Y response selects the file, a N response does not. The default response
is N.

Use of this option in any non-interactive mode results in a warning and
/CONFIRM is ignored.

By default, confirmation is turned off. A new logical name SHARE_CONFIRM may be
defined with a true or false value to override the default. The /[NO]CONFIRM
qualifier on the command line overrides the setting of the logical name.



2.3 Debugging

The debugging facility at level 1 now includes additional messages detailing
the size of a file buffer before and after encoding. This provides two useful
functions. First, it allows a comparison of the normal encoding algorithm with
the run-length encoding compression algorithm; second, it gives a useful
progress monitoring function when packaging a large collection of files.

The messages produced are similar to these:

       Begin buffer encoding, n lines, b bytes

and    End   buffer encoding, n lines, b bytes, change = x%

The change field is given as a percentage increase or decrease in the size of
the buffer. Usually, it will increase because of the encoding applied to
non-printable characters. Use of run-length compression would normally show a
smaller increase.

Debugging now requires EITHER SYSPRV OR SETPRV to be in the user's AUTHORIZED
privileges. Previously only SYSPRV was recognized and had to be in the user's
CURRENT privileges. This means that users can now select debugging without
needing to specifically turn on privileges.


2.4 New SHARE_UNPACK_TEMP Logical

The new logical name SHARE_UNPACK_TEMP can be used to override the default
choice of temporary filename used when unpacking a share file.  Previously, the
unpacking code used the same name "SHARE_TEMP" as that used by VMS_SHARE itself
when encoding.  If not specified, the default name is:
SYS$SCRATCH:SHARE_UNPACK_TEMP.pid



2.5 Small Part Sizes

Under certain conditions (with small part sizes), it was possible for the
procedure to generate a buffer that was not allowed to be split but was too big
for the part buffer.  A suitable error message was issued and the procedure
aborted.

The message produced now includes additional information stating the minimum
part size required to encode the particular non-splittable buffer.


3. BUG FIXES

A number of minor bugs have been fixed.


3.1 Checksums on Files with Long Records

The long lines support introduced in version 8.0 showed up a problem with the
undocumented DCL command - CHECKSUM.  It appears that this will not handle
files with long records (the exact length seems unclear but it appears to be
about 2048 bytes).  This means that VMS_SHARE is unable to provide checksum
verification for such files at present.

Previously, the code would provide an obscure error message at the point where
the checksum was calculated, fail to produce a new checksum, and use a
previously calculated checksum as the value passed in the share file; this had
the effect of giving errors on a subsequent unpacking operation.

Now, the code attempts to detect when the checksum cannot be determined and
gives messages at both the packing and unpacking stages, warning that
verification of the file cannot be made.



3.2  Creation of the Package Index File

Due to a coding error, the package index file was always being created. This
has been fixed and the file is now created only when requested by the
/PACKAGE_INDEX qualifier or the SHARE_PACKAGE_INDEX logical name.



3.3 Deletion of Temporary Files Following Unpacking

Due to a coding error within the generated share file, the temporary files so
created were not being correctly deleted if the checksum validation check was
successfully passed. They were deleted on a checksum failure.  This problem has
now been fixed by ensuring that the deletion of scratch files code takes place
irrespective of any checksum status.



3.4 Erroneous Note in Release-Notes for Version 8.0

Section 3.5 of the previous release notes (Long DCL Lines) erroneously refers
to a problem about splitting parts across DCL continuation lines. In fact, this
problem did not exist in the released version and refers only to a problem that
existed during the development stage. Please ignore this problem description.

A number of other minor corrections were made to these release notes, and the
corrected version may be found at the end of these release notes.



3.5 MFD Check

In the DCL routine `Check_out_File', a check is made to see if the current
directory is the MFD [000000]. This check was incorrectly coded and could
affect operation if the current directory was indeed [000000]. This check has
now been corrected and should now correctly generate the subdirectory paths.



3.6 Non Negatable Qualifiers

Error messages are now issued for qualifiers that may not be negated. For
example:  /NOPART_SIZE.


3.7 Failures to Create Temporary Files

More error checks have been introduced during the creation and writing of
various intermediate files.



4. CHANGES IN OPERATION

The following changes in operation have occurred.


4.1 Debug Facility

The /DEBUG facility has been modified.

The maximum debug level is now 4 rather than 3. Most debug messages have been
increased to a higher level and new ones inserted at level 1 to show the BEFORE
and AFTER state of the file buffer (see paragraph above under new features).
The use of /DEBUG=1 now provides a simple progress check on the state of the
packing, listing each file as it is read in, each file buffer before and after
encoding, and each part as it is written out.


4.2 ShareFile Unpack Code

The TPU code created in the share file to unpack each file has been modified to
be more modular. Some coding reductions have been introduced to slightly
increase the unpacking speed.



5. DOCUMENTATION CHANGES

Documentation has been updated to reflect the new date based selection, the
confirmation qualifier, the new debug levels, the new SHARE_UNPACK_TEMP logical
and the checksum limitation.



6. MISCELLANEOUS NOTES

6.1  Long line support

With the addition of long line support, a check is included on the maximum
record size of a file before it is selected for packaging. The maximum record
size is obtained using the DCL lexical function f$file_attributes with the
"MRS" item code.  Under certain conditions, as yet unknown, this DCL lexical
returns a wildly inaccurate value. The only common factor so far seems to be
that the files are the output from the DOCUMENT utility; it has been seen only
on the .TXT and .PS files output by this. DIR/FULL on the file shows the
CORRECT record length.

Currently, there is nothing that VMS_SHARE can do about this. The effect is
either to reject files erroneously because the record length is seen as much
too large, or to accept files erroneously because the record length is seen as
aceptable. Use of the long lines support option will accept both files and
correctly package them.

Without long lines support, the only known workaround is to use the editor to
make a null correction to the file and force a new version to be created (EVE
works fine for this) thus rewriting the record length based on the actual data
in the file. Following this, the file can be packaged without the use of the
long lines support option.

Newsgroups: comp.os.vms