[comp.sys.ibm.pc] Hey! A Binary File Patch/Update Utility

riml@softart.UUCP (Research in Motion Limited) (10/05/88)

[Why upload a 200K program when only 20K has changed?]

We're busy designing our new product and we were thinking ahead to
the day when we would have a BBS for software support and enquiries.
The subject of updates to executable programs was brought up, and
it seemed obvious that reducing transmission time for a user trying
to download a revision change would be well appreciated.  However,
normal ARC (tm someone ;-) files don't do much for EXE files and 
other dense binary-type files.  So how could we help?

I opened my big mouth and suggested a software package that would
compare the old revision to the new one and then generate a PATCH file.
The PATCH would describe how to convert the old revision into the new one.
Unfortunately, no such program existed so far as I or any of my associates
could determine.  So I wrote a pair of programs.

One (DIFFS) does the comparison and generates a patch file.  The other (PATCH)
takes the old revision and the patch file and generates the new revision.

Does it work?  Sure does.  The PATCH file contains CRC information for
the old and new files, so that PATCH.EXE can determine whether the process
worked correctly.  The PATCH file can contain arbitrary text strings that
PATCH.EXE displays on the screen for the user's edification.

The programs are written in reasonably vanilla C.  For speed considerations
I re-wrote portions of the code in ASM for the PC.  

As an example, we used the programs on one of our commercial software 
packages, a C optimizer (for Aztec C-Z80 (tm Manx...)).  I had added 
several new functions and re-arranged some code in order to fix a bug.
The EXE files were still both around 175K long.  The PATCH file was only
29K long!  That's 4.8 minutes XMODEMing @ 1200 baud, instead of 29.1 minutes.
How long to generate the PATCH file?  On a 10MHz AT+28ms HD, 39 seconds.

We were wondering if anyone out there would be interested in such a set of
programs.  For now, we will be using them strictly in-house.  If there is
a luke-warm interest, we might consider a share-ware type of arrangement.
If there is tremendous interest, we would have to arrange something else.

What do you say?

Michael A. Barnstijn         USENET: ...{ihnp4|sun|decvax}!watmath!softart!riml
VP Software Systems          PHONE:  (519) 888-7465
Research In Motion Limited   SLOMAIL: Suite 6, 465 Phillip St., Waterloo,
				      Ontario, Canada   N2L 6C7