Compress 4.0 (part 0 of 2)
sources-request at genrad.UUCP
sources-request at genrad.UUCP
Fri Aug 2 02:56:24 AEST 1985
Mod.sources: Volume 2, Issue 27
Submitted by: vax135!petsd!joe (Joe Orost)
[ Moderator's notes: Speedup and reduced memory requirements are the
primary improvements over Compress 3.0 A shell script to automatically
determine the available memory has been added.
Also, additional shell scripts have been added to the package to allow
for additional user interfaces. Frankly, I don't find these particularly
useful.
I have repackaged Compress 4.0 from how it was sent to me. Part 1
contains compress.1 compress.c usermem and Makefile (these are all
that are required to get the basic system up and running.) Part 2
contains the README's and shell scripts and stuff.
Here is a copy of the new README for compress 4.0
- John P. Nelson (decvax!genrad!john) [moderator, mod.sources]
]
---------------------------------------------------------------------------
Compress version 4.0 improvements:
o compress() speedup (10-50%) by changing division hash to xor
o decompress() speedup (5-10%)
o Memory requirements reduced (3-30%)
o Stack requirements reduced to less than 4kb
o Removed 'Big+Fast' compress code (FBITS) because of compress speedup
o Portability mods for Z8000 and PC/XT (but not zeus 3.2)
o Default to 'quiet' mode
o Unification of 'force' flags
o Manual page overhaul
o Portability enhancement for M_XENIX
o Removed text on #else and #endif
o Added "-V" switch to print version and options
o Added #defines for SIGNED_COMPARE_SLOW
o Added Makefile and "usermem" program
o Removed all floating point computations
o New programs:
compressdir - compress all files on a directory
uncompressdir - uncompress all files on a directory
zcmp - cmp compressed files
zdiff - diff compressed files
The following are with thanks to philabs!per:
btoa - convert binary to ascii for mailing
atob - convert ascii to binary with checksum
tarmail - tar, compress, btoa, and mail files
untarmail - restore "tarmail" files
WARNING: These last few programs are not compatible
with the original ones from the net. The encoding
has changed. See btoa.c for more info.
The "usermem" script attempts to determine the maximum process size. Some
editing of the script may be necessary (see the comments). If you can't get
it to work at all, just create file "USERMEM" containing the maximum process
size in decimal.
The following preprocessor symbols control the compilation of "compress.c":
o USERMEM Maximum process memory on the system
o SACREDMEM Amount to reserve for other proceses
o SIGNED_COMPARE_SLOW Unsigned compare instructions are faster
o NO_UCHAR Don't use "unsigned char" types
o BITS Overrules default set by USERMEM-SACREDMEM
o vax Generate inline assembler
o interdata Defines SIGNED_COMPARE_SLOW
o M_XENIX Makes arrays < 65536 bytes each
o pdp11 BITS=12, NO_UCHAR
o z8000 BITS=12
o pcxt BITS=12
o BSD4_2 Allow long filenames ( > 14 characters) &
Call setlinebuf(stderr)
The difference "usermem-sacredmem" determines the maximum BITS that can be
specified with the "-b" flag.
memory: at least BITS
------ -- ----- ----
433,484 16
229,600 15
127,536 14
73,464 13
0 12
The default is BITS=16.
The maximum bits can be overrulled by specifying "-DBITS=bits" at
compilation time.
WARNING: files compressed on a large machine with more bits than allowed by
a version of compress on a smaller machine cannot be decompressed! Use the
"-b12" flag to generate a file on a large machine that can be uncompressed
on a 16-bit machine.
The output of compress 4.0 is fully compatible with that of compress 3.0.
In other words, the output of compress 4.0 may be fed into uncompress 3.0 or
the output of compress 3.0 may be fed into uncompress 4.0.
The output of compress 4.0 not compatable with that of
compress 2.0. However, compress 4.0 still accepts the output of
compress 2.0. To generate output that is compatable with compress
2.0, use the undocumented "-C" flag.
More information about the Mod.sources
mailing list