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