home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / os / vms / 20630 < prev    next >
Encoding:
Internet Message Format  |  1993-01-08  |  17.2 KB

  1. Path: sparky!uunet!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!agate!ucbvax!ELM.CC.KCL.AC.UK!UDAA055
  2. From: UDAA055@ELM.CC.KCL.AC.UK ("Andy, Systems Manager")
  3. Newsgroups: comp.os.vms
  4. Subject: Announcing VMS_SHARE release 8.2
  5. Message-ID: <9301090128.AA25292@ucbvax.Berkeley.EDU>
  6. Date: 8 Jan 93 19:56:00 GMT
  7. Sender: daemon@ucbvax.BERKELEY.EDU
  8. Distribution: world
  9. Organization: The Internet
  10. Lines: 456
  11.  
  12. Dear All,
  13.  
  14. VMS_SHARE 8.2 is now available. This includes a number of new features and
  15. revised documentation. The appropriate sections of the latest release notes are
  16. attached below, so you can determine if you want a copy.
  17.  
  18. I'm grateful to those of you who have suggested new things and supplied bug
  19. fixes - I believe I've incorporated all those received to date, in one form or
  20. another but please let me know if you feel I've not handled your suggestion
  21. correctly. Any new suggestions or bug reports are always welcomed, particularly
  22. as this is a major release where quite a bit of recoding has taken place.
  23.  
  24. To summarize VMS_SHARE's function for new readers, it is designed to package 
  25. a series of files into a multi-part sharefile that can be directly mailed
  26. across the network. Once received, the multiple parts can be appended to form a
  27. single file. When this file is executed as a command procedure, it recreates
  28. the original files.  The packaging is designed to circumvent the corruptions
  29. that mail systems can introduce and should allow all types of sequential file,
  30. binary or text, to be mailed successfully.
  31.  
  32. Copies may be obtained from the mail server as follows:
  33.  
  34. Send the one line instruction:
  35.  
  36.     SEND VMS_SHARE.PACKAGE
  37.  
  38. in the body of a mail message to:
  39.  
  40.     VMSSERV @ UK.AC.KCL.CC.OAk
  41.  
  42. We're on the UK JANET network; if you're on something else, here's a selection
  43. of addresses to try:
  44.  
  45.     VMSSERV%OAK.CC.KCL.AC.UK @ NSFNET-RELAY.AC.UK        From Internet
  46.     VMSSERV%OAK.CC.KCL.AC.UK @ UKACRL                From Bitnet
  47.     VMSSERV%OAK.CC.KCL.AC.UK @ UKNET-RELAY.AC.UK        From UUCP
  48.  
  49.  
  50. If all goes well, you will receive the package in 19 parts, shortly afterwards.
  51.  
  52. The mail server may take a day or so to get the files back to you, so please
  53. wait a while before retrying. If all else files, mail me directly and I'll post
  54. a copy manually.
  55.  
  56. Regards,
  57.  
  58. Andy Harper
  59. Kings College London
  60.  
  61.                     V M S _ S H A R E
  62.  
  63.                    R E L E A S E   N  O T E S
  64.  
  65.                                     Version 8.2
  66.                                     Jan 1993
  67.  
  68. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  69.  
  70. This software is copyright but may be freely distributed without charge to
  71. anyone. All copyright and ownership notices must remain intact. No warranties
  72. are offered as to the suitability of this software for any purpose; any
  73. errors arising from its use are entirely the responsibility of the user.
  74.  
  75. (C) Andy Harper,
  76.     Kings College London,
  77.     England
  78.  
  79. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  80.  
  81.  
  82. 1. INTRODUCTION
  83.  
  84. Version 8.2 of VMS_SHARE is a major release which fixes a number of bugs and
  85. makes a number of new features available.
  86.  
  87.  
  88.  
  89. 2. NEW FEATURES
  90.  
  91. 2.1  File Exclusion
  92.  
  93. The new /EXCLUDE=filelist qualifier may be used to exclude a set of files from
  94. the packaging operation.  `Filelist' is a comma separated list of full or
  95. partial file name specifications. Each field in a filename specification (Field
  96. = DIRECTORY, NAME, TYPE or VERSION part) may be omitted or may be a specific
  97. directory, name, type or version in the usual format. Fields which are omitted
  98. are assumed to match anything. Files which match the specification are excluded
  99. from the packaging operation.
  100.  
  101. Some examples:
  102.  
  103.   /EXCLUDE=.FOR        Exclude all files with a .FOR file type
  104.  
  105.   /EXCLUDE=.EXE,.OBJ    Exclude all files with a .EXE or a .OBJ file type
  106.  
  107.   /EXCLUDE=DUMMY.DAT    Exclude any file called DUMMY.DAT regardless of
  108.             directory or version
  109.  
  110.   /EXCLUDE=;1        Exclude all version 1 files
  111.  
  112.   /EXCLUDE=[X]DUMMY.DAT    Exclude all versions of the file DUMMY.DAT in directory
  113.             [X]
  114.  
  115. Wildcards are not permitted, although an `*' can be used in the usual place
  116. ONLY to specify a complete field (NOT partial fields). For example:
  117.  
  118.   /EXCLUDE=*.FOR    Is allowed and excludes all files with a type of .FOR
  119.  
  120.   /EXCLUDE=X*.FOR    Is NOT allowed as the asterisk is used to match only
  121.             part of the name field and not the whole field.
  122.  
  123.  
  124. The default is to include all files specified by the user's parameter list.
  125. However the new SHARE_EXCLUDE logical name may be defined with a list of
  126. exclusions to override this default.  Use of the /EXCLUDE qualifier overrides
  127. the setting of this logical name for any given run.
  128.  
  129. Note that this qualifier and logical name makes redundant the following logical
  130. names:
  131.  
  132.    SHARE_EXCLUDE_DIRS    To exclude directories
  133.    SHARE_EXCLUDE_FILES    To exclude specific filenames
  134.    SHARE_EXCLUDE_NAMES    To exclude files with specific names
  135.    SHARE_EXCLUDE_TYPES    To exclude specific file types
  136.  
  137. These logical names  are still recognized in addition to the SHARE_EXCLUDE
  138. logical name, but the effect is overriden if the /EXCLUDE qualifier is used.
  139. They will be removed in a future release of the software.
  140.  
  141.  
  142. 2.2 New Compression Mechanism
  143.  
  144. Previous releases have supported a simple compression mechanism based on
  145. run-length encoding, which is a simple but unsophisticated algorithm for
  146. reducing the size of the packaged files by encoding sequences of the same
  147. character into a shorter sequence. This version introduces an additional
  148. technique based on the algorithm popularly referred to as Lempel-Ziv encoding,
  149. where substrings are encoded into a form that points back to a previous
  150. occurrence of the same substring. This results in a more significant
  151. compression ratio at the expense of more CPU time to package the file.
  152.  
  153. The `official' Lempel-Ziv algorithm has been substantially modified to take
  154. into account the additional constraints of this application. As such, it is not
  155. as effective as `real' lempel-ziv but appears to do a reasonable job in the
  156. majority of files with which it has been tested. As before, selection of this
  157. compression technique may be of little benefit in some cases and is very much
  158. slower than selecting no compression; therefore it is NOT selected by default.
  159.  
  160. To allow user selection of this mechanism, the /COMPRESS qualifier (and
  161. corresponding logical name SHARE_COMPRESS) has been modified to accept a
  162. numeric parameter. The value specifies the compression mechanism to be used.
  163.  
  164. Currently:
  165.  
  166.    /COMPRESS=0        Specifies no additional compression
  167.    /COMPRESS=1        Specifies run-length encoding
  168.    /COMPRESS=2        Specifies the modified Lempel-Ziv compression
  169.  
  170. Other values are not permitted. /COMPRESS by itself is the same as /COMPRESS=1;
  171. /NOCOMPRESS is the same as /COMPRESS=0
  172.  
  173. NOTE: it is NOT intended that this form of compression should supplant that
  174. which can be obtained by external means, such as the ZIP utility, which can
  175. always be used if required. However, it has the advantage of being easy to use
  176. and not requiring the recipient to have any external decompression tools.
  177.  
  178.  
  179.  
  180. 2.3 Support for VFC files
  181.  
  182. This release introduces support for the record format VFC, and associated fixed
  183. control area.
  184.  
  185.  
  186. 2.4 Enhanced /LOG qualifier
  187.  
  188. The /LOG qualifier may, like /COMPRESS, now take a numeric parameter to specify
  189. the level of logging required - /LOG=n. Permitted values are 0, 1 and 2.
  190.  
  191. /LOG=0 specifies no logging output is to be produced. It is equivalent to
  192. /NOLOG.
  193.  
  194. /LOG=1 specifies that minimal logging should be produced, just a summary of
  195. each file as it is processed, a final summary of the number of parts
  196. generated, and a note about the package index file if one has been requested.
  197. It is equivalent to /LOG with no parameter.
  198.  
  199. /LOG=2 specifies that additional logging is to be produced over and above that
  200. of level 1. Currently, this produces a summary of the file encoding statistics
  201. before and after encoding as an aid in determining the effectiveness of the
  202. compression. Previously, this output was part of the /DEBUG facility and
  203. therefore required privileges. The corresponding debug messages have been
  204. removed and the facility is available to all users through /LOG.
  205.  
  206. Additional log messages and levels of logging may be added in future releases.
  207.  
  208.  
  209.  
  210. 2.5 Strip Directory and Version Numbers
  211.  
  212. Recent previous releases have preserved the subdirectory structure of the
  213. packaged files and the version numbers. Some older releases did not. Some users
  214. have requested an option that allows the older behaviour to be reinstated.
  215.  
  216. As a result, two new qualifiers have been added that allow the user to select
  217. whether directories and/or version numbers are retained in the sharefile.
  218.  
  219. The new qualifier /[NO]DIRECTORY selects the [no] directory structure
  220. preservation option. If preserved, then the directory structure will be
  221. recreated when the share file is unpacked. If not preserved, then all files
  222. will be created in the directory current at the time of unpacking. The logical
  223. name SHARE_DIRECTORY may be defined to specify the default, with /DIRECTORY
  224. being the default otherwise.
  225.  
  226. The new qualifier /[NO]VERSION selects the [no] version number preservation
  227. option. If preserved, then the version numbers are retained when the share file
  228. is unpacked and a file with the same version number will cause the unpacking of
  229. that particular file to be skipped. If not preserved, then a new version of the
  230. file will be created regardless, with a warning message if a lower numbered
  231. version already exists. The logical name SHARE_VERSION may be defined to
  232. specify the default, with /VERSION being the default otherwise.
  233.  
  234. [Thanks to Wolfgang Moeller - Moeller@gwdgv1.dnet.gwdg.de - for this suggestion]
  235.  
  236.  
  237.  
  238. 2.6 DEBUG Now Shows Rejected Files
  239.  
  240. If a file which matches the user specified input files is not selected because
  241. of the value of the /EXCLUDE, /AFTER or /BEFORE qualifiers, selecting the
  242. /DEBUG qualifier will show which of these qualifiers caused it to be rejected.
  243.  
  244. Level 2 debug is required for this.
  245.  
  246.  
  247.  
  248. 2.7 New PAKMAIL Utility
  249.  
  250. The PAKMAIL utility has been extensively revised. In particular, it now
  251. recognizes an optional list of parts as a paramter. This allows a user to send
  252. a subset of the full package should, for example, a number of users fail to
  253. receive some of the parts.  The User guide and on-line help give further
  254. details of this.
  255.  
  256. [Thanks to Richard Levitte - Levitte@ttt.kth.se - for this suggestion]
  257.  
  258.  
  259.  
  260. 3. BUG FIXES
  261.  
  262.  
  263. 3.1 Debug Messages
  264.  
  265. In some early releases of version 8.1, some of the debug messages were always
  266. active. This was due to a faulty definition of their debug level (as 0 rather
  267. than 1) internally. The debug level associated with these messages has been
  268. corrected.
  269.  
  270.  
  271.  
  272. 3.2 PAKMAIL
  273.  
  274. The PAKMAIL utility, used to mail out parts of a package, was modified in
  275. version 8.1 to reflect the new part format of nnn-OF-mmm. A bug in the code
  276. prevented this working correctly when the number of parts exceeded 9. This has
  277. now been corrected and works for any number of parts.
  278.  
  279.  
  280.  
  281. 3.3 Check for Same Subdirectory
  282.  
  283. The check on whether a file was in the same subdirectory was faulty, leading to
  284. a DCL error message about undefined symbols rather than the correct message.
  285. This has been corrected.
  286.  
  287. [Thanks to Wolfgang Moeller - Moeller@gwdgr1.dnet.gwdg.de - for this bugfix]
  288.  
  289.  
  290.  
  291. 3.4 File scanning
  292.  
  293. In some early version of VMS (around 5.3 and earlier), there was a dcl bug that
  294. prevented nested loops containing gosubs from working correctly. After several
  295. iterations, DCL would fail to find labels that were definitely present.  This
  296. situation could arise in that part of the code which scans the user's file
  297. specifications and locates matching files. To avoid the problem, the code has
  298. been split into two sections, circumventing the bug.
  299.  
  300. Note that the bug appears to no longer exist on VMS 5.5.
  301.  
  302. [Thanks to Foetes Macrides - MACRIDES@WFEB2.BITNET - for this bugfix]
  303.  
  304.  
  305. 3.5 Check for same device
  306.  
  307. The check on the filename to make sure it exists on the current device was
  308. inside rather than outside a loop. This resulted in one message for each file
  309. that matched a wildcarded file spec on the device. The check has been moved
  310. outside the loop and is now issued once when the wildcarded pattern is first
  311. used; the pattern is not used if the device is invalid.
  312.  
  313. Note that this check is suppressed if the /NODIRECTORY option is requested.
  314.  
  315.  
  316. 3.6 Check for invalid file specifications
  317.  
  318. The input file specification supplied by the user is now checked for valid
  319. syntax. Any invalid file specifications cause an abort.
  320.  
  321.  
  322.  
  323. 3.7 Check for missing parameters in non-interactive mode
  324.  
  325. If any of the required parameters are not supplied on the command line, the
  326. user is prompted for them. However, if the mode of the process is not
  327. INTERACTIVE, the user cannot be prompted; therefore an error message is issued
  328. in such modes.
  329.  
  330.  
  331. 3.8 Problems with checksumming
  332.  
  333. Due to the problems described in section 6.1 of these release notes, the
  334. checksum mechanism cannot always be used. Under such circumstances the file
  335. cannot be packaged either. Previous releases inserted a check into the created
  336. share file on the assumption that the checksum might fail but the packaging
  337. would not. However, this cannot happen so the appropriate code segment has been
  338. removed from the created share file.
  339.  
  340. Should a file not be able to be checksummed at the packaging stage, an
  341. appropriate message is issued and the file is ignored.
  342.  
  343.  
  344.  
  345. 3.9 Check on Output Directory/FileName
  346.  
  347. If the output directory was non-existent, or there was a syntax error in the
  348. output file specification, the share file parts were created in the current
  349. directory with strange names.  A check has now been included to validate the
  350. output file.
  351.  
  352.  
  353.  
  354. 3.10 Checks on Qualifier Formats
  355.  
  356. More checks have been added to the qualifier parsing code to ensure that
  357. qualifiers that need values have them, and that those which don't require them
  358. do not have them specified.
  359.  
  360.  
  361.  
  362. 3.11 Input File Patterns
  363.  
  364. A warning message is now issued if any of the input file specifications do not
  365. match at least one file. The message is given for each pattern that fails to
  366. match.
  367.  
  368.  
  369.  
  370. 3.12 Parameter File Creation
  371.  
  372. Additional checks are now made on the creation of the parameter file, to ensure
  373. that all parameters have been correctly written.
  374.  
  375.  
  376. 3.13 Null file types
  377.  
  378. Null file types were processed badly in some places; all known instances of
  379. this have been corrected and should now work properly as with any other file
  380. type.
  381.  
  382. [Thanks to Richard Levitte - Levitte@ttt.kth.se - for this bugfix]
  383.  
  384.  
  385.  
  386. 4. CHANGES IN OPERATION
  387.  
  388. The compression routines have all been completely re-written. The only new code
  389. is that dealing with the LZ encoding.
  390.  
  391.  
  392.  
  393.  
  394. 5. DOCUMENTATION CHANGES
  395.  
  396. The user guide has been completely re-written. Details on the new features have
  397. been added and descriptions of all the qualifiers have been moved to a separate
  398. qualifier reference section.
  399.  
  400. The HELP file has been updated with details of the new qualifiers (/EXCLUDE,
  401. /DIRECTORY and /VERSION) and the new logical names corresponding to them.
  402. Most of the logical name descriptions have been rewritten so that the reader is
  403. referred to the corresponding qualifier rather than duplicating information.
  404.  
  405.  
  406.  
  407. 6. MISCELLANEOUS NOTES
  408.  
  409. 6.1 Record Length Problems
  410.  
  411. The release notes for version 8.1 outlined some problems with long records,
  412. whereby TPU and the CHECKSUM utility were failing to read certain files with
  413. longish lines in them.  The reason for this is now clear, although a solution
  414. has not yet presented itself.
  415.  
  416. Essentially, each file header contains TWO fields describing the size of each
  417. record; the first is the maximum record size, which contains the longest line
  418. that may appear in the file - a zero value here signifies no upper limit on the
  419. length - and is used by many system utilities, TPU included, to determine the
  420. size of the record buffer; the second is the length of the longest record that
  421. is currently written to the file.
  422.  
  423. The problem arise when each of these conditions is true:
  424.  
  425. (a) The MRS value is zero, which causes TPU and CHECKSUM to allocate default
  426.     record buffer sizes of about 2048 bytes.
  427.  
  428. (b) The longest record in the file exceeds the default record buffer length.
  429.  
  430. Unfortunately, DCL's lexical function f$file_attributes only allows a procedure
  431. to see the MRS value and NOT the longest record value. It is therefore
  432. impossible to predict in advance which files are going to cause problems during
  433. packaging.
  434.  
  435. The CHECKSUM utility suffers from a similar problem and consequently will not
  436. checksum files with an MRS value of 0 and a longest record greater than 2048
  437. bytes.
  438.  
  439. It is hoped that future developments in VMS may allow this problem to be
  440. circumvented. In the short term, the simplest workaround is to use the CONVERT
  441. utility to create a new version of the file with the MRS value set to the size
  442. of the longest record. The longest record can be determined by using
  443.  
  444.    DUMP/HEADER/BLOCK=C:0 file
  445.  
  446. and looking for the RMS attributes section. Once the size of the longest record
  447. is obtained, call it `nnn', use the CONVERT utility as follows:
  448.  
  449.    CONVERT/FDL=SYS$INPUT file file
  450.    RECORD
  451.     SIZE nnn
  452.    ^Z
  453.  
  454. This new copy of the file will then be correctly processed by VMS_SHARE
  455.  
  456.  
  457.  
  458. 7. TESTING
  459.  
  460. This version of VMS_SHARE has only been tested on VMS 5.5-1 but is believed to
  461. work on all versions from VMS 5.0 to VMS 5.5-1.  However, it is not supported 
  462. formally on any version of VMS other than the one on which it has been tested.
  463.  
  464. The share files generated by VMS_SHARE are believed to unpack correctly on all
  465. versions of TPU from VMS 4.4 onwards unless the /LONGLINES option is selected,
  466. in which case VMS 5.4 is the minimum release needed.
  467.  
  468.