From owner-freebsd-chat Sat Jan 4 10:41:23 2003 Delivered-To: freebsd-chat@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8C1E037B405 for ; Sat, 4 Jan 2003 10:41:20 -0800 (PST) Received: from lariat.org (lariat.org [63.229.157.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9575043ED4 for ; Sat, 4 Jan 2003 10:41:19 -0800 (PST) (envelope-from brett@lariat.org) Received: from mustang.lariat.org (IDENT:ppp1000.lariat.org@lariat.org [63.229.157.2]) by lariat.org (8.9.3/8.9.3) with ESMTP id LAA11889; Sat, 4 Jan 2003 11:41:08 -0700 (MST) X-message-flag: Warning! Use of Microsoft Outlook renders your system susceptible to Internet worms. Message-Id: <4.3.2.7.2.20030104112345.02a48b70@localhost> X-Sender: brett@localhost X-Mailer: QUALCOMM Windows Eudora Version 4.3.2 Date: Sat, 04 Jan 2003 11:41:04 -0700 To: Terry Lambert , Cliff Sarginson From: Brett Glass Subject: FreeBSD's use of GCC (Was: Bystander shot by a spam filter.) Cc: freebsd-chat@FreeBSD.ORG In-Reply-To: <3E13434F.D3F7A35D@mindspring.com> References: <200212312041.gBVKfr183480@hokkshideh2.jetcafe.org> <3E120659.3D60EB30@mindspring.com> <20030101140530.GA11468@raggedclown.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Sender: owner-freebsd-chat@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org At 12:36 PM 1/1/2003, Terry Lambert wrote: >Seriously, though, there are a number of possible compilers, >but FreeBSD keeps adding constructs and removing portability, >and, in general, getting more and more GCC dependent, as time >goes on (hmmm... RMS paying pwople off?...). No, it's a combination of two things. First of all, RMS and the FSF engage in "embrace and extend" tactics (which they condemn when Microsoft uses them.... Hmmm.). Make use of any of the unique quirks of GCC, or its internal assembler with its "reversed" syntax, and before long you literally have to port your code to get it to compile on any other C compiler. Secondly, the FreeBSD project is insufficiently vigilant regarding the issue of dependency on GPLed code. Of the BSDs, FreeBSD has the most GPLed code, and would be the most crippled if that code were removed. This is sad, IMHO, because it prevents FreeBSD from being truly free. Most of FreeBSD may be licensed under the BSD License, but what good is that if one can't install it on one's machine without bringing in the GPL? OpenBSD pretty much avoids the use of GPLed code except in the toolchain. I'd like to see them take an even tougher stance, and eject the GPL from their code base altogether. But while they removed ipfilter over a much smaller licensing issue, they have not done the same with GPLed code. Why? One can only speculate that it's because GCC is now so dominant that other compilers just aren't obtainable... and also because so much of the third party software for OpenBSD is dependent upon GCC as well. A vicious cycle that needs breaking. >In any case, a >compiler is almost trivial; what's hard, and takes specialized >knowledge, is optimizing, and code generation, for more than >one CPU family. True. >RMS' great contribution in this regard is *not* the compiler >itself; what he contributed there is actually a mediocre set >of code, that other people then worked on to turn it into what >it is today. In fact, he had to eat crow on EGCS to get it to >be only a version successor to GCC, rather than a competing >project. So RMS's contribution was the project, itself: the >difficulty of writing a compiler is actually irrelevent to the >discussion. Also true. It's amazing how often one hears RMS described as a master coder, when in fact the original GCC was awful. >It's amazing to me the number of people who claim to study the >Open Source Software phenomenon, yet don't understand the basic >principles through which it actually functions, well enough to >start, or help start, a project and have it persist. It's simple: It's what I call the "Yosemite Sam Principle." Remember the classic cartoon in which Yosemite Sam attempts to get Bugs Bunny to blow himself up by playing a booby-trapped piano? Sam challenges Bugs to play the "pie-anner," which is rigged to explode when a particular key is pressed. Bugs plays the tune from the sheet music, but keeps hitting a wrong note and doesn't set off the explosive. Finally, the frustrated Sam leaps in front of Bugs, yelling, "No, you stupid rabbit! Like this!" and plays the tune correctly. The explosive goes off. This is one of the secrets of open source: One of the ways to get people to do something right for you is to do it wrong yourself and let other people's egos intervene. They'll soon do it better than you could (though, in the case of GCC, not necessarily as well as it could be done). --Brett Glass To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-chat" in the body of the message