[news.admin] Are binary groups necessary?

webber@brandx.rutgers.edu (Webber) (07/22/87)

In article <2923@ncoast.UUCP>, allbery@ncoast.UUCP (Brandon Allbery) writes:
> As quoted from <1006@aramis.rutgers.edu> by webber@aramis.rutgers.edu (Bob Webber):
> +---------------
> | the function of news.  I am particularly distressed by the posting of binaries.
> | Although I can understand how for a few months after a computer comes out
> | this might be the only reliable way to distribute code, non-optimizing
> | C compilers for standard architectures (such as 68000s, 6502s, and 8088s)
> | just aren't that hard to write.  Access to the source of compilers is not
> | that difficult to come by, besides the Gnu C implementation, I have also
> | seen books containing full source to P-Code pascal compilers.  While these
> +---------------
> 
> News for you.  The Amsterdam Compiler Kit costs $1000 plus.  Gnu C will not

This is not news.  I helped evaluate the Amsterdam Compiler Kit for
people who were locally interested.  That $1000 stands for alot more
than one non-optimizing C compiler.

> run on small machines, as it's designed for VM architectures.  And, I have

Its front end would save someone some work.

> *used* that P-code Pascal book (THE BYTE BOOK OF PASCAL, for those inter-
> ested); if you think its execution speed is acceptable, I challenge you to
> use a PD spreadsheet "compiled" under it.

Interesting.  I wonder if that is the same one I meant.  My source for
Pascal is:
           Pascal Implementation: The P4 Compiler  
            S. Pemberton and M. C. Daniels
            Ellis Horwood Publishers, 1982
which provides an overview of the source in:
           Pascal Implementation: Compiler and Assembler/Interpreter
            S. Pemberton and M. C. Daniels
            Ellis Horwood Publishers  (these two volumes are sold together)

Also of interest is Per Brinch Hansen, Programming a Personal
Computer, Printice-Hall, 1982.

> "Just sit down and write a compiler"???  Look at the Minix compiler some
>...
> their C compiler bug-free enough to be worth using.  It is NOT easy to
> write compilers THAT WORK ON SMALL MACHINES.  And such compilers are rarely
> cheap enough for the people who BUY small machines -- if I could afford

It is easy to write compilers that work.  It is not easy to write a
compiler that work enough better than all other available compilers to
make it a marketable item.  The time and problems come from the bells
and whistles like optimizers and fancy libraries.

> I'm sorry, but judging small computers by large-computer standards is bogus.
> "Let them use sources" is rather like "Let them eat cake", and is just as
> incendiary to the computer-variety peasant.

Well, I certainly didn't advocate buying a compiler.  While I will
grant that (given sufficient funds) it is easier to buy software than 
it is to write it (and that most purchasers of Unix machines have had
the funds to purchase a C compiler), I will not grant that a compiler
for a language like C is so difficult to write that its lack justifies
the transmission of binaries years after the computer was marketted.

But of course, there are people that LIKE binaries.  I remember
reading of one software `donator' that donates binaries-only so that
people can't make `incorrect' patches to his programs.  Sigh.

-------- BOB (webber@aramis.rutgers.edu ; rutgers!aramis.rutgers.edu!webber)

root@hobbes.UUCP (John Plocher) (07/22/87)

This is a note trying to give positive reasons for a binary distribution.  It
does not try to address the issue of whether Usenet should or should not
do the distribution.                         ******

| lines are from Bob Webber's article <300@brandx.rutgers.edu>
> lines are also from Bob in a previous article
< lines are from Brandon Allberry in response to the | > lines
Mini opinions and psuedo flames by me are enclosed in []'s


| > Bob Webber advocates:  No binaries, everyone should send sources & get
| > a compiler (with source for it, too).
| < Brandon Allbery writes:  compiler source is expensive (ACC = $1000+);  cheap
| < ones (P-code) are slow.
| 
| That $1000 stands for alot more than one non-optimizing C compiler.
[ $1000 is a University price.  Other mere mortals must pay much much more. ]

The majority of people in the PC world share the following traits to some degree

	1) Very short of money.  $1000 would buy a complete NEW computer!  Hell,
	   most even have an adversion to spending $25 on Shareware!  Before
	   the advent of Turbo C for $80 the next best ranged from $150 to
	   $500+. (and these did NOT come with source)  The top 3 (Microsoft,
	   Lattice, and Borland) all claim ANSI conformance.  There are still
	   enough differences to make most code NOT portable between the 3!
	2) Very short of time.  The time taken by modifying sources for
	   their compiler (this is non-trivial!), compiling, and testing
	   JUST ISN'T THERE!  If there is a choice between binaries and
	   compiling sources, many would rather do without than have to
	   compile it!  This is related to:
	3) Micro computers are SLOW.  Compiling larn (for example) takes nearly
	   an HOUR of computer time.  (I just know that someone has a whizbang
	   386 that compiles larn in 10 minutes - Mail me the flame, don't post)
	4) for many things, the binary is enough.  Many people (myself NOT
	   included) don't care about sources.  Also the fact that the
	   shars for larn totaled about 400K and the MSDOS binary was only about
	   200K must count for something. :-)

| < [Brandon talking about GNU C: ]
| < run on small machines, as it's designed for VM architectures.  And, I have
| Its front end would save someone some work.

[
 Instead of this META DISCUSSION why don't YOU use this front end and write one?
 YOU, Bob Webber.  Not someone else. 

	Put up, shut up, or DO SOMETHING CONSTRUCTIVE about it!

 I am putting my money where my mouth is and writing a scanner/parser for a
 Pascal to C translator (just in the beginning states now); why don't you do
 likewise for a usable C compiler?  The front end is trivial compared to
 the code generation for the 808x chip.  This is an arch. where pointers
 to the same object are not necessarily equal to each other!  Non-linear
 address spaces are "so much fun" :-(.
]

| It is easy to write compilers that work.

Like I said above:  Write one!  After you have done that, then you can bitch.
You need to EARN your prerogatives on this net - ie we all respect and listen
to Rick Adams because of the work he did on the news SW; Dennis, Ken and Co
have proved themselves with [insert bulk of AT&T source here :-)]; Mark
has paid his dues with mucho lotso from Berkeley and the UUCP project.  Me,
I'm still a nobody.

| It is not easy to write a compiler that work enough better than all other
| available compilers to make it a marketable item.

If it is FREE (ie source sent out on Usenet) then people will use it no
matter what else is out there.  Look at Cain's Small-C for the CP/M world. 
If it works AT ALL, people will recomend it to others.  If it's good, you
get to be a net.god :-) :-) :-) (cf. prerogatives)

| The time and problems come from the bells and whistles like optimizers
| and fancy libraries.

And let's not forget bells like correct code generation, correct dynamic
memory management, correct pointer arithmatic, and of cource, correct
(ANSI) language implementation.

| < Brandon (again) writes:
| < I'm sorry, but judging small computers by large-computer standards is bogus.

A-MEN!

| Webber's response: ...(and that most purchasers of Unix machines have had
| the funds to purchase a C compiler)

Most versions of Unix (ALL before SV) _came_ with a C compiler!!!  No extra
funds involved.  An IBM PC comes with a BASIC interpreter!  Compilers come
from 3rd parties for $$$.  An IBM PC is usually owned by a single person,
while "Unix machines" have typically been owned by groups like
Universities, Companys, Governments, and the like.  Quite a different
funding base.

| But of course, there are people that LIKE binaries.  I remember
| reading of one software `donator' that donates binaries-only so that
| people can't make `incorrect' patches to his programs.  Sigh.

[ This sounds like a snobish out of touch response.  Even if I didn't
take exception to the rest of his note, this paragraph really rubs me the
wrong way! ]

So that people could not add a routine that formatted the hard disk whenever
the user chose "quit", and then distribute the binaries as the ORIG program!
[can you say Trojan Hourse?  Good, I knew you could.]

So that people didn't break the code and then call the donor asking for help.
(Hi - it's 1am in Detroit, the person on the phone is from CA and he's wondering
why the program won't compile after he "just changed a few things". :-((( 
This happened to ME several times, so I know the feeling)

So that the donor kept control of his own work.  (Nothing at all wrong with
that!)  "Sigh."  INDEED!  Sure it is nice to have sources, but to expect them?
Boy are *you* spoiled!  How much does Unix source cost? $40,000 or some such.
How much does source for one of the commercial databases cost?  You could buy
an OEM version fo MS-DOS source for 5 figures, too...

| -------- BOB (webber@aramis.rutgers.edu ; rutgers!aramis.rutgers.edu!webber)

 - John

-- 
John Plocher uwvax!geowhiz!uwspan!plocher  plocher%uwspan.UUCP@uwvax.CS.WISC.EDU

webber@brandx.rutgers.edu (Webber) (07/23/87)

In article <153@hobbes.UUCP>, root@hobbes.UUCP (John Plocher) writes:
> This is a note trying to give positive reasons for a binary distribution.  It
> does not try to address the issue of whether Usenet should or should not
> do the distribution.                         ******

Near as I can tell, your `positive reasons' all apply equally to
micros and to mainframes.  

> The majority of people in the PC world share the following traits to some degree
> 
> 	1) Very short of money.  $1000 would buy a complete NEW computer!  Hell,
> 	   most even have an adversion to spending $25 on Shareware!....

Right.  As I have said before, I am not asking them to spend any.

> 	2) Very short of time.  The time taken by modifying sources for
> 	   their compiler (this is non-trivial!), compiling, and testing
> 	   JUST ISN'T THERE!  If there is a choice between binaries and
> 	   compiling sources, many would rather do without than have to
> 	   compile it!  This is related to:

As you can imagine, the same reason would also justify binaries groups
for mainframes.

> 	3) Micro computers are SLOW.  Compiling larn (for example) ...

Don't know about larn in particular, but there is no reason for micro
compilers to be extra slow.  I assume this is mostly because of too much
file i/o (i.e., using mainframe design strategies -- the biggest difference
between micros and mainframes seems to be the relative differences between
clock cycles and disk seek times).  If my offer (see other message) gets
accepted, I will attempt to demonstrate this by making a reasonably quick
compiler.

> 	4) for many things, the binary is enough.  Many people (myself NOT
> 	   included) don't care about sources.  Also the fact that the
> 	   shars for larn totaled about 400K and the MSDOS binary was only about
> 	   200K must count for something. :-)

I have seen mainframe executables (not Sun) that were also smaller
than the sources.  While I agree with you that this holds for many, I don't
see it as a difference between micro and mainframe users.

> | It is easy to write compilers that work.
> 
> Like I said above:  Write one!  After you have done that, then you can bitch.
> You need to EARN your prerogatives on this net - ie we all respect and listen
> to Rick Adams because of the work he did on the news SW; Dennis, Ken and Co
> have proved themselves with [insert bulk of AT&T source here :-)]; Mark
> has paid his dues with mucho lotso from Berkeley and the UUCP project.  Me,
> I'm still a nobody.

SEE OFFER IN SEPARATE MESSAGE.

> If it is FREE (ie source sent out on Usenet) then people will use it no
> matter what else is out there.  Look at Cain's Small-C for the CP/M world. 
> If it works AT ALL, people will recomend it to others.  If it's good, you
> get to be a net.god :-) :-) :-) (cf. prerogatives)

SEE OFFER.

> | The time and problems come from the bells and whistles like optimizers
> | and fancy libraries.
> 
> And let's not forget bells like correct code generation, correct dynamic
> memory management, correct pointer arithmatic, and of cource, correct
> (ANSI) language implementation.

Correct pointer arithmetic (and correct code generation in general) is
certainly necessary in C.  Memory management in the sense of malloc
is part of the UNIX interface and not part of the language proper.  ANSI
C is needlessly complicated, I will stick to Kernighan and Ritchie, thank
you (but you will be welcome to extend/modify the compiler if you want).
Incidently, to the best of my knowledge, there is only a DRAFT for an ANSI
C standard, I don't think it is actually a standard yet (then again, ANSI
committees have been known to take actions without notifying me -- 
inconsiderate, but what do you expect?).

> Most versions of Unix (ALL before SV) _came_ with a C compiler!!!  No extra
> funds involved.  An IBM PC comes with a BASIC interpreter!  Compilers come
> from 3rd parties for $$$.  An IBM PC is usually owned by a single person,
> while "Unix machines" have typically been owned by groups like
> Universities, Companys, Governments, and the like.  Quite a different
> funding base.

Actually, with Xenix and Mimix (and various unix boxes), most unix
machines are probably micros owned by enlightened individuals.  Needless to
say, most of these people didn't get their compilers free.  Also, there
are many unix boxes running without source that probably have things like
compilers as options.  In any event, when they came bundled they were
certainly included in the price (some companies have put alot of work into
quality unix compilers, indicating that they viewed them as an important
part of their product).

> | But of course, there are people that LIKE binaries.  I remember
> | reading of one software `donator' that donates binaries-only so that
> | people can't make `incorrect' patches to his programs.  Sigh.
>...
> So that people could not add a routine that formatted the hard disk whenever
> the user chose "quit", and then distribute the binaries as the ORIG program!
> [can you say Trojan Hourse?  Good, I knew you could.]

Trojan Horses are easier to put in binaries than in sources.

> So that people didn't break the code and then call the donor asking for help.
> (Hi - it's 1am in Detroit, the person on the phone is from CA and he's wondering
> why the program won't compile after he "just changed a few things". :-((( 
> This happened to ME several times, so I know the feeling)

I NEVER answer my phone.  Can you say ANSWERING MACHINE?  Good, I knew
you could.

> So that the donor kept control of his own work.  (Nothing at all wrong with
> that!)  "Sigh."  INDEED!  Sure it is nice to have sources, but to expect them?

I don't EXPECT them.  However, I do feel that on usenet if you want to donate
a program, source is the appropriate medium to donate.  A source can
be used by anyone, a binary only by people that have access to that particular
machine.  [It is even possible to make use of a source that one doesn't
have the compiler for, since a source is also a detailed algorithm description
in a fairly readable form.]

---- BOB (webber@aramis.rutgers.edu ; rutgers!aramis.rutgers.edu!webber)

allbery@ncoast.UUCP (Brandon Allbery) (07/27/87)

As quoted from <300@brandx.rutgers.edu> by webber@brandx.rutgers.edu (Webber):
+---------------
| Well, I certainly didn't advocate buying a compiler.  While I will
| grant that (given sufficient funds) it is easier to buy software than 
| it is to write it (and that most purchasers of Unix machines have had
| the funds to purchase a C compiler), I will not grant that a compiler
| for a language like C is so difficult to write that its lack justifies
| the transmission of binaries years after the computer was marketted.
+---------------

Hmmm.  Will you then teach the engineering department at TDI how easy it is to
write a C compiler?  Given that they don't have one to begin with, it'll have
to be easy to do in GWBASIC.  (Hint:  a dumb parser is guaranteed to botch
the syntax of "typedef", or else the semantics will be wrong.  [I consider
"typedef" to be a botch, but that's another story.])

Or were you thinking of cross-compiling under UN*X?  So the PC-only office
gets screwed (of course, if they're PC only they already _are_ screwed, but
that's yet another topic).  Or did you think that, if I can't afford a $300 C
compiler, I can obviously afford a $10,000 UN*X box?  (And YES, Turbo C
changes things -- some.  If it can be gotten mail-order for $50, then it
may become useful.  But even Turbo Pascal sources aren't enough to make a
program useable by everyone with a PC -- and Pascal is, if anything, _easier_
to parse than C, and has been cheap for years.

+---------------
| But of course, there are people that LIKE binaries.  I remember
| reading of one software `donator' that donates binaries-only so that
| people can't make `incorrect' patches to his programs.  Sigh.
+---------------

This is like claiming that binoculars are considered good by some people only
because they use them to play Peeping Tom, and otherwise they're obviously
useless.  In neither case does the existence of (programmer-idiots|Peeping
Toms) affect the majority of people _properly_ using the implement.  Cheap
shots are bad enough; BOGUS cheap shots are even worse.
-- 
 Brandon S. Allbery, moderator of comp.sources.misc and comp.binaries.ibm.pc
  {{harvard,mit-eddie}!necntc,well!hoptoad,sun!cwruecmp!hal}!ncoast!allbery
ARPA: necntc!ncoast!allbery@harvard.harvard.edu  Fido: 157/502  MCI: BALLBERY
   <<ncoast Public Access UNIX: +1 216 781 6201 24hrs. 300/1200/2400 baud>>

allbery@ncoast.UUCP (Brandon Allbery) (07/29/87)

As quoted from <304@brandx.rutgers.edu> by webber@brandx.rutgers.edu.UUCP:
+---------------
| Don't know about larn in particular, but there is no reason for micro
| compilers to be extra slow.  I assume this is mostly because of too much
| file i/o (i.e., using mainframe design strategies -- the biggest difference
+---------------

WRONG.  You expect a PC/AT to compile stuff as fast as a Sun, you got your
head on wrong.  80x86 DOES NOT RUN AS FAST AS 680x0 (maybe 80386 does now)!
Playing games with I/O won't help.  Playing games with ALGORITHMS (a' la
Turbo C) does help, but is non-trivial in the extreme and NOT doable by
99% of the micro users out there who use comp.binaries.all.

+---------------
| > And let's not forget bells like correct code generation, correct dynamic
| > memory management, correct pointer arithmatic, and of cource, correct
| > (ANSI) language implementation.
| 
| Correct pointer arithmetic (and correct code generation in general) is
| certainly necessary in C.		...			      ANSI
| C is needlessly complicated, I will stick to Kernighan and Ritchie, thank
| you (but you will be welcome to extend/modify the compiler if you want).
+---------------

Two big wrongs here.

(1) "Correct pointer arithmetic" is far hairier than you think.  What would
you compute the number of bytes between 401F:0002 and 402F:0002 to be?  Wrong:
it's _16_ bytes.  Pointer normalization is the reason why there's no such
thing as a working large-(huge-)model C compiler for the 80x86.

(2) ANSI C: "needlessly complicated"???  ANSI C is taking into account the
fact that C needs to be extended in order to do real-world jobs in a reason-
able way.  As well say that K&R C is too complicated, because we can do it
all in assembler.
-- 
 Brandon S. Allbery, moderator of comp.sources.misc and comp.binaries.ibm.pc
  {{harvard,mit-eddie}!necntc,well!hoptoad,sun!cwruecmp!hal}!ncoast!allbery
ARPA: necntc!ncoast!allbery@harvard.harvard.edu  Fido: 157/502  MCI: BALLBERY
   <<ncoast Public Access UNIX: +1 216 781 6201 24hrs. 300/1200/2400 baud>>

cik@l.cc.purdue.edu (Herman Rubin) (07/29/87)

I agree that much of the time a binary program is not the way to transmit
information.  However, neither is C.  There are times when a disassembled
binary program can be easier to modify, and there are times when it is
important that a program not chew up the run time that a large number of
the programs, especially the portable ones, that I have seen, do.  Until
we get languages which allow the programmer to easily use the power of the
machine, and realize that portability may result in factors of more than 10
in run time, we may often need binaries.
-- 
Herman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907
Phone: (317)494-6054
hrubin@l.cc.purdue.edu or pur-ee!stat-l!cik or hrubin@purccvm.bitnet

rsk@j.cc.purdue.edu (Whitewater Wombat) (07/29/87)

In article <560@l.cc.purdue.edu> cik@l.cc.purdue.edu (Herman Rubin) writes:
> There are times when a disassembled binary program can be easier to
> modify [than C], and there are times when it is important that a program
> not chew up the run time that a large number of the programs, especially
> the portable ones, that I have seen, do.

This is not the appropriate forum for a discussion of such issues (one
of the comp.lang groups would probably be better) so I will not go on
and on about this unique view of software methodology.  I will simply
state that while I favor the distribution of sources, I recognize that some
folks simply do not have access to appropriate compilers, and that making new
software available to those people necessitates that it be distributed
in binary form.

We will continue to carry binary groups here unless the traffic becomes
overwhelming.  I would like to urge those folks out there who don't have
a high-level language compiler for their machine to attempt to get one,
however, as I gather that not all Usenet sites are in favor of continuing
to carry the binary groups.
-- 
Rich Kulawiec, rsk@j.cc.purdue.edu, j.cc.purdue.edu!rsk
PUCC News Administrator

lear@aramis.rutgers.edu (eliot lear) (07/30/87)

Why not make a PD C compiler the last binary posting??  I don't really
care whether there are binary groups or not, but propagating a C
compiler is NO big deal, especially one that is public domain.  How do
people get their modem programs (kermit) to talk to the outside world?
-- 
Eliot Lear
Rutgers University Department of Mathematics
[lear@rutgers.edu]

john@xanth.UUCP (John Owens) (08/04/87)

In article <1164@aramis.rutgers.edu>, lear@aramis.rutgers.edu (eliot lear) writes:
> Why not make a PD C compiler the last binary posting??  I don't really
> care whether there are binary groups or not, but propagating a C
> compiler is NO big deal, especially one that is public domain.  How do
> people get their modem programs (kermit) to talk to the outside world?

Funny that you mention Kermit.  The MS-DOS Kermit for the IBM PC is in
assembler, not C.  A great deal of the programs posted in the pc
binaries group are not written in C.  Even if there could be a perfect
C compiler with a wonderful library that could compile everything that
anyone ever wrote, it wouldn't do it.  And what about programs that
are not written by people on the net, but that are picked up from BBSs
and such and posted here - noone has the source for those.

I'm sure the same is true of the other micros with binary groups.

Sorry, binary groups are still necessary.

-- 
John Owens		Old Dominion University - Norfolk, Virginia, USA
john@ODU.EDU		old arpa: john%odu.edu@RELAY.CS.NET
+1 804 440 4529		old uucp: {decuac,harvard,hoptoad,mcnc}!xanth!john