[comp.sources.d] bsd version of arc

zeeff@b-tech.UUCP (Jon Zeeff) (04/06/88)

Subject: bsd version of arc
Newsgroups: comp.sources.d

After running lint on this thing, I find it amazing that it works for 
anyone.  Does anyone have diffs for a lint free version or a version 
with the bugs removed?  (yes, some nasty ones did turn up) 

--Jon

Moral of the story: "lint *.c" isn't hard to do.  Always use it on 
any code you work on.  
-- 
Jon Zeeff           		Branch Technology,
uunet!umix!b-tech!zeeff  	zeeff%b-tech.uucp@umix.cc.umich.edu

eichin@athena.mit.edu (Mark W. Eichin) (04/06/88)

In article <4395@b-tech.UUCP> zeeff@b-tech.UUCP (Jon Zeeff) writes:
>Subject: bsd version of arc
>Newsgroups: comp.sources.d
>
>After running lint on this thing, I find it amazing that it works for 
>anyone.  Does anyone have diffs for a lint free version or a version 
>with the bugs removed?  (yes, some nasty ones did turn up) 
>
>--Jon
>
>Moral of the story: "lint *.c" isn't hard to do.  Always use it on 
>any code you work on.  
>-- 
>Jon Zeeff           		Branch Technology,
>uunet!umix!b-tech!zeeff  	zeeff%b-tech.uucp@umix.cc.umich.edu


I built it here (vax 4.3bsd) and tried un-arc'ing something I had been
sent, and had it barf with "Stack Overflow" and other errors. It would
also produce total garbage for some of the files.

On following up another announcement, and finally being able to get
through to IUVAX.CS.INDIANA.EDU, I ftp'd their version. It is
definitely newer, although most of the work is adding a `squash'
module. The diffs that DIDN'T deal with squash mode follow:

diff -r ARC/arclzw.c IUarc/arclzw.c
109c109
< #if MSODS
---
> #if MSDOS
565c565,566
<     local = (pred + foll) | 0x0800;    /* create the hash key */
---
>     local = ((pred + foll) | 0x0800) & 0xffff;    /* create the hash key */
>     /*local = (pred + foll) | 0x0800;    /* create the hash key */
574c575,576
<     return ((pred+foll)*15073)&0xFFF;  /* faster hash */
---
>     return (((pred+foll)&0xffff)*15073)&0xFFF;  /* faster hash */
>     /*return ((pred+foll)*15073)&0xFFF;  /* faster hash */
diff -r ARC/arcm.h IUarc/arcm.h
25c25
< #define ARCVER 8   /*                   archive header version code   */
---
> #define ARCVER 9   /*                   archive header version code   */

This version still hangs in certain parts of the archive I was
attacking, but now only gets stuck on one file. Someone who wants to
seriously hunt this down can ask me, but effort would be better spent
in finding a more recent version of ARC to post!

I don't know who at indiana it was, but the scrap of posting I still
have follows:

>   Someone ported the actual PC Arc program to Unix and posted it last year.
>We have a copy of the source here. You can ftp it from pub/arc/* at
>iuvax.cs.indiana.edu.

				Mark Eichin
			<eichin@athena.mit.edu>
		SIPB Member & Project Athena ``Watchmaker'' 

creps@silver.bacs.indiana.edu (Steve Creps) (04/06/88)

In article <4385@bloom-beacon.MIT.EDU> eichin@athena.mit.edu (Mark W. Eichin) writes:
>In article <4395@b-tech.UUCP> zeeff@b-tech.UUCP (Jon Zeeff) writes:
[ deleted ]

>On following up another announcement, and finally being able to get
>through to IUVAX.CS.INDIANA.EDU, I ftp'd their version. It is
>definitely newer, although most of the work is adding a `squash'
>module. The diffs that DIDN'T deal with squash mode follow:
>
[ deleted ]

>I don't know who at indiana it was, but the scrap of posting I still
>have follows:
>
>>   Someone ported the actual PC Arc program to Unix and posted it last year.
>>We have a copy of the source here. You can ftp it from pub/arc/* at
>>iuvax.cs.indiana.edu.

   I wrote that. I guess I should add that the version we have is just as
it was taken from the net and unshared. No changes were made at this site.
I don't remember who posted it to the net, but it's possible the original
shar files are somewhere at an archive site. Probably would be a good idea
to find who posted it to the net in the first place.

-	-	-	-	-	-	-	-	-	-
Steve Creps on an Ultrix machine at Indiana University.
	creps@silver.bacs.indiana.edu (192.12.206.2)
	{pur-ee ihnp4 rutgers pyramid}!iuvax!silver!creps
	creps@iubacs.bitnet (forwarded)

ip@mill.me.uucp (Bevis Ip) (04/07/88)

In article <4395@b-tech.UUCP> zeeff@b-tech.UUCP (Jon Zeeff) writes:
>Subject: bsd version of arc
>Newsgroups: comp.sources.d
>
>After running lint on this thing, I find it amazing that it works for 
>anyone.  Does anyone have diffs for a lint free version or a version 
>with the bugs removed?  (yes, some nasty ones did turn up) 

You'e right, the code is quite dirty.  I have BSD version of arc running on
DEC (BSD4.3), SUN (SUN3.4) and MIPS (UMIPS-BSD) machines; they all works
fine for extracting files, but only the one running on DEC works for
creating/updating archives.  (BTW, I tried all posted versions, from the
first working BSD version to the latest squashing patch.) If any one has a
fully working version running on either SUN or MIPS, I will appreciate it if
one could send me a copy.

>Moral of the story: "lint *.c" isn't hard to do.  Always use it on 
>any code you work on.  

I think the morale for people in this case is to get it to work first, and
then worry about lint's complains about other people's code.  It is
sometimes easier and more enjoyable to rewrite stuff from scratch than to do
2nd or 3rd hand hacking, like here.

/bevis
-- 
Bevis Ip        Univ. of Toronto, Dept. of Mechanical Engineering
UUCP  :  {ihnp4,allegra,decwrl,decvax}!utcsri!me!ip
         {pyramid,uunet}!utai!me!ip
ARPA  :  ip%me.toronto.edu@csnet-relay.arpa
BitNet:  ip@me.UTORONTO                 CSNet :  ip@me.toronto.edu

gnu@hoptoad.uucp (John Gilmore) (04/08/88)

I have a version of "arc" with numerous bugs removed.  It seems to
create, extract, list, and test files in all archives I have run across
(except damaged archives, which it complains about now rather than core
dumping on).  Arc files it has created have been moved to msdos without
trouble, and vice verse.  It's still really slow and stupid, but I
didn't fix design problems, just bugs.

Many months ago, I sent my version to somebody at umix who claimed to
be willing to maintain a master "Unix ARC" source.  I no longer have a
record of who that was, and they don't seem to have distributed it or
answered any of these net queries.

I am *not* willing to send out copies to everybody who asks.  I am *not*
willing to act as a clearing house for arc bugfixes.  I *am* willing to send
my version to a person who *is* willing to do the above two things.

In other words, I don't mind sharing my bug fixes, I just have no
interest being stuck maintaining the damn thing, or having to handle a
lot of email about it.  How about a serious volunteer responding by
posting in comp.sources.d?  (Then everybody can email their versions to
this person, who had better be willing to merge a lot of bugfixes from
a lot of wierd versions of arc.)
-- 
{pyramid,pacbell,amdahl,sun,ihnp4}!hoptoad!gnu			  gnu@toad.com
  I forsee a day when there are two kinds of C compilers: standard ones and 
  useful ones ... just like Pascal and Fortran.  Are we making progress yet?
	-- ASC:GUTHERY%slb-test.csnet

cwwj@ur-tut (Clarence Wilkerson) (04/09/88)

He's working on a MTS version. I likewise can not get the BSD arc to create
an arc under SUNOS3.2. It dearcs ok.
.

hyc@umix.cc.umich.edu (Howard Chu) (04/15/88)

In article <4358@hoptoad.uucp> gnu@hoptoad.uucp (John Gilmore) writes:
>I have a version of "arc" with numerous bugs removed.  It seems to
>create, extract, list, and test files in all archives I have run across
>(except damaged archives, which it complains about now rather than core
>dumping on).  Arc files it has created have been moved to msdos without
>trouble, and vice verse.  It's still really slow and stupid, but I
>didn't fix design problems, just bugs.

I have just posted a version to alt.sources. This program had been tested
only on BSD machines at the time I posted it. I have since sent a copy to
Jon Zeeff (b-tech!zeeff) who tells me he was able to get it running on his
Sys V system, with the help of a BSD compatibility library previously posted
to comp.sources.unix. I'll be getting things together for an "official"
release to comp.sources.misc within a day or two.

The code I just released is based on the PC sources for ARC 5.20, which
is significantly faster than all the previous Unix ports released so far.
(The previous releases were based on version 5.12. The primary difference
is that ARC 5.20 will no longer use Huffman Squeezing to compress files,
and saves a great deal of time by not going thru those calculations.) The
code implements every PC option correctly. It also munges text files so that
CRs are stripped for use on Unix boxes, and re-inserted when compressing
files, such that they will look correct on MSDOS systems upon extraction,
and vice versa. The Squashing code written by Dan Lanciani for version 5.12
has been merged in. I'm quite confident that this is the end-all be-all of
ARC implementations for Unix. The "official" release is waiting for me to
finish wading thru the remaining unresolved lint output. I have already
received notes from people who received the alt.sources posting - they
literally just unshar'ed the posting and typed "make" and it worked.
There's very little left to do before I will send this to Brandon Allbery,
who will hopefully have it out on comp.sources.misc Very Soon.
>
>Many months ago, I sent my version to somebody at umix who claimed to
>be willing to maintain a master "Unix ARC" source.  I no longer have a
>record of who that was, and they don't seem to have distributed it or
>answered any of these net queries.

As the summary said, I haven't been paying much attention to the net
these days. Sorry for the negligence on my part. I was able to use a
little of what you sent me, but basically started over again when I
got hold of the 5.20 sources.
>
>I am *not* willing to send out copies to everybody who asks.  I am *not*
>willing to act as a clearing house for arc bugfixes.  I *am* willing to send
>my version to a person who *is* willing to do the above two things.

I will act as the central clearinghouse. I don't expect much in the way
of bug reports or fixes, because I've done a lot of beating on this code
in the months that have gone by. There's bound to be a bug in there somewhere,
but the ones that I've encountered are no longer present.
>
>In other words, I don't mind sharing my bug fixes, I just have no
>interest being stuck maintaining the damn thing, or having to handle a
>lot of email about it.  How about a serious volunteer responding by
>posting in comp.sources.d?  (Then everybody can email their versions to
>this person, who had better be willing to merge a lot of bugfixes from
>a lot of wierd versions of arc.)
>-- 
>{pyramid,pacbell,amdahl,sun,ihnp4}!hoptoad!gnu			  gnu@toad.com
>  I forsee a day when there are two kinds of C compilers: standard ones and 
>  useful ones ... just like Pascal and Fortran.  Are we making progress yet?
>	-- ASC:GUTHERY%slb-test.csnet

While I'm eager to field bug reports and hear about bug fixes, I'd prefer
that people held off just a bit longer until I get my current release out
the door. I suspect that you'll want to discard anything you've been using
up to this point after you start using this.

Again, sorry for the delay in responding. [I was switching jobs, in a sense,
which is why I wasn't keeping in touch with the world. I still have a small
fraction here at the CC, but I've been busy enough moving around that only
now have things settled down reasonably.]

  /
 /_ , ,_.                      Howard Chu
/ /(_/(__                University of Michigan
    /           Computing Center          College of LS&A
   '              Unix Project          Information Systems

zeeff@b-tech.UUCP (Jon Zeeff) (04/18/88)

In article <4008@umix.cc.umich.edu> hyc@umix.cc.umich.edu (Howard Chu) writes:
>
>I have just posted a version to alt.sources. This program had been tested
>only on BSD machines at the time I posted it. I have since sent a copy to
>Jon Zeeff (b-tech!zeeff) who tells me he was able to get it running on his
>Sys V system, with the help of a BSD compatibility library previously posted
>to comp.sources.unix. I'll be getting things together for an "official"
>release to comp.sources.misc within a day or two.
>

Indeed, Howard does have the most solid version of arc for unix I've 
seen.  His final version will contain information about running on Sys 
V - please don't send me mail about scandir, opendir, etc.

--Jon  

-- 
Jon Zeeff           		Branch Technology,
uunet!umix!b-tech!zeeff  	zeeff%b-tech.uucp@umix.cc.umich.edu