xref: /dragonfly/usr.bin/compress/doc/revision.log (revision 86d7f5d3)
1*86d7f5d3SJohn Marino/* $FreeBSD: src/usr.bin/compress/doc/revision.log,v 1.3.2.1 2002/07/16 00:42:48 tjr Exp $ */
2*86d7f5d3SJohn Marino/* $DragonFly: src/usr.bin/compress/doc/revision.log,v 1.2 2003/06/17 04:29:25 dillon Exp $ */
3*86d7f5d3SJohn Marino
4*86d7f5d3SJohn Marino/*
5*86d7f5d3SJohn Marino * $Header: compress.c,v 4.0 85/07/30 12:50:00 joe Release $
6*86d7f5d3SJohn Marino * $Log:	compress.c,v $
7*86d7f5d3SJohn Marino * Revision 4.0  85/07/30  12:50:00  joe
8*86d7f5d3SJohn Marino * Removed ferror() calls in output routine on every output except first.
9*86d7f5d3SJohn Marino * Prepared for release to the world.
10*86d7f5d3SJohn Marino *
11*86d7f5d3SJohn Marino * Revision 3.6  85/07/04  01:22:21  joe
12*86d7f5d3SJohn Marino * Remove much wasted storage by overlaying hash table with the tables
13*86d7f5d3SJohn Marino * used by decompress: tab_suffix[1<<BITS], stack[8000].  Updated USERMEM
14*86d7f5d3SJohn Marino * computations.  Fixed dump_tab() DEBUG routine.
15*86d7f5d3SJohn Marino *
16*86d7f5d3SJohn Marino * Revision 3.5  85/06/30  20:47:21  jaw
17*86d7f5d3SJohn Marino * Change hash function to use exclusive-or.  Rip out hash cache.  These
18*86d7f5d3SJohn Marino * speedups render the megamemory version defunct, for now.  Make decoder
19*86d7f5d3SJohn Marino * stack global.  Parts of the RCS trunks 2.7, 2.6, and 2.1 no longer apply.
20*86d7f5d3SJohn Marino *
21*86d7f5d3SJohn Marino * Revision 3.4  85/06/27  12:00:00  ken
22*86d7f5d3SJohn Marino * Get rid of all floating-point calculations by doing all compression ratio
23*86d7f5d3SJohn Marino * calculations in fixed point.
24*86d7f5d3SJohn Marino *
25*86d7f5d3SJohn Marino * Revision 3.3  85/06/24  21:53:24  joe
26*86d7f5d3SJohn Marino * Incorporate portability suggestion for M_XENIX.  Got rid of text on #else
27*86d7f5d3SJohn Marino * and #endif lines.  Cleaned up #ifdefs for vax and interdata.
28*86d7f5d3SJohn Marino *
29*86d7f5d3SJohn Marino * Revision 3.2  85/06/06  21:53:24  jaw
30*86d7f5d3SJohn Marino * Incorporate portability suggestions for Z8000, IBM PC/XT from mailing list.
31*86d7f5d3SJohn Marino * Default to "quiet" output (no compression statistics).
32*86d7f5d3SJohn Marino *
33*86d7f5d3SJohn Marino * Revision 3.1  85/05/12  18:56:13  jaw
34*86d7f5d3SJohn Marino * Integrate decompress() stack speedups (from early pointer mods by McKie).
35*86d7f5d3SJohn Marino * Repair multi-file USERMEM gaffe.  Unify 'force' flags to mimic semantics
36*86d7f5d3SJohn Marino * of SVR2 'pack'.  Streamline block-compress table clear logic.  Increase
37*86d7f5d3SJohn Marino * output byte count by magic number size.
38*86d7f5d3SJohn Marino *
39*86d7f5d3SJohn Marino * Revision 3.0   84/11/27  11:50:00  petsd!joe
40*86d7f5d3SJohn Marino * Set HSIZE depending on BITS.  Set BITS depending on USERMEM.  Unrolled
41*86d7f5d3SJohn Marino * loops in clear routines.  Added "-C" flag for 2.0 compatibility.  Used
42*86d7f5d3SJohn Marino * unsigned compares on Perkin-Elmer.  Fixed foreground check.
43*86d7f5d3SJohn Marino *
44*86d7f5d3SJohn Marino * Revision 2.7   84/11/16  19:35:39  ames!jaw
45*86d7f5d3SJohn Marino * Cache common hash codes based on input statistics; this improves
46*86d7f5d3SJohn Marino * performance for low-density raster images.  Pass on #ifdef bundle
47*86d7f5d3SJohn Marino * from Turkowski.
48*86d7f5d3SJohn Marino *
49*86d7f5d3SJohn Marino * Revision 2.6   84/11/05  19:18:21  ames!jaw
50*86d7f5d3SJohn Marino * Vary size of hash tables to reduce time for small files.
51*86d7f5d3SJohn Marino * Tune PDP-11 hash function.
52*86d7f5d3SJohn Marino *
53*86d7f5d3SJohn Marino * Revision 2.5   84/10/30  20:15:14  ames!jaw
54*86d7f5d3SJohn Marino * Junk chaining; replace with the simpler (and, on the VAX, faster)
55*86d7f5d3SJohn Marino * double hashing, discussed within.  Make block compression standard.
56*86d7f5d3SJohn Marino *
57*86d7f5d3SJohn Marino * Revision 2.4   84/10/16  11:11:11  ames!jaw
58*86d7f5d3SJohn Marino * Introduce adaptive reset for block compression, to boost the rate
59*86d7f5d3SJohn Marino * another several percent.  (See mailing list notes.)
60*86d7f5d3SJohn Marino *
61*86d7f5d3SJohn Marino * Revision 2.3   84/09/22  22:00:00  petsd!joe
62*86d7f5d3SJohn Marino * Implemented "-B" block compress.  Implemented REVERSE sorting of tab_next.
63*86d7f5d3SJohn Marino * Bug fix for last bits.  Changed fwrite to putchar loop everywhere.
64*86d7f5d3SJohn Marino *
65*86d7f5d3SJohn Marino * Revision 2.2   84/09/18  14:12:21  ames!jaw
66*86d7f5d3SJohn Marino * Fold in news changes, small machine typedef from thomas,
67*86d7f5d3SJohn Marino * #ifdef interdata from joe.
68*86d7f5d3SJohn Marino *
69*86d7f5d3SJohn Marino * Revision 2.1   84/09/10  12:34:56  ames!jaw
70*86d7f5d3SJohn Marino * Configured fast table lookup for 32-bit machines.
71*86d7f5d3SJohn Marino * This cuts user time in half for b <= FBITS, and is useful for news batching
72*86d7f5d3SJohn Marino * from VAX to PDP sites.  Also sped up decompress() [fwrite->putc] and
73*86d7f5d3SJohn Marino * added signal catcher [plus beef in writeerr()] to delete effluvia.
74*86d7f5d3SJohn Marino *
75*86d7f5d3SJohn Marino * Revision 2.0   84/08/28  22:00:00  petsd!joe
76*86d7f5d3SJohn Marino * Add check for foreground before prompting user.  Insert maxbits into
77*86d7f5d3SJohn Marino * compressed file.  Force file being uncompressed to end with ".Z".
78*86d7f5d3SJohn Marino * Added "-c" flag and "zcat".  Prepared for release.
79*86d7f5d3SJohn Marino *
80*86d7f5d3SJohn Marino * Revision 1.10  84/08/24  18:28:00  turtlevax!ken
81*86d7f5d3SJohn Marino * Will only compress regular files (no directories), added a magic number
82*86d7f5d3SJohn Marino * header (plus an undocumented -n flag to handle old files without headers),
83*86d7f5d3SJohn Marino * added -f flag to force overwriting of possibly existing destination file,
84*86d7f5d3SJohn Marino * otherwise the user is prompted for a response.  Will tack on a .Z to a
85*86d7f5d3SJohn Marino * filename if it doesn't have one when decompressing.  Will only replace
86*86d7f5d3SJohn Marino * file if it was compressed.
87*86d7f5d3SJohn Marino *
88*86d7f5d3SJohn Marino * Revision 1.9  84/08/16  17:28:00  turtlevax!ken
89*86d7f5d3SJohn Marino * Removed scanargs(), getopt(), added .Z extension and unlimited number of
90*86d7f5d3SJohn Marino * filenames to compress.  Flags may be clustered (-Ddvb12) or separated
91*86d7f5d3SJohn Marino * (-D -d -v -b 12), or combination thereof.  Modes and other status is
92*86d7f5d3SJohn Marino * copied with copystat().  -O bug for 4.2 seems to have disappeared with
93*86d7f5d3SJohn Marino * 1.8.
94*86d7f5d3SJohn Marino *
95*86d7f5d3SJohn Marino * Revision 1.8  84/08/09  23:15:00  joe
96*86d7f5d3SJohn Marino * Made it compatible with vax version, installed jim's fixes/enhancements
97*86d7f5d3SJohn Marino *
98*86d7f5d3SJohn Marino * Revision 1.6  84/08/01  22:08:00  joe
99*86d7f5d3SJohn Marino * Sped up algorithm significantly by sorting the compress chain.
100*86d7f5d3SJohn Marino *
101*86d7f5d3SJohn Marino * Revision 1.5  84/07/13  13:11:00  srd
102*86d7f5d3SJohn Marino * Added C version of vax asm routines.  Changed structure to arrays to
103*86d7f5d3SJohn Marino * save much memory.  Do unsigned compares where possible (faster on
104*86d7f5d3SJohn Marino * Perkin-Elmer)
105*86d7f5d3SJohn Marino *
106*86d7f5d3SJohn Marino * Revision 1.4  84/07/05  03:11:11  thomas
107*86d7f5d3SJohn Marino * Clean up the code a little and lint it.  (Lint complains about all
108*86d7f5d3SJohn Marino * the regs used in the asm, but I'm not going to "fix" this.)
109*86d7f5d3SJohn Marino *
110*86d7f5d3SJohn Marino * Revision 1.3  84/07/05  02:06:54  thomas
111*86d7f5d3SJohn Marino * Minor fixes.
112*86d7f5d3SJohn Marino *
113*86d7f5d3SJohn Marino * Revision 1.2  84/07/05  00:27:27  thomas
114*86d7f5d3SJohn Marino * Add variable bit length output.
115*86d7f5d3SJohn Marino *
116*86d7f5d3SJohn Marino */
117*86d7f5d3SJohn Marino
118*86d7f5d3SJohn Marinostatic char rcs_ident[] =
119*86d7f5d3SJohn Marino	"$Header: compress.c,v 4.0 85/07/30 12:50:00 joe Release $";
120