[comp.binaries.ibm.pc.d] Compression program contest

dhesi@bsu-cs.bsu.edu (Rahul Dhesi) (04/17/89)

In view of the great interest in lzhuf.c and lharc (both recently
posted on Usenet in comp.binaries.ibm.pc), and my own interest in
including that algorithm in the zoo archive program, I hereby announce
the following programming contest.

1.   The objective of the contest is to write two C functions defined
     as follows:

          int lzhc (inf, outf)   /* does lzh compression */
          FILE *inf, *outf;

          int lzhd (inf, outf)   /* does lzh uncompression */
          FILE *inf, *outf;

     Each function shall receive open file pointers in inf and outf.
     It shall read from inf and write to outf.  Its return value shall
     be 0 if no error occurred, 1 if output to outf failed (possibly
     because of a full disk or a disk error), and 2 or more if any
     other error occurred (such as not enough memory).  Neither
     function is permitted to print anything to any other file.

2.   There will be one top prize, of $100 in US dollars, and two possible
     bonus prizes of $50 each.  I shall be the sole judge and my
     decision is final.  (I have the honor of being judge because I'm
     donating the prize money.)  The criteria for judging shall include
     portability and speed of code.  The top prize will definitely be
     awarded.

     In case any unexpected loopholes are found in the contest rules, I
     reserve the right to close them as I see fit.

     The compressed output of your code must be able to be extracted by
     the decoding part of the original lzhuf program posted in
     comp.binaries.ibm.pc.  It is permissible to use that original
     lzhuf program as the basis for your own program, provided you
     adhere to its copyright conditions.

3.   Your entry, if it wins, must be declared by you to be freely
     usable and distributable by all for any noncommercial purpose.

4.   Your entry must compile and run correctly in each of the
     following four environments:  (a) MS-DOS, using any version of
     your choice of Borland's Turbo C.  (b) 4.3BSD as distributed by
     the University of California, Berkeley.  (c) Microport System V/AT
     (a port of System V Release 2).  (d) VAX/VMS 4.7 as available here
     to me.  Entries that need slight changes to be compiled on these
     environments will be considered, but will downrated by an amount
     commensurate with the changes needed.

5.   No conditional compilation is permitted, i.e., the same source
     code must work on all these environments, and no predefined
     preprocessor symbols may be assumed except for NULL.  (Note:
     4.3BSD does have the strchr and strrchr functions.)

6.   Only the following standard library functions and macros may be
     used:

     assert, exit, fclose, feof, fflush, fgetc, fgets, fopen, fprintf,
     fputc, free, fread, fscanf, fwrite, getc, getchar, malloc, perror,
     printf, putc, putchar, scanf, strcat, strncat, strchr, strrchr,
     strcpy, strncpy, strcmp, strncmp, strlen

     (In particular, the use of fseek, ftell, memmove, and memcpy is
     not permitted.)  Only the following standard header file may be
     used:  <stdio.h>.

6.   Your code must be completely independent of byte order ("endedness")
     and size of the standard data types, except that you may
     optionally assume that characters are exactly 8 bits.

7.   All entries must be submitted by electronic mail to the address
     contest@bsu-cs.bsu.edu so they reach *after* May 15 and *on or
     before* May 30.  This special userid will not exist before then
     nor after then.  Entries mailed to me directly don't count.  There
     is no penalty for duplicate entries, so if mail seems to fail, you
     can try again.

     However, if you have a suggestion or question about this contest,
     mail it directly to me at the address given at the end of this
     document.

8.   Based on discussion that may follow, I reserve the right to change
     these rules arbitrarily at any time before April 26.  (This allows
     ten days to fix loopholes and ambiguities, etc.)

9.   Entries must be mailed in a format that I can conveniently extract on
     our 4.3BSD system.  Currently these are: shar, arc, zoo.  (Any
     binary format should be uuencoded or atob'd.)

10.  The two bonus prizes shall be awarded for well-implemented
     assembly language routines for the 8086 and 6800 processors
     respectively.  I reserve the right to not award these bonus prizes
     if no entry is found to be of good enough quality.

11.  Sorry, I cannot honor requests to mail you the original lzhuf
     program or algorithm.  Please check your local archives, or a
     nearby site, for recent postings in comp.binaries.ibm.pc.
-- 
Rahul Dhesi <dhesi@bsu-cs.bsu.edu>
UUCP:    ...!{iuvax,pur-ee}!bsu-cs!dhesi

dhesi@bsu-cs.bsu.edu (Rahul Dhesi) (04/18/89)

In article <6816@bsu-cs.bsu.edu> I wrote:
   10.  The two bonus prizes shall be awarded for well-implemented
        assembly language routines for the 8086 and 6800 processors
        respectively.

Oops!  That is a typographical error.  Instead of 6800 read 68000.
-- 
Rahul Dhesi <dhesi@bsu-cs.bsu.edu>
UUCP:    ...!{iuvax,pur-ee}!bsu-cs!dhesi