Slashdot Mirror


GCC Compiler Finally Supplanted by PCC?

Sunnz writes "The leaner, lighter, faster, and most importantly, BSD Licensed, Compiler PCC has been imported into OpenBSD's CVS and NetBSD's pkgsrc. The compiler is based on the original Portable C Compiler by S. C. Johnson, written in the late 70's. Even though much of the compiler has been rewritten, some of the basics still remain. It is currently not bug-free, but it compiles on x86 platform, and work is being done on it to take on GCC's job."

546 comments

  1. "Nothing for you to see here" indeed... by RLiegh · · Score: 4, Interesting

    I notice that TFS doesn't say that anyone is actually able to compile anything (other than PCC) with it. The BSD folks would love to have a BSD-licensed drop-in replacement for GCC; but it doesn't sound like this is it. Not yet at least.

    Wake me up when you're able to use PCC instead of GCC to do a 'make world' (or ./build.sh or whatever).

    1. Re:"Nothing for you to see here" indeed... by DiegoBravo · · Score: 3, Insightful

      ...Wake me up when you're able to use PCC instead of GCC to do a 'make bzImage'

    2. Re:"Nothing for you to see here" indeed... by Anonymous Coward · · Score: 1, Informative

      In the story on Undeadly, one of the comments states that he was able to build OpenBSD's source for bin usr.bin usr.sbin & sbin with pcc. Seems just a little more until at least OpenBSD can be built using it (PCC is missing __attributes__ & some asm stuff IIRC)

    3. Re:"Nothing for you to see here" indeed... by Sigismundo · · Score: 2, Interesting

      Indeed, the linked article says that PCC is 5-10 times faster than GCC, but currently performs only one optimization... What use is speed of compilation of the binaries produced are slower?

    4. Re:"Nothing for you to see here" indeed... by MissP · · Score: 3, Insightful

      With respect to

      "The BSD folks would love to have a BSD-licensed drop-in replacement for GCC"

      could somebody provide a reference to verify that "the BSD folks" do in fact have such a desire?

      Thanks!

    5. Re:"Nothing for you to see here" indeed... by realthing02 · · Score: 1

      Testing/development work?

      Seriously, i can't think of many good reasons, aside that you can build something faster, and possibly test it in a more timely fashion. i guess it's like using a cheap hammer versus a really nice hammer that hits the nail for you.

    6. Re:"Nothing for you to see here" indeed... by Score+Whore · · Score: 1

      What use is speed of compilation of the binaries produced are slower?


      You know GCC doesn't generate the best code in the world, right? I take it you use intel's compiler for everything on your linux system?
    7. Re:"Nothing for you to see here" indeed... by TheRaven64 · · Score: 5, Interesting
      This has been on Undeadly for a few days now. There was a very informative post by Marc Espie (who maintains GCC on OpenBSD) explaining this.

      This has been a long time coming. If you've ever looked at GCC code, you'll be familiar with the feeling of wanting to claw your eyes out (I had to for an article on the new Objective-C extensions *shudder*). I am somewhat surprised it's PCC not LLVM, but it makes sense. OpenBSD wants a C compiler in the base system, that can compile the base system and produces correct code. Support for C++, Objective-C, Java and Fortran would all be better off in ports. PCC is faster than GCC, smaller than GCC, more portable than GCC, easier to audit than GCC, and already compiles the OpenBSD userspace. I wouldn't be surprised if it replaces GCC in the OpenBSD base system soon. If it does, GCC (or maybe LLVM) will still probably be one of the first things I install from ports, but I'd still regard it as a good idea.

      --
      I am TheRaven on Soylent News
    8. Re:"Nothing for you to see here" indeed... by Anonymous Coward · · Score: 0

      "I take it you use intel's compiler for everything on your linux system?"

      No. It has a funny limitation. It seems to only work on x86. And my Linux runs on a different architecture.

    9. Re:"Nothing for you to see here" indeed... by Oswald · · Score: 1
      Typical Slashdot. You get modded +5 for a comment about the summary. Thanks for the insight.

      I wonder what the article has to say.... Oh, wait:

      But, as an example, complex programs like ksh and ssh run (linked against libs built with gcc)!

    10. Re:"Nothing for you to see here" indeed... by BokLM · · Score: 1

      PCC it 5-10 times faster than GCC when it has been built with GCC or PCC ?

    11. Re:"Nothing for you to see here" indeed... by BokLM · · Score: 1

      Who said GCC generate the best code in the world ? There's something in the middle between generating the best code in the world and generating code with no optimisation at all.

    12. Re:"Nothing for you to see here" indeed... by j-pimp · · Score: 3, Interesting

      ...Wake me up when you're able to use PCC instead of GCC to do a 'make bzImage'

      You bring up a good point. For years I have been looking for an open source compiler thats about the same quality as GCC, but is anything but GCC. I'm not too picky about the politics, as long as there a different set of politics from the GCC politics. I had great hope for Open Watcom, but the license was bad enough for debian to consider it non free, and they are not actively trying to be an alternative to GCC. Its quite a shame, but I really don't blame them. Technically Watcom is about ready for primetime on linux,they just need to get enough people to periodically try to compile there pet open source linux program with it and send a "I cant get this to work" mail to the list, but no one seems to care. PCC, on the other hand has a much larger set of people that have a reason to like PCC for reasons other than its not gcc./p>

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    13. Re:"Nothing for you to see here" indeed... by Mr+Z · · Score: 1

      I'd lay money on "10x if compiled with GCC" and "5x if compiled with PCC". ;-)

    14. Re:"Nothing for you to see here" indeed... by Richard_at_work · · Score: 3, Informative

      At one point in GCC's history (infact, not all that long ago), you couldn't even use GCC to do that - there was a big issue about Red Hat shipping a version of GCC by default that could not compile the Linux kernel, you had to install another earlier version if you wanted to do that.

    15. Re:"Nothing for you to see here" indeed... by Sam · · Score: 2, Interesting

      It already compiles the majority of the OpenBSD source tree, and did so before it was imported. Work is now going on to make it compile everything.

      --
      29 Ways to decline a Date : 10 - I'd love to go out with you but I'm attending the opening of my garage door.
    16. Re:"Nothing for you to see here" indeed... by MoxFulder · · Score: 1

      Hehehe, that's a really good point :-) How much faster does PCC run when built with the (optimizing!) GCC compiler, as opposed to itself... which barely does any optimization.

    17. Re:"Nothing for you to see here" indeed... by synthespian · · Score: 1

      The page you linked to says a Linux and a FreeBSD port are undergoing.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    18. Re:"Nothing for you to see here" indeed... by TheRaven64 · · Score: 1

      For all it's much vaunted optimisation, I've rarely seen GCC get more than a 10% speedup going from -O0 to -O3. C doesn't benefit as much from an optimising compiler as many other languages. It is designed to be close to the metal, which dramatically reduces the number of optimisations the compiler can perform. About the only thing that I've seen get a significant performance boost is autovectorisation, and that requires the developer to have already laid out their memory and accesses in a vectorisation-friendly way. If you're doing that with GCC, you can use the vector extensions and write the vector code directly, and then you don't need the compiler to do anything clever at all. Oh, and you can't use these in kernel space usually because the kernel typically doesn't bother saving and restoring the state of the vector unit for system calls.

      --
      I am TheRaven on Soylent News
    19. Re:"Nothing for you to see here" indeed... by szo · · Score: 3, Interesting

      I don't follow politics, so care to explain what's wrong with gcc's politics? Or, what _is_ gcc's politics?

      --
      Red Leader Standing By!
    20. Re:"Nothing for you to see here" indeed... by j-pimp · · Score: 2, Interesting

      The page you linked to says a Linux and a FreeBSD port are undergoing.

      The linux compiler has worked at times and they went as far as writing a binary called owcc that takes standard posix flags for cc and executes wcc with the equivilant args. You can get working linux binaries and they will compile non trivial code if you try hard enough.

      The point is that yes Watom lacks in some areas technically. However, and this is especially true on windows where it works great, it more of an issue of lack of interest that makes it a GCC alternative.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    21. Re:"Nothing for you to see here" indeed... by MoxFulder · · Score: 1

      For all it's much vaunted optimisation, I've rarely seen GCC get more than a 10% speedup going from -O0 to -O3. You must have only used x86... where the processor HARDWARE does a lot of work to predict branches, speculatively execute code, execute variable numbers of instructions per clock, etc. In the RISC world, nearly all the optimization comes from the compiler. For example, let me try compiling this simple loop using GCC 4.0.3 for the original MIPS instruction set:

      int main(int argc, char **argv)
      {
        int i,x=0;
        for (i=0; i<100; i++)
          x+=i;
      }
      With no optimization (-O0), the loop body contains 14 instructions, including two load-from-memory operations and two possible branches on each iteration. With highest optimization (-O3), the loop body takes only 2 instructions, with both variables stored in registers. Also, the code SIZE is reduced, allowing more code to fit in cache, which is often small in the embedded systems where MIPS processors are most used today. Since each instruction takes one cycle (assuming no cache miss), the optimized version will run 7 times faster than the unoptimized version.

      Obviously, this is a somewhat contrived example, but the point is that optimization is crucial on RISC hardware where the processor itself is simple and doesn't try to do too much fancy run-time work to speed up the code. And frankly, the more I learn about RISC, the more I wish we were all running MIPS boxes... the basic philosophy is "don't do anything in the hardware that could be done just as well in the compiler." This leads to extremely simple processor designs (=> higher potential speed and lower cost), better real-time performance, fewer quirks, and more problems pushed into the software arena where they are easier to work on.
    22. Re:"Nothing for you to see here" indeed... by budgenator · · Score: 1

      Otto Moerbeek (otto@) wrote to the pcc mailing list:

              with some minor modifications to our source tree I'm able to build (and run) large parts of bin, sbin, usr.bin and usr.sbin of openbsd. src/lib needs some not yet available features, mostly asm related stuff.

      That's not too shabby.
      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    23. Re:"Nothing for you to see here" indeed... by synthespian · · Score: 4, Informative
      Here's the content (just so it stays in this Slashdot thread and gets archived here).

      Re: BSD Licensed PCC Compiler Imported (mod 21/25)
      by Marc Espie (213.41.185.88) (espie@openbsd.org) on Sun Sep 16 13:28:48 2007 (GMT)
                  > > I am saying think this through and carefully. Rewriting a giant suite of programs just because you don't agree with the philosophy behind it sounds awful to people who have no stakes in BSD licenses.
      >
      > It's not just the licence that is a concern about the GCC suite, it's dropping support for hardware that OpenBSD supports, it's fluctuating compilation quality and it's licence are all matters for concern to users.

      The licence is just the top of the iceberg.

      GCC is developed by people who have vastly different goals from us. If you go back and read the GCC lists, you'll notice several messages by me where I violently disagree with the direction it's following. Here is some *more* flame material.

      - GCC is mostly a commercial compiler, these days. Cygnus software has been bought by redhat. Most GCC development is done by commercial linux distributors, and also Apple. They mostly target *fast* i386 architectures and PowerPC. A lot of work has been done on specmarks, *but* the compiler is getting bigger and bigger, and slower and slower (very much so).

      - GCC warnings are not *really* useful. The -Wall flag shows many right things, and quite a few wrong issues.

      - There is a lot of churn in GCC which ends up with it no longer supporting some architectures that are still relevant to us.

      - The whole design of GCC is perverted so that someone cannot easily extract a front-end or back-end. This is broken by design, as the GPL people do believe this would make it easier for commercial entities to `steal' a front-end or back-end and attach it to a proprietary code-generator (or language). This is probably true. This also makes it impossible to write interesting tools, such as intermediate analyzers. This also makes it impossible to plug old legacy back-ends for old architectures into newer compilers.

      - As a result, you cannot have the new interesting stuff from newer GCC without also losing stuff... every GCC update is an engineering nightmare, because there is NO simple choice. You gain some capabilities, and you also lose some important stuff.

      - it's also very hard to do GCC development. Their branching system makes it very likely that some important work is falling between the cracks (and this happens all the time). If you develop code for GCC, you must do it on the most recent branch, which is kind of hard to do if your platform is currently broken (happens *all the time* if you're not running linux/i386). Even when you conform, it's hard to write code to the GNU coding standards, which are probably the most illegible coding guidelines for C. It's so obvious it was written by a lisp programmer. As a result, I've even lost interest into rewriting and getting in the GCC repository a few pieces.

      - some of their most recent advances do not have a chance to work on OpenBSD, like preparsed includes, which depend on mmap() at a fixed location.

      - there are quite a few places in GCC and G++ where you cannot have full functionality without having a glibc-equivalent around.

      - some of the optimisation choices are downright dangerous, and wrong for us (like optimizing memory fills away, even if they deal with crypto keys).

      - don't forget the total nightmare of autoconf/libtool/automake. Heck, even the GCC people have taken years to update their infrastructure to a recent autoconf. And GCC is *the only program in the ports tree* that actually uses its own libtool. Its configuration and reconfiguration fails abysmally when you try to use a system-wide libtool.

      I could actually go on for pages...

      I've actually been de facto maintainer of GCC on OpenBSD for a few years by now, and I will happily switch to another compiler, so frustrating has been the road with GCC.
      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    24. Re:"Nothing for you to see here" indeed... by j-pimp · · Score: 2, Interesting

      I don't follow politics, so care to explain what's wrong with gcc's politics? Or, what _is_ gcc's politics?

      I honestly don't know. However, it is an old project maintained by people. They have very specific ideas of how things should work, just like linus has very specific ideas about development (no C++ code in the kernel, you could use something besides GIT, but you would be an idiot, etc.)

      Now I don't know much about the inner workings of GCC or Watcom, but I do know this. Several years ago I tried making a linux to windows cross compiler and failed. I think I put a decent amount of effort into my attempts and I definitely knew how toproduce a standard linux hosted linux targeted instance of GCC that would produce working binaries. A few years later I installed watcom and while it did not support Linux, I could install already working binaries that allowed me to compile dos, windows, os/2 and netware binaries from my windows machine.

      Now the reasons for this are largely political. GCC works just fine as a cross compiler, I'm sure today I could get it to work now that I have written a lot more code, compiled more tarballs, and generally know more than I did then. I was able to get a freebsd to windows cross compiler working just fine thanks to the ports collection. Watcom never got a ready for prime time linux compiler, but what they shipped to end users as "experimental" always was a windows hosted compiler targeting linux.

      Now there is no technical reason that gcc or a third party can't make the cross compiling process simpler, but other than poor college students that like to experiment, anyone who needs a cross compiler either can do it themselves, can hire someone that can, or has to do a lot of hoop jumping. Watcom, being open sourced abandon ware, creates binariy releases. Being it currently only supports one cpu and a handful of binary formats, the build system happens to build a compiler for each possible target.

      It all comes down to people and there opinions, and that by definition is politics. The people that use the products and control the development have different ideas and goals, and this reflects in the finished products.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    25. Re:"Nothing for you to see here" indeed... by Anonymous Coward · · Score: 0

      With highest optimization (-O3), the loop body takes only 2 instructions Actually, with highest optimization (including full-program optimization), the whole function is optimized out since it doesn't do anything (i.e., it doesn't store anything and the value of x is never used).
    26. Re:"Nothing for you to see here" indeed... by Kartoffel · · Score: 1

      It sounds to me like PCC appeals to the OpenBSD project because it's simple, non-optimizing, and (hopefully) completely verifiable. There's no licensing problem related to using gcc to build *BSD systems. Seems like they just want a bare-bones compiler for the sake of sanity checking.

      There are plenty of other open source C compilers already, though none that are "owned" by the OpenBSD foundation: TenDRA (BSD), Pathscale (LGPL/proprietary), LCC (MIT), Tiny C (LGPL).

    27. Re:"Nothing for you to see here" indeed... by pthisis · · Score: 2, Informative

      Several years ago I tried making a linux to windows cross compiler and failed.


      FWIW, if your issue was GCC politics that's pretty much what caused the egcs split (and re-merge eventually, with a new philosophy and maintenance crew in charge of GCC). So if you looked at things prior to the gcc 2.95 era, you were looking at a different set of maintainers (and politics/philosophy/etc) than what's there now.

      I think I put a decent amount of effort into my attempts and I definitely knew how toproduce a standard linux hosted linux targeted instance of GCC that would produce working binaries. A few years later I installed watcom and while it did not support Linux, I could install already working binaries that allowed me to compile dos, windows, os/2 and netware binaries from my windows machine.

      Now the reasons for this are largely political. GCC works just fine as a cross compiler, I'm sure today I could get it to work now that I have written a lot more code, compiled more tarballs, and generally know more than I did then. I was able to get a freebsd to windows cross compiler working just fine thanks to the ports collection. Watcom never got a ready for prime time linux compiler, but what they shipped to end users as "experimental" always was a windows hosted compiler targeting linux.

      Now there is no technical reason that gcc or a third party can't make the cross compiling process simpler, but other than poor college students that like to experiment, anyone who needs a cross compiler either can do it themselves, can hire someone that can, or has to do a lot of hoop jumping.


      Last time I did it it was pretty straightforward (as straightforward as cross-compilation can be), and the documentation included worked fine.

      The problem is that to get a full cross-compiler setup isn't just a gcc problem; you need a libc (with headers), and a linker (binutils) as well, and libc is a particular pain.

      I had no problems in the 2.96 era or thereabouts building a linux->windows cross-compiler using only the GCC-included instructions; I basically did:
      1. Build binutils (linker), using "./configure --target=i386-mingw32 --prefix=/usr/local" or whatever target you're using
      2. untar pre-built libc/headers in /usr/local
      3. Build gcc using "./configure --target=i386-mingw32 --prefix=/usr/local --with-gnu-as=i386-redhat-linux".

      The flags might be slightly wrong as that's from memory. Note that I didn't bother bootstrapping libc; if you want, that's also doable; see, e.g., http://www.libsdl.org/extras/win32/cross/README.txt if you want a simple hand-holding script to do it for you.
      --
      rage, rage against the dying of the light
    28. Re:"Nothing for you to see here" indeed... by VGPowerlord · · Score: 2, Informative

      As I recall, that was version 2.96, which was actually the development branch for 3.0. Not surprisingly, development versions have bugs, which is why they shouldn't be used by mainstream users.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    29. Re:"Nothing for you to see here" indeed... by MoxFulder · · Score: 1

      Okay, sure, but the data I gave show the highest optimization that ACTUALLY COMPUTES THE RESULT... I could have trivially made it not optimize out the function by having main() return x.

    30. Re:"Nothing for you to see here" indeed... by Not+The+Real+Me · · Score: 0, Troll

      "Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts"

      The more I read about GPL v3, the more poisonous and viral it appears to be. Overall, the BSD and MIT licenses appear to be the most reasonable. The revival of PCC is a direct response to GPL v3 since GCC (and much of the software hosted at FSF) will more than likely migrate to GPL v3, which seems to make many of the BSD folks quite nervous.

    31. Re:"Nothing for you to see here" indeed... by j-pimp · · Score: 1

      Several years ago I tried making a linux to windows cross compiler and failed.


      FWIW, if your issue was GCC politics that's pretty much what caused the egcs split (and re-merge eventually, with a new philosophy and maintenance crew in charge of GCC). So if you looked at things prior to the gcc 2.95 era, you were looking at a different set of maintainers (and politics/philosophy/etc) than what's there now.

      Its not that I care about the particulars of GCCs politics. I just want there to be multiple sets of open source compiler politics. I'm glad that egcs was a temporary split. I started using linux around the point of it being reemerged. However, I want there to be another group of people trying another set of ideas, challenging a few sacred cows that GCC holds dear. I don't know what those sacred cows are, but I assume that those who worked on Open Watcom, PCC and GCC have different ideas on how a compiler should work and as a result we get a wider pool of ideas being implemented. This means some duplication of effort, but in the end competition is good.

      I had no problems in the 2.96 era or thereabouts building a linux->windows cross-compiler using only the GCC-included instructions; I basically did:
      1. Build binutils (linker), using "./configure --target=i386-mingw32 --prefix=/usr/local" or whatever target you're using
      2. untar pre-built libc/headers in /usr/local
      3. Build gcc using "./configure --target=i386-mingw32 --prefix=/usr/local --with-gnu-as=i386-redhat-linux".

      The flags might be slightly wrong as that's from memory. Note that I didn't bother bootstrapping libc; if you want, that's also doable; see, e.g., http://www.libsdl.org/extras/win32/cross/README.txt if you want a simple hand-holding script to do it for you.

      I think I was missing the prebuilt libc part. If thats all that I was missing I'm going to be quite angry. The long howto that explains the origin of the term canadian cross compiler does not mention that one small detail. Perhaps I'll give it a try.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    32. Re:"Nothing for you to see here" indeed... by ncc74656 · · Score: 1

      Several years ago I tried making a linux to windows cross compiler and failed. I think I put a decent amount of effort into my attempts and I definitely knew how to produce a standard linux hosted linux targeted instance of GCC that would produce working binaries.

      A while back, I needed to do that at work. This is what I ended up doing, which was derived somewhat from this. In case Multiply doesn't let you in without registration, I'll copy the message here. (Newer versions might also work; what's given here is just what was current at the time. These instructions also assume you're using Gentoo. Step 2 in the toolchain setup would be sufficient by itself for cross-compiling Windows command-line apps or (maybe) for writing directly to the Win32 API.)

      toolchain setup

      1. build KDevelop 3.4.0:
        emerge \>=kdevelop-3.4
      2. build Windows cross-compile toolchain:
        echo sys-devel/crossdev ~amd64 >>/etc/portage/package.keywords
        emerge crossdev
        crossdev i586-mingw32msvc
      3. download wxWidgets 2.8 from www.wxwidgets.org
      4. revised again: build wxWidgets for Linux (assumes GTK2 and libgnomeprint are already installed):
        ./configure --prefix=/usr/local/x86_64-pc-linux-gnu --with-gnomeprint && make && make install
        echo LDPATH=/usr/local/x86_64-pc-linux-gnu/lib >/etc/env.d/80wxWidgets-2.8.0
        env-update
      5. build wxWidgets for Windows:
        ./configure --prefix=/usr/local/i586-mingw32msvc --host=i586-mingw32msvc --target=i586-mingw32msvc --with-msw && make && make install

      KDevelop build configuration (common)

      1. create a new wxWidgets project
      2. exit KDevelop
      3. load foo.kdevelop into a text editor
      4. copy "debug" configuration XML block to a new "debug-win32" config block (need to do this because the "add configuration" button is always grayed out...grr)

      KDevelop build configuration (Linux)

      • configure arguments:
        --enable-debug=full --host=x86_64-pc-linux-gnu
      • build directory:
        debug
      • linker flags:
        `/usr/local/x86_64-pc-linux-gnu/bin/wx-config --libs`
      • environment variables:
        PATH=/usr/local/x86_64-pc-linux-gnu/bin:${PATH}
      • CFLAGS:
        `/usr/local/x86_64-pc-linux-gnu/bin/wx-config --cflags`
      • CXXFLAGS:
        `/usr/local/x86_64-pc-linux-gnu/bin/wx-config --cxxflags`

      (The loader config that was previously given here is now taken care of during wxWidgets installation in a more Gentoo-compatible manner.)

      KDevelop build configuration (Windows)

      • configure arguments:
        --enable-debug=full --host=i586-mingw32msvc --target=i586-mingw32msvc --with-msw
      • build directory:
        debug-win32
      • linker flags:
        `/usr/local/i586-mingw32msvc/bin/wx-config --libs`
      • environment variables:
        PATH=/usr/local/i586-mingw32msvc/bin:${PATH}
      • CFLAGS:
        `/usr/local/i586-mingw32msvc/bin/wx-config --cflags`
      • CXXFLAGS:
        `/usr/local/i586-mingw32msvc/bin/wx-config --cxxflags`

      will need to copy DLLs from /usr/i586-mingw32msvc/usr/bin and/usr/local/i586-mingw32msvc/lib into same directory as foo.exe

      When I went to try out the wxWidgets printing demo, the Linux build wouldn't print properly at first. Using libgnomeprint instead of direct PostScript fixed that problem. If your Linux box uses CUPS (and it probably does), libgnomeprint will enable users to tweak printer settings from within the app. Without it, wxWidgets will just (incorrectly) generate PostScript and hand it off to lpr. On Windows, I'm guessing wxWidgets just uses GDI calls, so that config is unaffected.

      --
      20 January 2017: the End of an Error.
    33. Re:"Nothing for you to see here" indeed... by Anonymous Coward · · Score: 1, Interesting

      I suspect for the most part it's the usual license zealotry that seems to have reached a peak (or is that a nadir) over the last few months.

      If this really was about getting a faster, more reliable, compiler, that supports more architectures, an older version of GCC would have been forked. PCC is a particularly bad idea:

      - Poor separation of the front and back-ends means it's only ever going to be a C compiler, unlike GCC.
      - Ancient code, not even ANSI C99 level. By the time it's compliant, expect it to be a mess.
      - Speed of compilation at some cost: the compiler does almost no optimizations, not even the uncontroversial ones. Code generated is large and slow. Expect the number of supported architectures to be poor, not because it can't technically generate code for a particular target, but because the timings and size of the kernel would preclude it from running on anything useful.
      - Poor multiarchitecture support (unless you're limiting yourself to 1970s systems and ix86.) This will need to be added before it can be considered credible.

      I mean, that last one's the biggest joke. The complaint is that GCC doesn't support enough architectures, so you're switching to PCC? WTF?

      And why does GCC drop less popular architectures from time to time? Answer: only because nobody is volunteering to maintain them. So, of the two options:

      - Contribute to GCC by maintaining output options for architectures you want

      or

      - Modify an old, woefully outdated, compiler that barely supports most of the architectures you want to support them

      people are seriously picking the latter?

      The proponents of PCC here are following an agenda. It's nice to see antique code given a polish and made to work from time to time, but actually switching OpenBSD to this thing, as proposed here by numerous contributors, is so completely out of left field that I can only assume this is pretty much another salvo in the unnecessary war against the FSF.

      Bizarre.

    34. Re:"Nothing for you to see here" indeed... by j-pimp · · Score: 1

      I'd like to be able to accomplish the same on any linux distro, as in not using packages. I'm glad gentoo got it working with there package manager, but I was doing this before gentoo was created and at the moment I am a fedora man. At the time I was attempting this I was a slackware man.

      I don't have a practical use for cross compiling at the moment, but perhaps someday I will.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    35. Re:"Nothing for you to see here" indeed... by m50d · · Score: 1

      That's not a good test, given that Linux depends on gcc-isms. It's not written in any standardised form of C, which would be a far fairer test.

      --
      I am trolling
    36. Re:"Nothing for you to see here" indeed... by GooberToo · · Score: 1

      This is the compiler project I get excited about. Hopefully its progress will continue rapidly advancing. From what I understand, unlike GCC and PCC, extending llvm is straight forward, much easier to understand, and just code code rather than decades of retrofit as is GCC.

      Take that with a grain of salt as this is not a first hand account.

    37. Re:"Nothing for you to see here" indeed... by fatphil · · Score: 1

      I get between 1.5x to 2.0x improvement between -O0 and -O2 (-O3 is rarely much faster)

      E.g. here's the last thing I built, a simple AI for playing the board game /EinStein w&#252;rfelt nicht!/.
      (it plays online at http://www.littlegolem.net/ )

      -O0

      phil@duospaz:~/projects/games/EinStein$ time ./esbot.core2 -8 red 2 @@BMGK SXY@R@
      moveRedEval(@@BMGK,SXY@R@,8) XR = 1.80859
      moveRedEval(@@BMGK,SXY@R@,8) XW = 0.83689
      moveRedEval(@@BMGK,SXY@R@,8) XS = -0.35817
      Selected=XS Score=-0.35817

      user 0m18.777s

      -O3

      phil@duospaz:~/projects/games/EinStein$ time ./esbot.core2 -8 red 2 @@BMGK SXY@R@
      moveRedEval(@@BMGK,SXY@R@,8) XR = 1.80859
      moveRedEval(@@BMGK,SXY@R@,8) XW = 0.83689
      moveRedEval(@@BMGK,SXY@R@,8) XS = -0.35817
      Selected=XS Score=-0.35817

      user 0m8.817s

      That's entirely CPU bound (all fits in L1), and loads of 256-byte lookups, and some simple FPU evaluations.

      --
      Also FatPhil on SoylentNews, id 863
    38. Re:"Nothing for you to see here" indeed... by DragonWriter · · Score: 1

      The complaint is that GCC doesn't support enough architectures, so you're switching to PCC?


      You misunderstand the complaint.

      The complaint is that it is too difficult to support GCC on those architectures. Obviously, this wouldn't be an issue if the GCC project itself was supporting them, but the idea is to have something that the the OpenBSD project can itself support. If the code is clean and maintainable, even if it is a long way from being current, it may be easier to get it clean, maintainable, and current than it would be to take something else that it more current but less clean and maintainable.

      The proponents of PCC here are following an agenda.


      The agenda is freeing OpenBSD from dependence on a project with its own, incompatible, agenda.

    39. Re:"Nothing for you to see here" indeed... by Anonymous Coward · · Score: 0

      It all looks to me the ultimate objective of the BSD is to eventually make their stuff propietary once it gets market, thank god for the GPL and that nobody cares on their dumb pro MS licenses.

    40. Re:"Nothing for you to see here" indeed... by Crayon+Kid · · Score: 2, Insightful

      Please explain how the license for GCC affects code compiled by it.

      --
      i ate crayons when i was a kid and now i have two braincells and the blue ones taste nicer
    41. Re:"Nothing for you to see here" indeed... by Anonymous Coward · · Score: 0

      It was also a long time ago.

    42. Re:"Nothing for you to see here" indeed... by ushering05401 · · Score: 1

      "Please explain how the license for GCC affects code compiled by it."

      I am not sure what you are suggesting here... Should people who feel that the GPL license is heading in a disastrous direction just STFU? It really doesn't matter if the new license affects the compiled code.

      Adoption of the license is driving a serious wedge into a community that was driving change and making huge strides in mainstream tech markets. IMHO the GPLv2 is one of the greatest innovations in the field of modern tech. The GPLv3 is worse than useless, it is harmful.

      It really doesn't matter how the compiled code is affected. It is the message to the community that matters. In this case the message is that BSD licensing looks better every day.

    43. Re:"Nothing for you to see here" indeed... by mrsteveman1 · · Score: 1

      It doesn't. The BSD people hate GCC because IT is GPL licensed, they have been replacing GPL software with BSD software for a while. This is only partially because of the GPLv3, but v3 has made them work a bit harder obviously.

      PCC, if it does turn into a good compiler, is nothing but a good thing for everyone, it means competition where there previously was none.

      BSD people tend to just want recognition for their work and little else, they would probably say that they want to make software literally free without restrictions of any kind.

    44. Re:"Nothing for you to see here" indeed... by andreyw · · Score: 1

      http://www.tendra.org/about/

      TenDRA is a three clause BSD-licensed C and C++ compiler, with C++ STL support forthcoming. The original Crown copyright from DERA is still present and the further expansion of TenDRA is under the BSD license.

      TenDRA uses the Architecture Neutral Distribution Format (ANDF) as its intermediate language. This intermediate language focuses on abstracting into a high level language instead of an assembler-like language as is common with most compilers (think RTL). This makes TenDRA powerful in code verification and checking.

      Aside from the TenDRA compiler suite the TenDRA Project also features some other projects, all BSD-licensed. The TenDRA Suite Purpose Overview document tours the most significant of these.

    45. Re:"Nothing for you to see here" indeed... by mrsteveman1 · · Score: 2, Insightful

      What will actually happen is GCC will get forked at GPLv2, if the majority of people are behind the v2 fork the v3 version will become irrelevant.

      I do like the fact that we will (hopefully) have 2 good compilers, but people aren't going to simply start licensing things under BSD just because of GPLv3, they will just keep using GPLv2 because they were using GPL for a reason.

    46. Re:"Nothing for you to see here" indeed... by donaldm · · Score: 1

      I have used many commercial compilers over the years and I don't remember the being told that if I use a particular compiler that the code I wrote is now subject to the licensing of that compiler. If you read the GPL 2 or even GPL 3 properly it does not say that you have to license any software you wrote (assuming from first principles) to the GPL unless the original software that you are modifying or collaborating on is licensed under the GPL.

      Basically if you write software from first principles and use any compiler such gcc or commercial compiler for that matter you can license that software under any license you want. You can even give it away if you want but don't expect anything back from people who use and modify it or even make it proprietary, I am afraid that sort of expectation and nievity died in the mid 1980's.

      --
      There ain't no such thing as proprietary standards only proprietary formats. Standards are by definition open.
    47. Re:"Nothing for you to see here" indeed... by bm_luethke · · Score: 2

      The "problem" isn't Gcc's politics as much as GNU's. That is, the license is the issue.

      I've said for a long time that Linux will not become mainstream until it decides too - it has tried to straddle both the commercial world and the political activist world and one can not really do both. There needed to be a decision and one has recently been made.

      While what we call "Linux" still hasn't made such a decision, the tools it depends on has (GNU), and that is towards to political arena. That's fine, it is a valid choice and I can understand why people who donate their time would choose to do so (I know any donated stuff I do will). However things like Linux that depend on said tools now must also make the full choice which way to go - many want a more "BSD" type license that is much more commercial entity friendly.

      It's unclear how all of this is going to work out. My guess is that either some distro will eventually come out that bypasses GPL3 or GPL3 will not do what it is intended to do. As of right now we see articles saying companies like IBM are both really happy with it and they hate it. In my opinion if they are happy with it then it isn't going to appease the ones going for a political solution and changes almost nothing (and then why make a new one?), if they are unhappy with it then the new stuff will fade into hobbyist only.

      Eh - at least it is entertaining to watch :) At some point I believe something along the lines of Apple's OS (license wise) will win, it is just how many years and how much fighting it will take to get there.

      --
      ------- Sorry about the spelling, I suffer from two problems. Dyslexia makes it difficult to spell well, lazy makes it
    48. Re:"Nothing for you to see here" indeed... by Antique+Geekmeister · · Score: 1

      Or when the 10 years of development in getting gcc and glibc and various kernels, BIND and sendmail and postfix and BIND and xinetd and other common freeware system components, to compile correctly on multiple architectures.

      It's easy to optimize something where you throw out compatibility, especially cross-platform compilation, with all the systems gcc supports. To waste another 10 years upgrading another compiler to reach the same level of workability as gcc already provides this way seems insane.

    49. Re:"Nothing for you to see here" indeed... by Antique+Geekmeister · · Score: 1

      You seem to be missing out on proprietary cross-compiler code, added to support specific new hardware. Such tools are easy to build with gcc, but the GPL licensing means that as soon as they give anyone their developer tools, they have to make them GPL licensed and can't keep them secret.

      This matters quite a lot to developers of new hardware, especially micro-systems such as cell phones and PDA's and control systems. Having a closed, BSD-licensed compiler helps restrict competition in their markets, and the BSD license allows this. GPL does not.

    50. Re:"Nothing for you to see here" indeed... by realnowhereman · · Score: 2, Interesting

      Having a closed, BSD-licensed compiler helps restrict competition in their markets, and the BSD license allows this. GPL does not.

      Wow, that sounds great. Sign me up.

      Embedded work is far better when the toolchain is based on GCC. Every proprietary compiler I've used has been a fight just to get started. I recently tried out avr-gcc and was delighted, all the GCC experience I had just dropped straight in.

      Shame on any manufacturer who doesn't add a GCC backend for their CPU.
      --
      Carpe Daemon
    51. Re:"Nothing for you to see here" indeed... by NickFortune · · Score: 2, Insightful

      I am not sure what you are suggesting here... Should people who feel that the GPL license is heading in a disastrous direction just STFU?

      Well, no. On the other hand, the post to which the GP was responding seems to be implying that a GPLv3 GCC will infect its output, on account of its being "poisonous and viral". Either that, or it's a screaming non-sequiteur and totally off topic. You can't blame the GP for giving a poster the benefit of the doubt.

      It really doesn't matter if the new license affects the compiled code.

      What a strange thing to say! I most certainly does matter if a compiler imposes its licencing terms on any programs it compiles. This would be a major show stopper for all sorts of deployment scenarios.

      Happily, GCC has never imposed such restrictions. You could argue that the point is moot in this case, but it's hardly unimportant.

      In this case the message is that BSD licensing looks better every day.

      I can't see why. It's not like the FSF will (or could) discontinue the GPLv2. If it was a good licence before v3 (and it was) then GPLv2 is still a good licence now.

      --
      Don't let THEM immanentize the Eschaton!
    52. Re:"Nothing for you to see here" indeed... by Eunuchswear · · Score: 1

      Several years ago I tried making a linux to windows cross compiler and failed.
      # apt-get install mingw32
      --
      Watch this Heartland Institute video
    53. Re:"Nothing for you to see here" indeed... by bLanark · · Score: 1

      ...Wake me up when you're able to use PCC instead of GCC to do a 'make bzImage'

      OK, I agree that it cannot cope with the Linux kernel yet, but I hear they are making very good progres with the Hurd.

      --
      Note to ACs: I won't mod you up, even if you are being funny or insightful. So take a chance! It's not real life!
    54. Re:"Nothing for you to see here" indeed... by fuliginous · · Score: 1

      Seems you state the case for the GPL and GCC well, it stops free loaders taking and not giving.

    55. Re:"Nothing for you to see here" indeed... by Crayon+Kid · · Score: 1

      The BSD people hate GCC because IT is GPL licensed,[..]


      This is nonsense. Read other comments on this story and you'll see that they do not "hate" gcc for its license. If anything, they most dislike the gcc developers' habit of dropping support for less popular architectures, which leaves various *BSD ports having to use several older gcc versions in parallel to get out a working distro.
      --
      i ate crayons when i was a kid and now i have two braincells and the blue ones taste nicer
    56. Re:"Nothing for you to see here" indeed... by VENONA · · Score: 1

      Excellent link, recommended to anyone who hasn't hit it yet. Espie makes several good points, only one of which I could disagree with, and I could be wrong about that one.

      --
      What you do with a computer does not constitute the whole of computing.
    57. Re:"Nothing for you to see here" indeed... by JoelKatz · · Score: 1

      "Please explain how the license for GCC affects code compiled by it."

      GCC embeds bits of itself in the code it creates. I don't think it's completely clear whether it embeds sufficient bits to make every work it compiles a derivative work, but that's certainly not an obviously unreasonable claim. GCC also includes libraries that are used by the code it compiles. These libraries either need to be linked into the compiled code or be around wherever the compiled code is used.

      Certain LGPL clauses might have significant effects on code compiled by GCC if the resulting binaries are distributed. Clauses 3a and 3b may required you to include certain notices with your executables. Section 4 may mean that you cannot prevent reverse engineering, which you might otherwise want to do. Section 4d1 may require you to allow users to substitute their own versions for run-time libraries.

      There are other reasons.

    58. Re:"Nothing for you to see here" indeed... by mrsteveman1 · · Score: 1

      It's not nonsense, its completely true, you just suggested an additional reason for them to dislike GCC.

      Don't pretend like they DON'T hate the GPL, they have been actively replacing GPL code in their trees for a long time for exactly that reason.

      I would be interested to know what architecture that the BSDs find important has been dropped from GCC, and why that is such a huge problem.

    59. Re:"Nothing for you to see here" indeed... by mrsteveman1 · · Score: 1

      BSD isn't actually closed....i hope you realize the difference.

      Restricting competition is almost never a good idea.

  2. Kind of depends... by KingSkippus · · Score: 4, Insightful

    ...and most importantly, BSD Licensed...

    Kind of depends on who you ask, doesn't it?

    1. Re:Kind of depends... by Tweekster · · Score: 1

      They were stating their POV and their beliefs. Anyone else's opinion on the matter is irrelevant and unsolicited.

      --
      The phrase "more better" is acceptable English. suck it grammar Nazis
    2. Re:Kind of depends... by kartracer_66 · · Score: 1

      Yeah, exactly. And I'm kind of wondering what the problem with having a GPL licensed compiler is anyway. How many people/companies have the skill or need to hack on a compiler?

    3. Re:Kind of depends... by Surt · · Score: 1

      They were stating their POV and their beliefs. Anyone else's opinion on the matter is irrelevant and unsolicited. NB: Their opinion on the matter is also irrelevant and unsolicited.
      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    4. Re:Kind of depends... by Tweekster · · Score: 1

      Not really, considering the main purpose for developing it was license based. It wasnt technological, it was ideological.

      --
      The phrase "more better" is acceptable English. suck it grammar Nazis
    5. Re:Kind of depends... by Brandybuck · · Score: 1

      If you go read the effing article, and the list thread, you'll see that the license is the least of their problems.

      But when you do finally get down the priority list to the license, there's a reason for it. One goal of the free BSDs, particularly OpenBSD, is that the base/core system can be distributed in its entirety under an unrestricted license.

      --
      Don't blame me, I didn't vote for either of them!
    6. Re:Kind of depends... by fitten · · Score: 1

      They were stating their POV and their beliefs. Anyone else's opinion on the matter is irrelevant and unsolicited.

      NB: Their opinion on the matter is also irrelevant and unsolicited.


      To YOU, maybe... but THEY are the ones that wrote the article that YOU read. When YOU write an article, we'll say the same things... it was important to YOU and YOU wrote the article and other's comments are irrelevant to you and unsolicited.
    7. Re:Kind of depends... by afabbro · · Score: 1
      The phrase "more better" is acceptable English. suck it grammar Nazis

      Sentences are capitalized in English and they end with periods.

      --
      Advice: on VPS providers
    8. Re:Kind of depends... by Hatta · · Score: 1

      No. No matter who you ask, PCC is BSD licensed.

      --
      Give me Classic Slashdot or give me death!
    9. Re:Kind of depends... by xouumalperxe · · Score: 1

      For the most part, it is the most important news about it. AFAIK, it's not a revolutionary new compiler architecture, it brings no interesting new features to the table, or generate blistering fast code. It's just another C compiler, that happens to be BSD licensed. Since there is a rather large set of people for whom that is important, you can objectively say that it is the most important aspect of the release, even if the politics don't interest you specifically.

    10. Re:Kind of depends... by Anonymous Coward · · Score: 0

      The phrase "more better" is unacceptable English. Learn it, retard.

    11. Re:Kind of depends... by fatphil · · Score: 1

      And it can be so distributed with a gcc on the CD or in the tarball too. The license that gcc has has _no_ effect on the license that the rest of the package uses.

      --
      Also FatPhil on SoylentNews, id 863
    12. Re:Kind of depends... by Brandybuck · · Score: 1

      You're missing the point. The various BSDs want a small base OS to be completely unrestricted in licensing. This allows a third party to embed the complete OS in a device without having to worry about getting in legal trouble for not distributing the source or modifications. There has been sufficient shitting on embedded Linux manufacturers, that this is indeed a valid concern.

      --
      Don't blame me, I didn't vote for either of them!
    13. Re:Kind of depends... by fatphil · · Score: 1

      What proportion of embedded devices come with the development tools on the device?

      If I'm missing the point that 0.0001% of device manufacturers want to do something unusual, then I'm happy with that, I'll just stick with real world view. I know at $LARGE_CHIP_MFCTR gcc was utterly perfect for us and our customers.

      --
      Also FatPhil on SoylentNews, id 863
    14. Re:Kind of depends... by Brandybuck · · Score: 1

      If license does not matter, as you seem to be arguing, then why not just stick with proprietary compilers?

      --
      Don't blame me, I didn't vote for either of them!
    15. Re:Kind of depends... by Anonymous Coward · · Score: 0

      "What proportion of embedded devices come with the development tools on the device?"

      What proportion of manufacturers want to be forced into compliance with the restrictions imposed in GPLv3? See Tivo. The more upstream restrictions there are, the less likely manufacturers are going to want to even touch it.

    16. Re:Kind of depends... by fatphil · · Score: 1

      The customers always have that option, of course. However, for a chip vendor, it's enormously easier just to let the customers use a plain old gcc bundled in the BSP, because that way they then don't need to provide any support for it. Support is expensive. Instead, they can feed their system-specific patches back into the gcc mainline using a fiftieth of the staff, if that. I think we found and patched some issues with the vector floating point code generation, that's about the only thing I remember in a whole year working with the linux side of things.

      --
      Also FatPhil on SoylentNews, id 863
  3. Not for NetBSD for sure by gambolt · · Score: 5, Funny

    OK, so it compiles C on x86. What do I use when I want to compile objective C on my microwave?

    1. Re:Not for NetBSD for sure by Aladrin · · Score: 4, Informative

      This got modded funny, but I'm sure it deserves insightful instead.

      GCC compiles on a LOT of different architectures. Does PCC? Does it do as good a job at compiling? Can we plop our current GCC-compiled source on PCC and have it compile without huge headaches?

      And what about these bugs that are even referenced in the summary? How could it POSSIBLY supplant GCC if it's that buggy? In fact, how could it have supplanted GCC if it hasn't taken GCC's place AT ALL yet?

      Try these headlines:

      GCC Compiler Finally Has 'Free' Competition
      New Compiler To Supplant Gnu Compiler?
      Battle of the licenses: Does the license of your compiler MATTER AT ALL!?

      --
      "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
    2. Re:Not for NetBSD for sure by RLiegh · · Score: 1

      >Can we plop our current GCC-compiled source on PCC and have it compile without huge headaches?

      [i]Half[/i] the time you can't 'plop' your current GCC-compiled code onto a sun or intel compiler and have it compile without huge headaches -and to the degree that you [i]are[/i] able to have it compile is due only to intel and sun adding compatibility for GCC's increasingly bizarre and non-standard behavior (which would be fine, actually, except for the fact that GCC makes false claims of adhering to industry standards which they don't in practice adhere to).

    3. Re:Not for NetBSD for sure by Anonymous Coward · · Score: 0

      grrrrr...
      s/[i][/i]/ /g

    4. Re:Not for NetBSD for sure by Brandybuck · · Score: 1

      Considering how GCC is doing nothing to prevent bitrot in many architectures, you're probably going to need to use an *old* version of GCC.

      --
      Don't blame me, I didn't vote for either of them!
    5. Re:Not for NetBSD for sure by TheRaven64 · · Score: 4, Insightful

      Actually, support for different architectures is one of the main reasons OpenBSD is looking at it. GCC has a habit of dropping architectures because 'nobody uses them,' which causes some OpenBSD (and NetBSD) ports to remain stuck with old versions of GCC. The x86 backend for PCC was written in three weeks by one person, so it seems reasonable to assume it should be possible to add support for the other required platforms relatively easily.

      It's worth remembering that in BSD-land, things are divided into the base system and third party packages. The base system needs a C compiler that is capable of compiling the userland (which PCC already does for OpenBSD), is small, portable, and easy to audit. Packages have quite different requirements; they need support for more languages, etc. PCC is likely to replace GCC in the BSD base systems, but that doesn't mean that people won't install GCC or LLVM for compiling other things.

      --
      I am TheRaven on Soylent News
    6. Re:Not for NetBSD for sure by the_lesser_gatsby · · Score: 1
      What do I use when I want to compile objective C on my microwave?

      Use Java.

    7. Re:Not for NetBSD for sure by Anonymous Coward · · Score: 0

      Actually, support for different architectures is one of the main reasons OpenBSD is looking at it. GCC has a habit of dropping architectures because 'nobody uses them,' which causes some OpenBSD (and NetBSD) ports to remain stuck with old versions of GCC. No, only because 'they're long broken and nobody's willing to maintain them'. If the BSD guys cared why didn't they step up to help?
    8. Re:Not for NetBSD for sure by jc42 · · Score: 1

      [i]Half[/i] the time you can't 'plop' your current GCC-compiled code onto a sun or intel compiler and have it compile without huge headaches ...

      Heh. Last week, I upgraded a RedHat system to the latest knoppix. It has gcc, but almost nothing in my tool library (around a thousand routines in several hundred files) compiles clean.

      Mostly, it's warnings that a call of strlen() or fgets() or some other standard C routine is incompatible with the default declaration. WTF, "default declaration"? Much of the code #includes most of the common .h files that used to declare those things. Where did they move the declarations? Initial grepping through /usr/include found sheer insanity, which seems to be due to extensive use of multiply-nested #ifdefs to handle things like threading. This has the side effect of making it a challenge to find the actual declarations. But I'll find them. And my own code with be peppered with yet more #ifdefs to handle this.

      It's an old story, of course. Any C programmer who tries to write portable code stumbles across it all the time. It's mostly annoying now because for over a decade, my linux code had almost always ported to new linux distros with very few such problems. But I suppose those days are now over. I also had a similar experience with testing on ubuntu recently, which adds evidence that portability is becoming materially more difficult.

      I suspect that PCC won't be any more of a challenge than gcc and the linux libs have become. Especially since I still have #ifdefs for dealing with Solaris, and the last time I tested on Solaris (less than a year ago), everything compiled clean without problems. Going to PCC will likely produce no more hair pulling than gcc+linux does now.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    9. Re:Not for NetBSD for sure by TheRaven64 · · Score: 1
      Not Objective-C or microwave support, but looking at the OpenBSD import it seems it supports the following architectures:
      • VAX
      • PDP10
      • M16C (may be found in microwaves)
      • Nova
      • MIPS
      • x86
      Considering that x86 was the most recent addition, and was added in just three weeks by a single developer, I wonder why it is the one everyone is focussing on. The comment in TFA was that it compiles the NetBSD i386 userland, not that it could only compile i386.

      It also appears to support Fortran 77, so adding Objective-C support might be possible. To my knowledge, the only Free Objective-C runtime library is the GNU one, however (well, the Apple one is ASPL, but I've not seen it run anywhere other than Darwin). It might be a fun project to write a BSDL one, but I don't think I will be bored enough to for a good 3-5 years.

      --
      I am TheRaven on Soylent News
    10. Re:Not for NetBSD for sure by ChrisA90278 · · Score: 1

      I know what you mean. I use gcc on the Atmel AVR target. For those not in the know the AVR is an 8-bit micro controller that sells for less than $2. AVR would make a nice controllers for a microwave oven or a battery charger.

    11. Re:Not for NetBSD for sure by synthespian · · Score: 1

      Debian sucks, Ubuntu sucks. When my licensed Maple broke because of an upgrade (oh, and having to wade through Ubuntu's PHP forums...er, I mean "documentation") I just said - forget about it! I installed FreeBSD and read the nice, clean documentation and got it working with their Linux emulation layer. When I saw that BSD engineers were far more knowledgeable, I never looked back.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    12. Re:Not for NetBSD for sure by WilliamSChips · · Score: 0, Flamebait

      Because they're worse ideologues than RMS(they believe that propietarians should have the right to fuck you over, and that removing that right is evil) and they could never work on anything that dared to preserve freedom.

      --
      Please, for the good of Humanity, vote Obama.
    13. Re:Not for NetBSD for sure by Goaway · · Score: 1

      Because they're worse ideologues than RMS This from a guy who uses the word "propietarians".
    14. Re:Not for NetBSD for sure by evilviper · · Score: 1

      Okay, I'll take a crack at this one.

      To compile objective C on your microwave:

      - Lift PC.
      - Place on microwave.
      - Compile.

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    15. Re:Not for NetBSD for sure by peacefinder · · Score: 1

      This from a guy who uses the word "propietarians".

      The real irony is that he's trademarked it.

      --
      With reasonable men I will reason; with humane men I will plead; but to tyrants I will give no quarter. -- William Lloyd
    16. Re:Not for NetBSD for sure by Anonymous Coward · · Score: 0

      But then make sure your microwave has at least 4 GB of RAM. And don't try to nuke something while it's compiling, as there won't be enough resources.

    17. Re:Not for NetBSD for sure by halber_mensch · · Score: 1

      Because they're worse ideologues than RMS(they believe that propietarians should have the right to fuck you over, and that removing that right is evil) and they could never work on anything that dared to preserve freedom. Congratulations on beating a straw man to death.

      Dumbass.
      --
      perl -e "eval pack(q{H*},join q{},qw{70 72696e74207061636b28717b482a7d2c717b343 637323635363534323533343430617d293b})"
    18. Re:Not for NetBSD for sure by WilliamSChips · · Score: 1

      You're just jealous of my neologicalization :)

      --
      Please, for the good of Humanity, vote Obama.
    19. Re:Not for NetBSD for sure by Anonymous Coward · · Score: 0

      > Actually, support for different architectures is one of the main reasons OpenBSD is looking at it. GCC has a habit of dropping architectures because 'nobody uses them,'

      Well the reason why nobody uses them is because nobody is around to support them anymore. Do you want to drag feature a down because feature b (which is used by less than .1% of the people and none of those .1% are willing to support it)? This is what is happening, GCC has no resources to support these target.

    20. Re:Not for NetBSD for sure by tjrw · · Score: 1

      Interesting. I am not convinced that I agree, but if you really don't care about performance much, then it's not a completely silly idea:

      "GCC has a habit of dropping architectures because 'nobody uses them,' which causes some OpenBSD (and NetBSD) ports to remain stuck with old versions of GCC." - it does nothing of the sort. If you really care about them, step up to the plate and support them in gcc. If the gcc people won't take your changes, you can maintain them separately. Nobody is obligated to support architecture X just because you happen to care about it. You'd end up having to support it in PCC too. Besides, why do you care if it's an older version of gcc? What is so important about a newer version, if what you have works?

      "The x86 backend for PCC was written in three weeks by one person, so it seems reasonable to assume it should be possible to add support for the other required platforms relatively easily." - It's really fairly easy to do a dumb, "poorly"-optimized backend. Several questions spring to mind. How well-tested/bug-free is said backend? How well does it perform? Why do you think it's so easy to add other backends? Again if they're really dumb and inefficient, it is very easy. Where things get hard and ugly and complicated is trying to do a really good job of optimization, especially for such a PITA architecture as ia32 and the also support other radically different architectures. If you don't give a crap about performance, then actually, it does make sense to go with a much simpler compiler. It's much easier to prove it is correct, to maintain it, etc.

    21. Re:Not for NetBSD for sure by Secret+Rabbit · · Score: 2, Informative

      And what about these bugs that are even referenced in the summary? How could it POSSIBLY supplant GCC if it's that buggy? In fact, how could it have supplanted GCC if it hasn't taken GCC's place AT ALL yet?
      Easy. Read the rest of the summary.

      and work is being done on it to take on GCC's job.
    22. Re:Not for NetBSD for sure by HuguesT · · Score: 1

      About your sig: so what do you say about the MIT license?

    23. Re:Not for NetBSD for sure by Aladrin · · Score: 1

      If you think 'has supplanted GCC' is the same as 'work is being done on it to take GCC's job' I pity you come raise time.

      --
      "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
  4. Why is the license important? by Albanach · · Score: 1

    most importantly, BSD Licensed
    Okay, if you run BSD I can see why the license is important, you want your software to run under the BSD license. But for the rest of us, what advantage does a BSD licensed compiler offer? It's not like GCC forces the GPL onto compiled software, does it?

    For commercial software, pointing to the GCC source isn't that much of a burden if you need to distribute a compiler.

    I'd have though the fact a compiler was faster and or lighter would be much more important than the license it uses. Why is that not the case?
    1. Re:Why is the license important? by peragrin · · Score: 1

      >>For commercial software, pointing to the GCC source isn't that much of a burden if you need to distribute a compiler.

      It's what MSFT does for Unix Services for Windows. the GPL components simply get acknowledged and pointed back at the developers.

      --
      i thought once I was found, but it was only a dream.
    2. Re:Why is the license important? by Bacon+Bits · · Score: 1

      I'd have though the fact a compiler was faster and or lighter would be much more important than the license it uses. Why is that not the case?
      Proprietary software makers have said the same thing about the Free Software movement.

      --
      The road to tyranny has always been paved with claims of necessity.
    3. Re:Why is the license important? by Anonymous+Conrad · · Score: 1

      It's what MSFT does for Unix Services for Windows. the GPL components simply get acknowledged and pointed back at the developers. Oh no they don't. Look on the CD under sources/Interix/gnu.
    4. Re:Why is the license important? by Anonymous Coward · · Score: 0

      It's not like GCC forces the GPL onto compiled software, does it? Of course it does - just ask Theo! :)
    5. Re:Why is the license important? by giorgiofr · · Score: 1

      It's not like GCC forces the GPL onto compiled software yet There, fixed it for you.
      --
      Global warming is a cube.
    6. Re:Why is the license important? by UserGoogol · · Score: 1

      The BSD license is a smaller file, so it's more efficient?

      --
      "Never attribute to malice that which can be adequately explained by stupidity." -- Hanlon's Razor
    7. Re:Why is the license important? by MoxFulder · · Score: 1

      It's not like GCC forces the GPL onto compiled software yet There, fixed it for you. Even if you don't like all of the FSF's politics... this one is quite a stretch.

      Richard Stallman has said that he doesn't believe copyright is *allowed* to place USAGE restrictions on software (as opposed to REDISTRIBUTION restrictions). And, accordingly, no GPL programs place any restrictions on their output... even when that output is a new program.
    8. Re:Why is the license important? by giorgiofr · · Score: 0, Troll

      Not really. FSF has shown beyond reasonable doubt that they will change the terms of their license according to their whim and to suit their agenda without any regard whatsoever to their user and developer base, at the drop of a hat and without listening to valid criticism. I have no doubt they will do it again. In their power-hungry madness they will try to force their users into complete slavery, and I believe GCC will be one of the first instruments to their supposed rise to world domination - only it will bring about their destruction when everybody but the most foaming-at-the-mouth-zealots moves on to serious OSs and lets FSF and their EFFing lackeys dwindle away into irrelevance.
      Aplogies for the tone of utter disgust and somewhat unexplainable epic. The first is inspired by your reference to Stallman. The second, I just felt like trying on for size.

      --
      Global warming is a cube.
    9. Re:Why is the license important? by MoxFulder · · Score: 1

      Not really. FSF has shown beyond reasonable doubt that they will change the terms of their license according to their whim and to suit their agenda without any regard whatsoever to their user and developer base, at the drop of a hat and without listening to valid criticism. I have no doubt they will do it again. In their power-hungry madness they will try to force their users into complete slavery, and I believe GCC will be one of the first instruments to their supposed rise to world domination - only it will bring about their destruction when everybody but the most foaming-at-the-mouth-zealots moves on to serious OSs and lets FSF and their EFFing lackeys dwindle away into irrelevance.

      Aplogies for the tone of utter disgust and somewhat unexplainable epic. The first is inspired by your reference to Stallman. The second, I just felt like trying on for size. Now you're just trolling, but I'll bite.

      Since when has the FSF ever changed their license(s) "at the drop of a hat". The GPLv3 drafting and commenting process lasted over a year! And they definitely *listened* to "their user and developer base", even inviting them to leave critical annotations to the GPLv3 draft text. Whether they responded fully is another matter, but on many issues I believe they clearly did, such as the issue of clarifying requirements to distribute encryption keys (some worried that a strict reading of the original text might require devs to distribute personal passwords, for example).

      And furthermore, the GPL has *always* granted users the freedom to fork the software, and ignore the FSF. Don't like where the FSF is taking Emacs? Fork it! Don't like where the FSF is taking GCC? Fork it! Et cetera. You may not receive any love letters from Richard Stallman for doing so, but the FSF has clearly provided a legal framework in which you're well within your rights to fork their software and avoid their oversight, as long as you abide by the license terms. I consider that a sign of great and deep integrity, and it remains unchanged with the GPLv3.
    10. Re:Why is the license important? by Anonymous Coward · · Score: 0

      Hahahaha *snort* oh you're so funny. It must be because you use BSD!

      Seriously, if the FSF were ever dumb enough to do something like that, you could just fork the last version of GCC that was released under the previous license and continue to develop it. It's hardly rocket science: even Theo de Raadt could manage that license-based issue without too much help.

    11. Re:Why is the license important? by giorgiofr · · Score: 1

      No, actually I wasn't trolling. Obviously I was being nasty but there's a difference between that and trolling. Anyway, I see your point, but I disagree. The FSF has changed the license single-handedly and suddenly - one year is nothing when the license of a great part of the FOSS out there is at stake; and the discussions led nowhere - they set out with the intention to "stick it to the man" and they damn well did it, everything else was just fluff and frills. Meaning that their intention has been to fight "Tivoization" since the beginning and it does not look they have given up on that, even though it was obviously the sensible thing to do.
      Now you might think that GPL v3 is great and all, I don't care much, I was simply stating that after all that's happened I *do* *seriously* believe that they'll try to pull some stunt to place even more restrictions (in the name of freedom of course) on GCC and try to leverage this to force developers to side with RMS. Of course you can fork, *today*. I wonder how long that's going to last.
      If you have any definitive way to convince me that this is not going to happen by all means go on and reassure me - but please spare me an endless debate about how GPL means freedom, apple trees beyond a fenced wall etc.

      --
      Global warming is a cube.
    12. Re:Why is the license important? by MoxFulder · · Score: 1

      If you have any definitive way to convince me that this is not going to happen by all means go on and reassure me - but please spare me an endless debate about how GPL means freedom, apple trees beyond a fenced wall etc. Certainly a healthy skepticism of the FSF's intentions is a good idea. But the ability to fork is one of the *critical features* of open source software that keeps licensors in line.

      For example, if you think the GPLv3 is too onerous... then you fork the last GPLv2 version of whatever program you want. If enough people agree with you, they'll abandon the FSF and jump into your project. If you're okay with the GPLv3, but it turns out that the GPLv4 requires you to give your unborn children to Richard Stallman, then no problem! Just fork the last GPLv3 version of some GNU program and you're good to go?

      Is this "threat of forking" really plausible? Sure is! When XFree86 switched its licensing terms to something that many developers and users didn't like, besides a few other disagreements, the developers abandoned XFree86 en masse and the X.org foundation invited them in. Within a few months, X.org was the standard and XFree86 is irrelevant today (partial history: http://en.wikipedia.org/wiki/X.org#History)

      Are your worries about the FSF reasonable TODAY? I don't really think so. A lot of *non-FSF* projects have switched enthusiastically to the GPLv3. Most notable is Samba, which is used by hundreds (thousands?) of companies as a better-than-Windows replacement for Microsoft print servers and networked file sharing. Even those prominent developers who are critical of GPLv3, such as Linus Torvalds, have criticized the license on the basis of WHAT IT ACTUALLY LIMITS (e.g. Tivoization), not by warning darkly about nefarious future intentions of the FSF.
    13. Re:Why is the license important? by ray-auch · · Score: 1

      Richard Stallman has said that he doesn't believe copyright is *allowed* to place USAGE restrictions on software (as opposed to REDISTRIBUTION restrictions).

      Unfortunately this doesn't help much unless you have an agreed definition of usage and redistribution restrictions.

      Since there was a significant amount of debate during hte GPLv3 drafting process about "usage restrictions" in the draft, it would appear that not everyone understands that term in the same way as RMS.

      It's quite probable that BSD folks would disagree with RMS on it, which means that a statement like that from RMS is worthless to them.

    14. Re:Why is the license important? by Secret+Rabbit · · Score: 1

      I'd have though the fact a compiler was faster and or lighter would be much more important than the license it uses. Why is that not the case?


      Perhaps, a different opinion? Or is yours the only one that matters?
  5. Why? by wizards_eye · · Score: 1

    Someone please elaborate. What makes this C compiler better than the one in GCC? (I am not asking about licensing issues)

    1. Re:Why? by TheRaven64 · · Score: 4, Informative
      License aside, the biggest benefit is that it's small. The OpenBSD (for example) base system is a self-contained operating system, including everything required to build it from source. It has the following requirements from its compiler:
      • Must compile C code (GCC does this).
      • Must support all of the platforms OpenBSD targets (GCC has a habit of dropping support for various platforms).
      • Must be easy to add new backends for new architectures (GCC makes this really hard).
      • Must be easy to audit for security (GCC is a tangled mess).
      Maybe a few I've missed. GCC is like Linux; it's a fairly good solution for a lot of problems, but it's rarely the best solution for any given problem. PCC is a better fit for the needs of the OpenBSD base system.
      --
      I am TheRaven on Soylent News
    2. Re:Why? by Anonymous Coward · · Score: 0

      Don't want to bother RTFA?

      1) It's smaller.
      2) It's faster.
      3) It can be kept more standard.
      4) Plus a real front-end back-end can be set up to hook other tools into that the GCC folks don't want to be made for fear of proprietary add on's, etc, etc.
      5) Easier to port to other architectures (a problem because the GCC folks tend to drop architectures THEY think folks don't use, but folks actually still do.)

      I'm tired. RTFA yourself if you want more.

      All that plus a license the the folks wanting to use it like a lot better. Sounds like a worthwhile project.

    3. Re:Why? by Anonymous Coward · · Score: 0

      Must be easy to add new backends for new architectures (GCC makes this really hard). Perhaps, but everything is relative. How do you really measure the difficulty of adding a backend when there are over nine thousand case studies for GCC, and only a handful (if that) for PCC? And even if it is easier, it will still be more difficult to write brand new backends than to just use backends that GCC already has.

      Must support all of the platforms OpenBSD targets (GCC has a habit of dropping support for various platforms). GCC only drops a platform when there is no one to maintain it and ensure that it can continue to function properly as other parts of the compiler change. If it's important to the OpenBSD folks to keep support for a particular platform, their resources would be much better spent stepping in to continue GCC support for that platform rather than building a new backend for an inferior compiler.
    4. Re:Why? by Anonymous Coward · · Score: 0

      >Must be easy to add new backends for new architectures (GCC makes this really hard).
      Does it? I know people who write backends for new targets within 6 months (with 90-95% of the GCC testsuite passing). Yes tuning is harder but getting a working compiler is much easier.

      -- Pinski

  6. Quick! by perbu · · Score: 5, Funny

    Someone relicense it under the GPL!

    1. Re:Quick! by Rich0 · · Score: 1

      Ironically, you can't even do that. It has the advertising clause from what I've heard. That makes it incompatible with most OSS licenses.

      XFree86 was abandoned mainly due to such a clause being introduced...

    2. Re:Quick! by Anonymous Coward · · Score: 0

      Ironically, you can't even do that. It has the advertising clause from what I've heard. That makes it incompatible with most OSS licenses.
      So much for BSDL zealotry. Look, they do exactly what they accuse the GPL of. Theo, you're a cocksucker. I say that from the bottom of your throat.
    3. Re:Quick! by DrJimbo · · Score: 0

      You can't re-license the code even without the advertising clause. It is never legal to re-license someone else's code without their approval. The advertising clause prevents you from including BSD code in a GPL product. You can include modified-BSD code (no advertising clause) in a GPL product but the BSD code has to retain the BSD license.

      --
      We don't see the world as it is, we see it as we are.
      -- Anais Nin
    4. Re:Quick! by Assembler · · Score: 1

      You can't re-license the code even without the advertising clause.

      True, but you can add the restrictions of the GPL to modified BSD code. I can also add the restriction that you must pay me $5 billion to sell you back your BSD code. Hope you kept the original :)

    5. Re:Quick! by DrJimbo · · Score: 1

      Nope. Wrong. But thanks for playing.

      Adding more restrictions == changing the license

      If you use modified-BSD code, then you are free to do just about anything with it but change the license. Adding the restrictions of the GPL to BSD code is the same thing as relicensing it. You are free to redistribute the BSD code and obey the GPL restrictions yourself (just like you are free to not redistribute it at all). But if you do redistribute the BSD code then you can't change the copyright notice on it or change the BSD license. So anyone who gets the BSD code from you is not held to the terms of the GPL only the terms of the BSD license.

      Likewise, you are free to charge people for the BSD code, but again, if you redistribute the source then the people that get it from you are free to redistribute it under the terms of the BSD license.

      In other words, you are free to restrict your own distribution as much as you want but you can't add any restrictions that others must obey. If you include BSD code with GPL code then recipients of the whole most obey the most restrictive license. But they are always free to take the pure BSD code and treat it as BSD code. The GPL license does not leak over just due to intimate contact.

      --
      We don't see the world as it is, we see it as we are.
      -- Anais Nin
  7. GNUless Linux by Anonymous Coward · · Score: 0

    This is great, one more step towards GNUless Linux, and making RMS irrelevant!

    1. Re:GNUless Linux by RLiegh · · Score: 2, Insightful

      Not really; you already have the sun and intel compilers for Linux (I've been told that the intel compiler has even been tweaked so you can build a bzImage with it).

      But you're still stuck with using glibc if you want to be able to compile anything. You do have different libcs floating around, uclibc, etc; but they're all gnu and they're all meant for embedded market. I doubt you'd be able to recompile the linux kernel with any of them.

    2. Re:GNUless Linux by MoxFulder · · Score: 1

      Not really; you already have the sun and intel compilers for Linux (I've been told that the intel compiler has even been tweaked so you can build a bzImage with it).

      But you're still stuck with using glibc if you want to be able to compile anything. You do have different libcs floating around, uclibc, etc; but they're all gnu and they're all meant for embedded market. I doubt you'd be able to recompile the linux kernel with any of them. No no no. Repeat after me: "GNU != GPL" "GNU != GPL" "GNU != GPL" "GNU != GPL". You can use the GPL license (yes, even the latest GPLv3) without accepting any oversight or political interference by the Free Software Foundation / GNU project. Just ask Linus Torvalds. He freely admits that choosing GPLv2 for Linux was the best choice he ever made, but the Linux project is not controlled by the FSF in any way, and in fact Linus disagrees with them on nearly all current issues of software politics :-)
    3. Re:GNUless Linux by Anonymous Coward · · Score: 0

      I was able to compile the toolchain, coreutils, bash, and gcc linked against uClibc. I suspect I could have compiled a kernel with that toolchain.

    4. Re:GNUless Linux by Hatta · · Score: 1

      Why would you want Linux without GNU? Since you seem to prefer the BSD user land, why not just use a BSD kernel? What does linux do for you that BSD doesn't?

      --
      Give me Classic Slashdot or give me death!
  8. One OT clarification: by Anonymous Coward · · Score: 2, Informative

    "NetBSD's" pkgsrc is really everyone's pkgsrc. Try it on what you're running right now.

    It's my primary package manager on Interix, Mac OS X, Linux, and NetBSD.

    1. Re:One OT clarification: by synthespian · · Score: 1

      Oh, I didn't realize you could use it on Mac OS X! Guess I'll replace fink (anything based on Debian's package management is due to face disaster sooner or later, because of combinatorial issues - people have published papers on this, BTW).

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    2. Re:One OT clarification: by Anonymous Coward · · Score: 0

      I tried it, but it didn't work. It said that the file weren't a Windows executable. =(

    3. Re:One OT clarification: by WilliamSChips · · Score: 1

      I did a quick Googling and couldn't find these papers.

      --
      Please, for the good of Humanity, vote Obama.
  9. Maybe someday by phoenixwade · · Score: 1

    Not a replacement for GCC anytime soon. I'm not sure why there was a need for a compiler licensed for BSD, but it's always nice to see options being developed for anything.

    --
    A positive attitude may not solve all your problems, but it will annoy enough people to make it worth the effort.
  10. Answer by christurkel · · Score: 3, Insightful

    GCC Compiler Finally Supplanted by PCC?

    No. Next question.

    --

    CDE open sourced! https://sourceforge.net/projects/cdesktopenv/
    1. Re:Answer by PadRacerExtreme · · Score: 1

      No. Next question. No kidding. From the summary itself:

      It is currently not bug-free, but it compiles on x86 platform, and work is being done on it to take on GCC's job. I think they just answered themselves.....
      --
      Just remember - if the world didn't suck, we would all fall off.
    2. Re:Answer by rhizome · · Score: 1

      No. Next question.

      What is PCC?

      --
      When I was a kid, we only had one Darth.
  11. Interesting... by cromar · · Score: 4, Insightful

    I really don't see any point in implementing a new C compiler under the BSD lisence. There's no reason to duplicate effort: it's not like the compiled binaries would be under the GPL. And any GPL libraries you link to, you wouldn't need to distribute (thus avoiding the GPL). So, really, there's no point in duplicating effort on a BSD lisenced compiler. Correct me if I'm wrong.

    1. Re:Interesting... by everphilski · · Score: 4, Insightful

      Principle?

      I don't know, I'm not a BSD user, but as much as RMS likes to claim that 'linux' is GNU/linux, maybe BSD users want their OS to be self reliant?

      Would you like to compile Linux using a microsoft compiler? :)

    2. Re:Interesting... by FooBarWidget · · Score: 0, Flamebait

      You are not wrong. The Free Software Foundation explicitly states that binaries produced by GCC are not covered by the GPL. (Why people never read the GPL FAQ is beyond me.)

      I can only think of two reason why they want to replace GCC with PCC:
      1. Because they can.
      2. Because they're anti-GPL zealots.

    3. Re:Interesting... by Score+Whore · · Score: 0, Troll

      You do realize that GCC was a duplication of effort? If it wasn't for licensing obsessives you'd still be using PCC right now.

    4. Re:Interesting... by Anonymous Coward · · Score: 5, Interesting

      It has less to do with the license and more to do with GCC's increasingly spotty support for some of the hardware platforms that NetBSD and OpenBSD run on. That and GCC internals are a maintenance nightmare, and its development process is getting even less commmunity-driven than it was before (which was never that much). Asking for a new compiler warning might take anywhere from a day to years just to get a response. The license is definitely gravy though.

      The BSD license that PCC is under, I understand, is actually a problem even to the BSD folks: PCC is actually extremely old (it was originally written for the PDP11!) and apparently it still carries the advertising clause.

    5. Re:Interesting... by Anonymous Coward · · Score: 5, Insightful

      Would you like to compile Linux using a microsoft compiler? :) If it produced the best code, why not? People already compile Linux using the Intel compiler.

    6. Re:Interesting... by WindBourne · · Score: 2, Insightful

      or
      3. they object to the restriction on their freedom?

      Look, I am a Linux user and Hacker, but even I understand BSD need to have their code be free.

      --
      I prefer the "u" in honour as it seems to be missing these days.
    7. Re:Interesting... by Brandybuck · · Score: 3, Insightful

      Reason 1) Avoid a monoculture

      Reason 2) Competition

      Reason 3) Choice

      Reason 4) Tweak Stallman's nose

      --
      Don't blame me, I didn't vote for either of them!
    8. Re:Interesting... by mrchaotica · · Score: 2, Funny

      You just restated point #2.

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    9. Re:Interesting... by peterpi · · Score: 1

      3) Because it's interesting to somebody who likes seeing how compilers work. "simple, fast and understandable".

      TFA makes no claim about it 'going up against' gcc in any way (apart from an observation about speed of compilation). Compilers are intersting things to some people, that's all.

      Your linux distribution quite possibly comes with tcc anyway. Is that a problem?

    10. Re:Interesting... by everphilski · · Score: 1

      Thanks for mentioning that. And might I mention principle is not the primary reason they are doing this - although I am sure it factors in. this post explains it rather well.

    11. Re:Interesting... by Anonymous Coward · · Score: 0

      Rather more useful would be a reimplementation of gperf whose output could be used in non-GPL software. Or FSF could just bring the licensing of gperf into line with gcc, bison, etc.

    12. Re:Interesting... by Jose · · Score: 2, Insightful

      Look, I am a Linux user and Hacker, but even I understand BSD need to have their code be free.

      to me, it is the GPL that ensures that the *code* remains free, while the BSD license ensures that it is the *user* that remains free.

      I really like both licenses, but they serve different purposes, and it highlights the priorities of the different groups.

      --
      The basic sleazeware produced in a drunken fury by a bunch of UCBerkeley grad students was still the core of BIND. --PV
    13. Re:Interesting... by jimstapleton · · Score: 1

      You can disagree with the GPL and not want a GPLed product, when there is an alternative, without being a zelot.

      That being said, from what I gather, there currently is little reason to use PCC over GCC, though that may change in the future.

      --
      34486853790
      Connection too slow for X forwarding? Try "ssh -CX user@host"
    14. Re:Interesting... by Jeff+DeMaagd · · Score: 2, Insightful

      The difference is that both are open source and no matter what level of hot air that RMS can emit, he can't force anyone to do anything other than abide by the license of his software.

      He can't force people to change the name of Linux, it's just that people decided to go along with it on their own. The GNU/Linux thing was kind of retarded given that Linux distributions feature code from a lot of different licenses, and GNU is the only one that's mentioned?

    15. Re:Interesting... by Anonymous Coward · · Score: 0

      If you compiled the kernel with a Microsoft Compiler would you get as a bonus an embedded web browser and media player?

    16. Re:Interesting... by Tim+C · · Score: 3, Insightful

      The GNU/Linux thing was kind of retarded given that Linux distributions feature code from a lot of different licenses, and GNU is the only one that's mentioned?

      The justification I've usually seen for that is that GNU is the single biggest "contributor", as it were, particularly with respect to gcc, the command tools, etc. More than just that, though, it could be argued that without GNU, Linux would just be a kernel, with no user space to run. Of course, it could equally be argued that without Linux, the GNU user space tools would just be a nice collection of tools with no OS to run on...

    17. Re:Interesting... by sunwukong · · Score: 5, Interesting

      I believe it was de Raadt that once mentioned he'd prefer a non-optimizing compiler that produced simple, bullet-proof, bug-free code, i.e., in terms of the OS and its base tools, he prefers correct to fast.

    18. Re:Interesting... by BokLM · · Score: 1

      If it produced the best code, why not? People already compile Linux using the Intel compiler.

      If it produced the best code AND was open source and patent-free. I don't think it's a good thing to depend on closed source things.

    19. Re:Interesting... by Anonymous Coward · · Score: 4, Funny

      And he continues to write code in C...why?

    20. Re:Interesting... by jc42 · · Score: 3, Insightful

      or
      3. they object to the restriction on their freedom?


      or
      4. they like competition and choice, even if the "market leader" is pretty good.

      or
      5. they've learned that a monoculture isn't good for the ecology (even if the "market leader" is pretty good).

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    21. Re:Interesting... by Antony.Muss · · Score: 1

      A BSD compiler would mean that people can modify it and release their modified compiler without sharing the source code, which sounds like the sort of thing nobody would ever do, so it must be a license obsession. (If I preferred a license I'd want that too, but I would consider it a waste of time). It also means that these people can design it to their own liking, although it has nothing to do with licensing.

    22. Re:Interesting... by Anonymous Coward · · Score: 0
      GNU isn't a license. It's a compiler chain and set of unix tools.

      The GNU Project was launched in 1984 to develop a complete Unix-like operating system which is free software: the GNU system. Variants of the GNU operating system, which use the kernel called Linux, are now widely used; though these systems are often referred to as "Linux", they are more accurately called GNU/Linux systems.


      Presumably, the / in GNU/Linux is a fraction bar. So GNU/Linux is pronounced GNU over Linux. Debian's kFreeBSD port would result in a GNU/kFreeBSD system.
    23. Re:Interesting... by jc42 · · Score: 1

      You do realize that GCC was a duplication of effort? If it wasn't for licensing obsessives you'd still be using PCC right now.

      Yeah, but back in the 80s and early 90s, there was still a lot of worry over the fact that much of unix[TM] was in fact owned by AT&T. This was a potential sword over the head of a lot of projects.

      I recall back around 92, when I worked on a project at Digital, and I heard a number of the internal discussions of the fact that DEC had Sys/V running on their machines, but seemed only interested in selling BSD-derived unix systems. The general understanding seemed to be that the company lawyers were very worried that anything linked to the Sys/V system libraries could in fact be owned by AT&T. The worry was that, if Digital sold software linked to these libraries (and thus contained an AT&T copyright notice), and the software became a best seller, AT&T could come along and claim the software as theirs, and the courts would agree.

      As far as I know, this didn't ever get tested in court. The effect of that was apparently to make lawyers advise that the legal status was undefined. The legal status of commercial software linked to BSD libraries was a lot clearer to the lawyers, so they advised going with BSD until someone else paid for the court battle with AT&T.

      I never actually talked to any of Digital's lawyers about this, though, so it might all have been just corporate mythology. Still, as society becomes more litigious and the laws dealing with software become murkier, it's something worth thinking about. And we might note that AT&T copyrights on the original unix code have been in the courts lately; that's part of what the SCO case is all about.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    24. Re:Interesting... by Omnifarious · · Score: 4, Insightful

      The real reason that Stallman wants this is that he early on correctly perceived that Linus is totally ideology agnostic, and so he wanted to put the idea of GNU/Linux out there so people would talk about the ideology. I don't think this is bad or anything. I think the ideology needs to be heard more widely.

      It could also be argued that without the GNU project, Linus wouldn't have had a license ready to use for Linux, and I think that contribution by the GNU project weighs at least as much as all the userspace tools which someone would likely have eventually written anyway.

    25. Re:Interesting... by j-pimp · · Score: 4, Interesting

      And he continues to write code in C...why?

      Auctually if I could write in C as well as him, I would do so more often. The problem is not him writing in C, its other people writing in C that are not as good as him. Do to the scope of his work, him writing in C does not lead to more bad C being written. So I'm auctually thankful he is coding in C.

      That being said, he should encourage lesser programmers (including myself) to specifically not code in C.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    26. Re:Interesting... by Sique · · Score: 1

      So that's the reason why RMS talks about GNU/Linux, and not GNUOS or similar. He recognized the fact that Linux is running the toolchain.

      --
      .sig: Sique *sigh*
    27. Re:Interesting... by teh+kurisu · · Score: 1

      to me, it is the GPL that ensures that the *code* remains free

      I never understood this philosophy. Taking some open source code and building a proprietary product out of it does not make the original open source code any less free. It's the whole theft / copyright infringement argument again. When you take it, it doesn't deprive the original creators of their product.

      Or, I understand the philosophy, but I think that particular way of putting it is a bit of FUD slinging.

    28. Re:Interesting... by afidel · · Score: 2, Insightful

      Of course, it could equally be argued that without Linux, the GNU user space tools would just be a nice collection of tools with no OS to run on...

      Not true, they run just fine on Solaris including Open Solaris which is OSS. In fact I MUCH prefer Solaris with the GNU tools loaded, the old SysV tools suck by comparison and I only use them for the rare script that breaks on the GNU tools (They are overall very good about preserving backward compatibility and man will almost always tell you when they don't). I know many of the stogy Solaris admin's don't like to load anything that didn't come on the first install disk, but if you have control of your environment and have linux experience it is really nice to load the GNU toolset.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    29. Re:Interesting... by Selivanow · · Score: 2, Interesting

      If you read Linus' early posts about the Linux kernel you will notice that he had originally licensed it under its own license. He didn't switch to the GPL until later. It is hard to say whether or not Linux would have taken off without the GPL. It probably would have been fine using a BSD userland even if a userland wasn't quite available yet. In fact, if the kernel wasn't now so dependant on the GNU userland (binutils, glibc, etc.) it would be pretty easy to usethe BSD userland. (I can't recall if there was a BSD lisenced userland in existance in 1991)

      --
      -- ...trying to make digital files uncopyable is like trying to make water not wet. -Bruce Schneier
    30. Re:Interesting... by Jose · · Score: 1

      I never understood this philosophy. Taking some open source code and building a proprietary product out of it does not make the original open source code any less free. It's the whole theft / copyright infringement argument again. When you take it, it doesn't deprive the original creators of their product.

      exactly.

      current users of software "X" are unaffected by someone taking an open source project proprietary, it is only the code itself which is no longer free. which is what I was saying when I said the GPL keeps the code free, while the BSD license keeps users (developers) free.

      --
      The basic sleazeware produced in a drunken fury by a bunch of UCBerkeley grad students was still the core of BIND. --PV
    31. Re:Interesting... by Anonymous Coward · · Score: 1, Interesting

      (not the GPP, incidentally)

      Even then, the problem is too many wetware cycles wasted on programming C "well", no matter who the programmer is -- If TdR didn't have to be so good at writing good C code (avoiding common pitfalls), he could reoptimize toward greater _creative_ productivity instead of ensured correctness. Isn't this why we use computers in the first place?*

      (* to do things which require correctness and repetitive tasks, i.e. which can be programmed to be done automatically rather than manually)

    32. Re:Interesting... by Anonymous Coward · · Score: 0

      Yes, but the point is to tie up the copyrightists in a psychological double-bind - they can either support copyright, and therefore support the GPL, or deny the GPL, and deny the legitimacy of copyright.

      Remember, many FSF supporters are anti-copyright _itself_. The GPL only "restricts" you in the first place if you abide by copyright law.

    33. Re:Interesting... by Anonymous Coward · · Score: 0

      I think he trusts himself more than a complicated compiler for a "high level" language.

    34. Re:Interesting... by Thuktun · · Score: 2, Insightful

      Of course, it could equally be argued that without Linux, the GNU user space tools would just be a nice collection of tools with no OS to run on... It could not be successfully argued.

      GNU tools ran fine on other OSes long before Linux became so popular, including Solaris (and SunOS before it), AIX, HP/UX, IRIX, NEXTSTEP, Ultrix, and so on.
    35. Re:Interesting... by idiotnot · · Score: 1

      PCC is actually extremely old ... and apparently it still carries the advertising clause.

      FWIW, NetBSD does that, too.

    36. Re:Interesting... by Chandon+Seldon · · Score: 2, Informative

      The GNU/Linux thing was kind of retarded given that Linux distributions feature code from a lot of different licenses, and GNU is the only one that's mentioned?

      Let's at least get RMS's position right: The GNU project was founded in 1984 to create a free operating system. In 1991, they were almost completely finished - they had written every essential component of a Unix-like operating system except for a kernel. Linus came along, wrote the Linux kernel, combined it with the almost-complete GNU system, and called the whole thing Linux. The GNU people were rightly upset that they were getting no credit for their work (to build a complete Unix-like OS).

      The counter argument from Linus is that the term "Operating System" means "kernel", and that anything outside the kernel is just "userspace tools". That's a difficult position to defend - the simplest counter argument being that operating systems run programs and that Linux can't even run "Hello World" without GNU System components like GNU Libc.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    37. Re:Interesting... by Anonymous Coward · · Score: 0

      Don't you mean Gnu/Solaris, GNU/AIX, GNU/HP/UX, GNU/Irix, GNU/Nextstep, GNU/Ultrix and GNU/so on?

    38. Re:Interesting... by Austerity+Empowers · · Score: 3, Insightful

      But modifying, even forking GCC is practical and rational, whereas making your own, new, compiler and supporting it for all eternity is not. I can understand much of the BSD bent on licenses, but in this case...I don't see it. Compilers are never "done", and writing one with a license that does not ensure other people's updates make it in is just ensuring that the author is perpetually supporting this himself.

      I can understand some applications having closed source licenses...but a compiler is a means, not an end...it really just seems painful.

    39. Re:Interesting... by dgatwood · · Score: 1

      I would expect that to change in the near future. Why? One word: LLVM. With LLVM, you get optimization that is often better than with GCC (and this is running LLVM-generated code using a JIT runtime!), faster compile times, etc. Combine that with something lightweight like PCC instead of GCC (LLVM currently uses GCC's front end) and you could have a much better starting point for continued LLVM development than you currently have with the LLVM/GCC combination.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    40. Re:Interesting... by synthespian · · Score: 1

      to me, it is the GPL that ensures that the *code* remains free, while the BSD license ensures that it is the *user* that remains free.

      I find it peculiar and cognitively impaired that one would think that freedom would somehow belong to an inanimate object (code) instead of a free-thinking, free-rolling human being.

      And I mean no offense, it's just my opinion and I understand the whole Linux camp seems to think that way. OTOH, there are many atrange ideologies in the world today, and many people doing odd things in the names of those ideologies.

      Call me naive or something. But what I really think is naive is working under a license that really only benefits large corporations (for whom software is just comoditization), dual-licensors (GPL/proprietary - and it's always with the GPL - with BSDL, you have the same leverage as, say, Apple Inc. With the GPL under a dual-license, it's asymmetric and you're on the wrong end of the deal (*)), or government projects (where, somehow, some selected few get contracts to install Linux on a huge computer base - because they have ties to the ruling party?).

      I guess there are quite a few differences in the Weltanschauung of the two camps.

      (*) By the way, you can always push for that asymmetry. It's Microsoft's expertise. That, somehow, so-called libre-software advocates would think they can just do that with an open source license and achieve a different outcome than the proprietary strategy just bewilders me. That there are suckers that would contribute code and give up Copyrights to such dual-licensors also bewilders me.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    41. Re:Interesting... by cnettel · · Score: 1

      Yeah, but what's the GNU userspace worth on a proprietary kernel?

    42. Re:Interesting... by Anonymous Coward · · Score: 0

      zOMG lets all program in LISP! It's the wave of the future!

    43. Re:Interesting... by Mr.+Slippery · · Score: 1

      He can't force people to change the name of Linux,

      He's not asking that. Linux is Linux. But Linux is the kernel, which Linus himself noted "is a miniscule part of a complete system".

      RMS is asking that you not call the system that GNU assembled and developed, by the name of the kernel that provided the last piece, and that you give credit to the organization that set out to provide the free operating system that the Linux kernel completed. It is an entirely reasonable request.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    44. Re:Interesting... by Nicolay77 · · Score: 1

      If you want a hacker to do something, you just have to tell him that this something is impossible.

      Or that doing it will be just thinkering. Hackers love thinkering.

      In my case if this is what's needed to stop GNU zealots to say that Linux is nothing without GNU and GNU is everything, then good for PCC.

      In a practical note, I would appreciate a more modern compiler to replace Borland's BCC in windows. Now, that's a fast compiler ^^

      --
      We are Turing O-Machines. The Oracle is out there.
    45. Re:Interesting... by Anonymous Coward · · Score: 5, Insightful

      I am the GPP, incidentally, and while I'm pleased I got modded up, I certainly wasn't going for funny :). I'm sorry, but C is just a poor choice for ensuring correctness.

      First of all, open up your copy of the C standard (any of them will do) and grep for the phrase "undefined behaviour". C was standardized in a time when everyone and their dog had their own C compiler. Each C compiler did things in a different way, often in contradictory ways. The C standard came along and said "hey, you know what? You're ALL right". I'm being facetious, and the C standard has done a great job in promoting C, but the C standard has really not evolved very far in terms of guaranteeing semantics.

      I don't mean to bring this up to say that "you can't write correct code" in C or such nonsense. Obviously it's easy with good habits (I recommend comp.lang.c as the best place to pick up these habits) to write conforming and well-defined code. But, if you're trying to verify code that's already been written, either by hand or via some automated tool like a static analyzer, it is painful.

      The second problem with C is that it allows a lot of features that make verification of semantics difficult. Pointer aliasing, global variables (even "extern" global variables!!), etc. make static analysis dreadful. If you want to perform static analysis properly on C programs, it's hard to get around whole-program analysis, which is why no one uses static analysis with C code :). Seriously, what does C have beyond lint? How many people even use lint? It's not very useful.

      Of course static analysis is not the end-all be-all of ensuring correct code. There's good coding habits and testing and profiling and whatnot too. But, I would argue that whatever effort can be put into verifying C code can be better put into code in other languages. The semantics of C are sometimes loosely defined, and very often far-reaching, preventing the use of modular reasoning. Whole-program analysis is not your friend.

      What would be really cool is to see from someone like the OpenBSD crowd, if they're so keen on C, develop some verification tools that maybe only work on a very, very restricted subset of C. Any code which does not conform to this restricted "more easily verifiable" subset of C in the core OS would be rejected. I don't know how practical it would be, but it would be cool to see :). I mean as an academic, obviously I think we should all be using Z, but I understand this doesn't make good sense in a lot of real-world projects. But you want to get serious about correctness, don't pussy foot around: get serious about correctness.

    46. Re:Interesting... by bersl2 · · Score: 1

      I don't exactly agree with your phrasing (I see the GPL ensuring that the non-developer user is free, and BSD ensuring that the developer is free), but I think we both agree on the concepts.

      The GPL is about restricting the developer in a few specific areas for the good of the non-developer. In fact, I see it as something that corrects a severe market failure; namely, that copyright, patent, et al. try to turn information, which has little to no scarcity beyond a quantity of 1, into a normal good, which I think it is not; the only scarcity---and therefore value to its originator---of information exists at that 0 to 1 margin (ideally, of course). In short, it's what you do with the information that has intrinsic value, not the information itself. (Of course, once information becomes widely disseminated, synthesis may greatly increase the value of the information to society.)

      The people who prefer the BSD license probably agree with this, but they do not wish to bother themselves with any of this freedom claptrap. They want to code, and if somebody else uses it in another program, all the better.

    47. Re:Interesting... by Splab · · Score: 2, Insightful

      It often depends on what you are doing, some programs need fast over reliable - others need stuff like strong exception safety, there should be room for both crowds.

    48. Re:Interesting... by Nevyn · · Score: 4, Insightful

      Let's at least get RMS's position right:

      Better idea, let's just get history correct.

      The GNU project was founded in 1984 to create a free operating system.

      Ok, true enough.

      In 1991, they were almost completely finished - they had written every essential component of a Unix-like operating system except for a kernel.

      Sure, and I've almost created a free engery device ... I've done everything apart from this one bit that creates energy for free. Also, GNU did not "create" everything else apart from the kernel ... they created some pieces and were doing the distribution work, so other people "donated" their work.

      Linus came along, wrote the Linux kernel,

      True enough.

      combined it with the almost-complete GNU system, and called the whole thing Linux.

      Not even close to true, Linux has only ever distributed the kernel ... other people combined it and called the whole things like "Red Hat Linux" or "Slackware Linux", GNU should/could have done this but had not bothered to do the work to make a usable distribution (as more than a collection of tarballs) and were happily ignoring Linux and telling everyone else to ignore it and use GNU-Hurd when it would be ready "any time now". This was pretty obvious naming at the time, we didn't call Solaris "GNU/Solaris" when we installed GCC, GNU-tar etc. on it.

      The GNU people were rightly upset that they were getting no credit for their work (to build a complete Unix-like OS).

      They got a huge amount of credit, for the work they did. They just didn't get their name in lights ... because they refused to do the work required for that. Then they complained and wanted more recognition than anyone else got who'd done the same amount of work as they had (like Perl or Xorg etc.) ... this created a "slight" backlash by people who actually know what happened.

      --
      ustr: Managed string API with ave. 44% overhead over strdup(), for 0-20B
    49. Re:Interesting... by Anonymous Coward · · Score: 0
      t often depends on what you are doing, some programs need fast over reliable

      "in terms of the OS and its base tools"

    50. Re:Interesting... by mdielmann · · Score: 1

      ...almost completely finished... When I hear that, I don't think they're still going to be working on that one last part for 16 years after an alternative component comes along. That's like saying your new car is complete - all it needs is the engine to be built. From the ground up. Sure, it makes for a lousy car without the brakes, but it's equally (or more) lousy without the engine.
      --
      Sure I'm paranoid, but am I paranoid enough?
    51. Re:Interesting... by Goaway · · Score: 3, Informative

      But modifying, even forking GCC is practical You haven't looked at the gcc codebase, have you?
    52. Re:Interesting... by jellomizer · · Score: 1

      GPL Fear I would sugest. GCC being RMS Babby will most likely be upgraded to the Next version of the GPL, when it comes up. Being that each new version of the GPL increases its incompatibilty with the BSD License would make people more and more worried about builinding their software with it. Right now it is OK. But as trends continue The GPL will be so strict that BDS cannot use the Compiler. So it is better to start having your own now and by the time GPL v. RMSHBI (Richard M. Stallin Hair Brain Ideas) is released and is so incompatible with the BSD Licence they already have a good working one in order. Besides the GNU people did the same thing rebuiling many of the BSD apps into GNU applications just to stay safe with its license because who know what direction the BSD licences will go.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    53. Re:Interesting... by Chandon+Seldon · · Score: 1, Interesting

      Better idea, let's just get history correct.

      That's a somewhat more difficult goal, and not one that I'm really interested in attempting here. We'd have to get into references and all kinds of other stuff that really isn't worth it for a Slashdot flamewar.

      They got a huge amount of credit, for the work they did. They just didn't get their name in lights ... because they refused to do the work required for that. Then they complained and wanted more recognition than anyone else got who'd done the same amount of work as they had (like Perl or Xorg etc.) ... this created a "slight" backlash by people who actually know what happened.

      The only credit that they didn't get is the specific credit they claim they deserved: The use of their name for the operating system they wrote. People argue three positions on this:

      • The GNU System is an OS developed by the GNU project, therefore it would be polite to refer to it by its name. (the RMS position)
      • The GNU System is an OS developed by the GNU project, but people who redistribute it can call it whatever they want. (the jerk position)
      • The idea of "the GNU system" is foolish. The GNU project just wrote some tools. Operating System is just another word for Kernel anyway. (the Linus position)

      My question to you is this: Are you arguing position #2 or position #3?

      Position #2 is 100% valid (but RMS gets to keep complaining that you're being a jerk). Position #3 is worthy of argument, but position #2 is not an argument in support of it.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    54. Re:Interesting... by peacefinder · · Score: 2, Insightful

      "Or, I understand the philosophy, but I think that particular way of putting it is a bit of FUD slinging."

      I don't think it's meant as FUD. Actually the idea that the code itself has been emancipated, so that no one can bind it or its children with the chains of ownership ever again, is quite an attractive and appealing idea.* Stallman was a bloody genius to come up with such a wild abstraction. He's freed the slaves all over again, it's just that these slaves are not human.**

      However, while this philosophy maximizes the freedom of the code itself, it does so at some cost to other interests. One cannot bind the software with the chains of ownership again - that's the whole point - which is a bit of a problem if one wishes to write code that can be used by any human for any purpose even if it means some of the code's children can be chained up again by some bloody-minded capitalist while others remain free. The BSD license maximizes the freedom of people, while not providing complete protection from slavery for all of the code's children.

      Both licenses attempt to maximize freedom, but they do so in different ways and for different interests; to secure those different freedoms they must make different tradeoffs.

      [*: When I say this I definitely do not mean to spread Fear, Uncertainty, or Doubt. It's meant as a compliment... although there are of course some who will view Stallman's grand idea as just bizarre philosophical wanking.]
      [**: And if you think this debate is interesting, just wait until the GPL philosophy meets seemingly self-aware robots! See also Asimov's book "I, Robot".]

      --
      With reasonable men I will reason; with humane men I will plead; but to tyrants I will give no quarter. -- William Lloyd
    55. Re:Interesting... by JWSmythe · · Score: 1

      #1 is a great starting point for many things. (and a few bad ones)

      --
      Serious? Seriousness is well above my pay grade.
    56. Re:Interesting... by chromatic · · Score: 1

      The GNU tools made Solaris usable. (I realize that's quite a polemic, but ask a lot of old-school Solaris administrators.)

    57. Re:Interesting... by SEE · · Score: 1

      Oh, yes. All they were lacking in 1991 was a kernel. Well, that should be no problem; the FSF had access to TRIX in 1986 and Mach in 1990, both working Free Software kernels that were already the core of Unix-like systems. The complete, production-quality GNU system was delivered by the FSF in, oh, 1992, right, after a bit of polishing of already-working code?

      Well, by 1996, surely? I mean, the FSF started the whole kernel project in 1986 from an existing, working codebase. Surely they could come up with a working kernel from existing code in ten years. Linux was already quite useful in 1996, a mere five years since it was written from scratch, so surely an even better FSF kernel was already available.

      All right. 1998, then? I mean, GNU was "almost completely finished" after the first seven years (1984-1991), then surely it was finished after another seven. That's eight years after work was started on the Mach-based HURD. NeXT was able to deliver a complete Mach-based Unix workalike OS in just four years, and most of that was spent developing the OO GUI and application frameworks; surely the FSF could get a Mach-based Unix workalike kernel out the door in twice that time?

      Uh-huh.

      I suspect that had Linus never written his kernel, we'd now be hearing from RMS about how FreeBSD is really GNU/FreeBSD, because it's dependent on the GNU compiler.

    58. Re:Interesting... by PremiumCarrion · · Score: 1

      I don't believe OpenBSD developers want to duplicate effort, they probably feel that GCC is something they have little control over, from a security viewpoint; I was reminded of some coments Theo made in this interview:
      http://kerneltrap.org/node/6550
      (toward the end)

    59. Re:Interesting... by bytesex · · Score: 1

      It's an entirely reasonable request.

      Which can also promptly be rejected.

      Why ? Because almost every bit of the GNU tools, except maybe for the C library and the binutils package, has been replaceable with other tools for a long, long time now. Maybe not with the kind of quality that some of the GNU stuff brings (although in the case of bash, Gnome/Gtk, info, bison/flex that quality is debatable to say the least), but if the FSF were to push the issue, then I'm sure those alternatives would find their way to the top very quickly indeed. Stressing the fact that the original Linux kernel was compiled using gcc and uses a GNU userland is very 199*, I'm afraid. Linux and a lot of effort outside of Linux have grown a lot in the mean time and could be doing very well without GNU, thank you.

      --
      Religion is what happens when nature strikes and groupthink goes wrong.
    60. Re:Interesting... by evilviper · · Score: 2, Insightful

      GNU is the single biggest "contributor", as it were,

      At what point are you forced to grant credit? Shall we call it KDE/QT/GNU/Linux?

      it could be argued that without GNU, Linux would just be a kernel, with no user space to run.

      No it couldn't. The comparable BSD tools have been around longer than the Linux kernel.

      Of course, it could equally be argued that without Linux, the GNU user space tools would just be a nice collection of tools with no OS to run on...

      Before Linux, it was pretty common to install several of the GNU tools on the closed-source Unix systems of the day. Problems with the GNU tools on Minix was in fact the motivation for creating Linux. Today, everyone that has to use a Solaris system for any length of time installs the GNU tools and tries very hard to forget that the Solaris crap even exists. Bash, if nothing else, is a common install on any Unix system (even though OpenBSD's branch of pdksh, and ksh93 are actually better shells, IMO).
      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    61. Re:Interesting... by lyberth · · Score: 2, Insightful

      didn't you read, that this is work done from all the way back in the 70'ties?
      Also why should they not be allowed to make a new compiler, Toyota started to make cars long after Ford made theirs - even though - eeh - Ford already made cars that did all the things that the Toyota cars did.
      What license doesn't ensure , oh, let me turn it around - what license ensures that committed code makes it in? The manager of a project allows or disallows for code to be committed, not the license.

      A compiler is an application, an application that compiles source code.

      A lot of people in the bsd developer teams are tired of gcc becomming more and more complex and becoming slower and slower at compiling. This might indicate why some are trying to find alternatives.

      --

      There isn't much like the scent of a fresh harddisk
    62. Re:Interesting... by Rufty · · Score: 1

      What happened to the Linux distro with the BSD userspace - haven't heard about that in a while now...

      --
      Red to red, black to black. Switch it on, but stand well back.
    63. Re:Interesting... by Climate+Shill · · Score: 1

      the BSD license ensures that it is the *user* that remains free.

      Free to do what ? The BSD licence doesn't even guarantee that the user has the right to read the code he's using !

      the GPL that ensures that the *code* remains free, while the BSD license ensures that it is the *user* that remains free.

      You have this exactly the wrong way round. If I'm using GPL code, I have the right to read, modify, and redistribute it. I, the user, have these freedoms. If, on the other hand, I'm using BSD code, I have no such rights. I have the right to do development with the same code of course, but that's just freedom of the code.

    64. Re:Interesting... by Cro+Magnon · · Score: 2, Insightful

      Toyota started to make cars long after Ford made theirs - even though - eeh - Ford already made cars that did all the things that the Toyota cars did.


      In fact, Fords do something Toyotas don't do, namely explode. :)

      Although GCC doesn't do that (that I know of), I see no problem with having an alternative. There are competing applications for everything else, from desktops (Gnome/KDE) to kernels (Linux/BSD), so why not compilers?
      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    65. Re:Interesting... by Jose · · Score: 1

      I find it peculiar and cognitively impaired

      heh, nice. I've never had something I said be called 'cognitively impaired' before. woohoo.

      While the GPL does provide a lot freedom to free-rolling humans, it also 'restricts' them to not modifying the code then releasing it under a completely proprietary license.

      The BSDL lets you do this, as long as you include the BSDL with the code you stole.

      so I am not saying that the freedom belongs to the code, I am just saying that the code must remain free for others to use, no matter what a user does to it.

      --
      The basic sleazeware produced in a drunken fury by a bunch of UCBerkeley grad students was still the core of BIND. --PV
    66. Re:Interesting... by Anonymous Coward · · Score: 0

      You misspelled "teh".

    67. Re:Interesting... by ray-auch · · Score: 1

      About $100-$200 per tape (in the old days) IIRC.

      I don't know how much of the FSF's revenue it was, but it seemed to be their main focus. Linux (along with all PC stuff I think) was relegated to the "microcomputers" section - ie. "stuff we don't support" - along with other hardware / OSes not considered to be "proper computers" I guess.

      RMS and the FSF basically seemed to miss the rise of the PC and x86 along with Linux.

    68. Re:Interesting... by Chandon+Seldon · · Score: 1

      When I hear that, I don't think they're still going to be working on that one last part for 16 years after an alternative component comes along.

      Linux was good enough, so there was no technical reason to get Hurd done. Sorry, but winning a stupid argument about OS naming isn't an important enough reason to finish a non-trivial software project (especially when you can go play with research concepts on it instead). We could discuss how long Hurd would have taken if Linux hadn't been written - but we wouldn't get anywhere with that discussion either.

      One thing to consider is this: a fully functional GNU can be run with different kernels (see GNU/kFreeBSD or Nexenta OS), but no complete Unix-like OS has been built on Linux without GNU.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    69. Re:Interesting... by nuzak · · Score: 1

      Gperf is pretty much unmaintained -- I imagine a simple request to add the bison skeleton exception to the gperf output would suffice. It's pretty much implied already, but if you're really uncomfortable with it, it's not like perfect hash generation isn't a trivial problem. Googling for it turns up three implementations (even minimal perfect hashes) that aren't gperf, right on the first page.

      --
      Done with slashdot, done with nerds, getting a life.
    70. Re:Interesting... by j-pimp · · Score: 2, Informative

      What would be really cool is to see from someone like the OpenBSD crowd, if they're so keen on C, develop some verification tools that maybe only work on a very, very restricted subset of C. Any code which does not conform to this restricted "more easily verifiable" subset of C in the core OS would be rejected. I don't know how practical it would be, but it would be cool to see :). I mean as an academic, obviously I think we should all be using Z, but I understand this doesn't make good sense in a lot of real-world projects. But you want to get serious about correctness, don't pussy foot around: get serious about correctness.

      I think you miss the point. The OpenBSD people are married to Unix and C, in much the same way as Bjarne believes the answer is to fix C++, and not to use Java and C#. Yes your right, it would be nice if one of them "sees the light" and programs in something where you just can't create a buffer overflow so easily. That being said, they should write the lcompiler/vm/interperter/kernel that runs under that as they have proven themselves to be one of the few chosen by $DIETY to write decent C. Until a cpu is created where you can handle arrays in a non dangerous manner on the machine code level, someone will have to write in C or assembly.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    71. Re:Interesting... by Chandon+Seldon · · Score: 1

      You really think that the existence of a fully functional free kernel had *no* effect on the amount of resources put into the Hurd project? After Linux was released, finishing the Hurd became an academic exercise primarily of interest to people having this particular argument - and that's not a good enough reason for software to get written.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    72. Re:Interesting... by Mr.+Slippery · · Score: 1

      to me, it is the GPL that ensures that the *code* remains free, while the BSD license ensures that it is the *user* that remains free.

      What are you talking about? The GPL places absolutlely no conditions on the user of a GPL covered work; it places conditions only on the distribution of copies of the work, or of modified works.

      And the condition that the GPL places is just that you treat others as you were treated, that you treat them as equals. And equality is a necessary precondition for freedom.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    73. Re:Interesting... by fatal+wound · · Score: 3, Interesting

      I'm sorry, but C is just a poor choice for ensuring correctness.

      Far too true, however for working with flexible or hazy requirements or looking to make code that is fast, C is very hard to beat. Also, just because this is true today, doesn't make it something that will be true forever.

      F... "hey, you know what? You're ALL right". I'm being facetious, and the C standard has done a great job in promoting C, but the C standard has really not evolved very far in terms of guaranteeing semantics.

      Once again, totally on the money. The standards group was too concerned to fix things like bitfields to make them useful, or standardize the method of determining the size of an "int". I think the standard evolved more to making the compiler writers happy than to make any real effort at fixing vague semantics that are quite prevalent and cause any number of problems.

      But, if you're trying to verify code that's already been written, either by hand or via some automated tool like a static analyzer, it is painful.

      This is so true that it is painful to hear! I worked a couple of years with a tool to analyze code for customers. The variability in the compilers, environments, implementation details, user hacks, or compiler switches that affect code is dizzying. Has anyone else enjoyed the declaration "char myvar[0]" construct?

      However, before you condemn all of the analysis tools, check out tools that perform "semantic analysis" (that what it was called when I was there) of C code. You may be pleasantly surprised. But it is still a challenge to wholly analyze any project. C++ is hideously complex, as is Ada (even the more recent revision, Ada95 I think).

      Once again, no panacea of code correctness tools, but with the body of work that has been placed in C; it would be foolish to just "walk away". I've worked with a number of languages; both object oriented and procedural. Many arcane assembly languages as well. In my work, I've come to the simple conclusion that *ALL* languages have issues in many areas. Something like the old adage "all dogs have fleas"...

      cheers!

    74. Re:Interesting... by Anonymous Coward · · Score: 0

      GNU could still release all their tools plus their kernel on an easy-to-install CD download and call it GNU. An entire distribution that you could download from gnu.org would carry the "Real McCoy" badge currently held by organisations like FreeBSD or Debian.

      Writing a kernel and getting it out onto people's computers should have been task number #3, after a shell and a simple-as-they-come C compiler (not gcc). After that their task would be finished by the zillions of eager open source contributors.

    75. Re:Interesting... by pthisis · · Score: 2, Informative

      But modifying, even forking GCC is practical
      You haven't looked at the gcc codebase, have you?


      It may not be forkable for the average person off the street, but if actual compiler developers are unhappy enough with something then forking GCC is certainly practical and we have plenty of examples of that happening.

      egcs forked gcc effectively enough that the fork displaced the original. Several bounds-checking gcc forks have been used in production systems. Apple and others have periodically forked (and sometimes re-merged).
      --
      rage, rage against the dying of the light
    76. Re:Interesting... by WilliamSChips · · Score: 1

      At what point are you forced to grant credit? Shall we call it KDE/QT/GNU/Linux? I'd say that anything without which the system would be unusable deserves credit. In general, the distro, GNU, and Linux.

      No it couldn't. The comparable BSD tools have been around longer than the Linux kernel. When Linux was coming out, BSD was in a lot of legal trouble. That's also why Hurd ended up so bad--it was originally going to use a BSD kernel but there were legal troubles. It's also why there are different BSDs.
      --
      Please, for the good of Humanity, vote Obama.
    77. Re:Interesting... by Bluesman · · Score: 2, Insightful

      The code base to GCC is huge and complex, not to mention sparsely documented. Going through the entire thing to make sure it's perfectly secure is likely a harder task than starting from scratch.

      It's not like a C compiler is a very difficult thing to write. GCC is much more than than just a C compiler. But if a C compiler is all you need...maybe GCC is overkill.

      --
      If moderation could change anything, it would be illegal.
    78. Re:Interesting... by WilliamSChips · · Score: 1

      I suspect that had Linus never written his kernel, we'd now be hearing from RMS about how FreeBSD is really GNU/FreeBSD, because it's dependent on the GNU compiler. Actually, the Hurd would have forked off a BSD kernel as well. That was their original plan before BSD legal troubles--had Linux not come they would have brought it in.
      --
      Please, for the good of Humanity, vote Obama.
    79. Re:Interesting... by Bluesman · · Score: 1

      "Linux can't even run "Hello World" without GNU System components like GNU Libc."

      I beg to differ.

      --
      If moderation could change anything, it would be illegal.
    80. Re:Interesting... by DragonWriter · · Score: 2, Interesting

      The GNU System is an OS developed by the GNU project, therefore it would be polite to refer to it by its name. (the RMS position)


      No, the RMS position is not that, since Linux is not the OS developed by the GNU project. It is an OS that's common feature is the Linux kernel; as usually distributed, it includes various tools from the GNU project. The RMS position is, roughly, "The GNU System is an OS developed by the GNU Project, and therefore every project that incorporates any components from that system is also morally obligated to include 'GNU' in the name of there product, even though they have express written permission to distribute the product without doing so."

      But even that's not exactly right, because this argument is only applied to Linux, not to other products that incorporate GNU tools.

      The GNU project's own OS doesn't have a general release yet, though its been coming Real Soon Now for my entire adult life.

      The GNU System is an OS developed by the GNU project, but people who redistribute it can call it whatever they want. (the jerk position)


      Actually, that is, properly speaking, "the GPL position", since the GPL does not have any provision requiring adhering to upstream naming conventions or request. If the GNU project had wanted to make that a condition of distribution, they ought to have incorporated it into the license under which they authorized people to redistribute their code and create derivative works.

      Complaining about people doing something you've given them express, written legal permission to do is somewhat childish, especially when you've (since you began complaining) revised the legal terms offered more than once without addressing the thing you keep complaining about.

      The idea of "the GNU system" is foolish. The GNU project just wrote some tools. Operating System is just another word for Kernel anyway. (the Linus position)


      The GNU project may or may not have written an operating system, but Linux isn't it. An operating system is more than a kernel, but a kernel is an indispensable portion of the operating system. Using some OS components GNU developed and some other OS components doesn't make the result the same OS GNU developed. Its something else. Distributors are free to call it things that highlight the kernel by including its name ("Red Hat Enterprise Linux"), things that evoke the name of the kernel without actually using it exactly ("Lindows"), or things that don't mention the kernel at all ("Knoppix"). They could do the same thing with the GNU toolchain. The fact that none of the distributors wan't to label the OS in a way that highlights the GNU toolchain may be disappointing to the members of the GNU project, but since they've expressly (and repeatedly, given the revisions to the GPL) given distributors permission to do exactly what they are doing, they don't really have any leg to stand on in complaining about it.
    81. Re:Interesting... by Chandon+Seldon · · Score: 1

      What I meant to say was this:

      Linux can't even run the traditional C hello world without GNU System components like GNU Libc.

      On the other hand, the 0% of all non-trivial user-level applications that are written entirely using syscalls will run fine on Linux alone.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    82. Re:Interesting... by Anonymous Coward · · Score: 0

      Let me know when you come up with a better programming language for an operating system.
      Then we can have this discussion.

      Pointers are definitely the Achilles Heel of C, but without pointers it is nearly impossible to correctly and efficiently create a kernel for an operating system such as Linux.

      The next most important feature of C is that the language requires a strict order of execution.
      Speculatively writing to hardware registers "in case" the results are desirable would lead to unpredictable driver behavior.

    83. Re:Interesting... by numo · · Score: 1

      I do see a point. There are applications that require a compiler - maybe not C on input, maybe not x86 on output, but if the compiler is written nicely, there are clearly reusable parts. Products of both my previous and current company include non-trivial compilers.

      Unfortunately gcc is such complex project that there is nobody to speak to if we want to buy (parts of) it relicensed. We did this with another GPL product where the number of authors was small and we were able to negotiate. A BSD-licensed code would be a great advantage.

      I understand that GPL people don't like the idea of using code in closed-source products. Fine, no problem with this, I contributed to quite a few GPL products - they help me to do the job, so I give something back. But my stance is that using a BSD-type licensed code in closed-source product is ethically OK as long as one gives back all patches and ideas or helps the product in other ways.

    84. Re:Interesting... by Goaway · · Score: 2, Interesting

      My point was more that if you might just be better off in the long run by starting from scratch, instead of taking on the maintenance nightmare that is gcc.

    85. Re:Interesting... by ChatHuant · · Score: 1

      current users of software "X" are unaffected by someone taking an open source project proprietary, it is only the code itself which is no longer free

      Enlighten me, please: how can code be free? In my humble, freedom belongs to people, and people are perfectly free to use this code any way they want. Talking about some company "taking an open source project proprietary" is straight FUD: they can only make proprietary their new code or their changes to existing code, but they can't "take" the original code proprietary. Does the original code become unavailable? Does it suddenly become tainted? No, and "some company" can't stop me from using it, so why say it not "free" anymore?

      Even adding "some company" in the discussion sounds questionable to me. Why should I, as a user of the original code, care that "some company" uses the same code as well? And why introduce "some company" in the discussion at all, except that they make a nice villain for a strawman?

      I seem to remember that one of the original concepts around BSD was to provide good quality code that could be used by all coders, and thus improve the quality of all software, whether open-source or proprietary. The BSD group seems to be adhering to this ideal, while the GPL side's approach is a bit too ideological for my taste.

    86. Re:Interesting... by Anonymous Coward · · Score: 0

      He's freed the slaves all over again, it's just that these slaves are not human.
      ...some of the code's children can be chained up again by some bloody-minded capitalist...

      Holy $#!7... I really don't want to deal with people as warped as this when I'm writing software, open or proprietary. I actually like writing software until people like this come along. Jeez.

      And dude, the software's not really alive. You need to get out of your parents' basement more.

    87. Re:Interesting... by VGPowerlord · · Score: 1

      It's also why there are different BSDs.

      I was under the impression that there are different BSDs because of competing ideologies. That and NetBSD kicked out Theo because he didn't work well with others.
      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    88. Re:Interesting... by Chandon+Seldon · · Score: 1

      ... Linux is not the OS developed by the GNU project. It is an OS that's common feature is the Linux kernel; as usually distributed, it includes various tools from the GNU project.

      I guess this is where we disagree.

      Any of the common "Linux distributions" do consist largely of the GNU System. It's not just "some tools"... it's the entire set of software on top of the kernel that take the system to the level of a Unix-like OS.

      We're talking about the system libraries (GNU libc), the shell (bash), the common Unix-like tools (tar/grep/etc), the development environment (gcc/make/etc), and frequently even the desktop environment (GNOME). If you wanted to build a Unix-like OS on top of Linux without GNU, your only other option would be to take vast chunks of some other Unix-like OS like Solaris or *BSD.

      Sure, there's a component here or there that's from somewhere else - a good example would be init - but GNU/Linux without GNU wouldn't be a Unix-like OS anymore. On the other hand, there have been successful attempts at running the GNU system without Linux (i.e. GNU/kFreeBSD and Nexenta OS).

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    89. Re:Interesting... by Anonymous Coward · · Score: 0

      Including his successors?

    90. Re:Interesting... by makomk · · Score: 1

      From what I remember reading, Linux was originally released under a license that restricted commercial use. I think the GPL played a large part in its popularity...

    91. Re:Interesting... by VGPowerlord · · Score: 1

      You can read RMS's position online.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    92. Re:Interesting... by jgrahn · · Score: 1

      I find it peculiar and cognitively impaired that one would think that freedom would somehow belong to an inanimate object (code) instead of a free-thinking, free-rolling human being. And I mean no offense, it's just my opinion and I understand the whole Linux camp seems to think that way.

      I am in "the Linux camp", and I have never, ever come across the notion of code having civil rights -- other than as a witticism or a bad metaphor. You have been trolled.

    93. Re:Interesting... by mdielmann · · Score: 1

      Well, you point would almost be interesting if it weren't for the pact that work was done on Hurd less than 2 years ago. Obviously someone (RMS) at GNU thought it was worth working on in spite of the fact that Linux was flourishing (relative to Hurd, at least). Either the release of Linux mattered in the time-line of the GNU kernel or it didn't. I think it's pretty clear that it deprioritized the project, but iirc RMS was working on a kernel tentatively named alix well before linux was released. Linus started later and finished first. You can't entirely blame the GNU kernel's long development time-line on Linux's inception. Good for him, and computer users in general. Good for us, as well, what RMS did.

      And as far as the "A needs B, but B doesn't need A" argument, that would only be the case if "B" had no equivalent replacements (there are for some pieces, some of which are even free - I'm not going to do a case-by-case study). Moreover, if it was difficult to replace "B" with "C" or "D", I'd have to question the design of "B", especially if "C" and "D" were easily interchangeable. We do want to be able to replace parts of the OS when better alternatives come along, don't we?

      --
      Sure I'm paranoid, but am I paranoid enough?
    94. Re:Interesting... by jesterzog · · Score: 1

      I really don't see any point in implementing a new C compiler under the BSD lisence. There's no reason to duplicate effort: it's not like the compiled binaries would be under the GPL.

      Perhaps it's for the same reason that some people prefer to use the BSD license for things other than C compilers. ie. Maybe they just want to write some code that other people can use in their own compilers, without imposing the GPL's distribution restrictions.

      If you assume that there are going to be closed source commercial compilers out there, the software world might be a better place if they're able to make use of at least some openly vetted code.

    95. Re:Interesting... by SanityInAnarchy · · Score: 1

      Auctually if I could write in C as well as him, I would do so more often.

      If he's that good at C, wouldn't he be better at another language? (Given time to learn, of course.)

      --
      Don't thank God, thank a doctor!
    96. Re:Interesting... by peacefinder · · Score: 1

      "And dude, the software's not really alive."

      I know that, and you know that, but nevertheless that metaphor is the best way I've found to understand the philosophical difference between the GPL and BSD licenses, and why those folks can't seem to get along.

      --
      With reasonable men I will reason; with humane men I will plead; but to tyrants I will give no quarter. -- William Lloyd
    97. Re:Interesting... by SEE · · Score: 1

      I think that after Linux became a fully-functional free kernel, sure, it had an impact on Hurd development. But by the time Linux actually had a fully-functional release in 1994, the FSF had been working on a kernel for seven years, and had failed to produce anything usable -- even though both TRIX and Mach started out more functional than Linux 0.01.

      So, had there been no functional Linux arriving in 1994, it seems completely reasonable to expect the unencumbered version of FreeBSD 2.0 in January 1995 would still have beaten HURD out of the gate. In which case the HURD would be just as irrelevant and incomplete today, while GNU/the FSF/the GPL would have been a lot less relevant.

    98. Re:Interesting... by DragonWriter · · Score: 1

      Any of the common "Linux distributions" do consist largely of the GNU System.


      Please provide a quantitative definition of "largely" and evidence that this is true for any significant number of the common Linux distributions.

      It's not just "some tools"... it's the entire set of software on top of the kernel that take the system to the level of a Unix-like OS.


      Even granting, arguendo, that the "entire set of software on top of the kernel" on any popular Linux distribution was from the GNU project (which is rather emphatic not the case for any actual popular Linux distribution), the fact remains that the product as a whole is not the GNU OS, because, whatever is on top of the kernely, the kernel is not the GNU kernel. Its a different OS sharing components.

      If you wanted to build a Unix-like OS on top of Linux without GNU, your only other option would be to take vast chunks of some other Unix-like OS like Solaris or *BSD.


      Perhaps. But then...

      Sure, there's a component here or there that's from somewhere else - a good example would be init - but GNU/Linux without GNU wouldn't be a Unix-like OS anymore.


      You just contradicted yourself, in one hand pointing to free alternatives to GNU that could be used with the Linux kernel, and in the next saying that this is impossible.

      At any point, all that's irrelevant to what I said. I never said that Linux distributions weren't Unix-like largely because they incorporated tools from the GNU project. Nor did I say that using the Linux kernel was the only way a Unix-like OS could be built incorporating GNU tools. So I'm not sure why you've spent so much effort making these points, which don't contradict anything I've said.

      All I've said is that none of the various Linux distributions are not an operating system created by the GNU project, they are operating systems that incorporate GNU tools with the Linux kernel. And you've provided no reason to believe anything differently.

    99. Re:Interesting... by Estanislao+Mart�nez · · Score: 1

      The problem with C isn't just the features (though a real module system would be cool, though). The big problem with C is that people write too much damn C code when they ought not to. Yes, writing to hardware registers and doing memory management needs pretty low level access to the hardware. Hardly anything else does, yet most C code out there is doing other stuff.

    100. Re:Interesting... by SEE · · Score: 1

      Would anybody have cared? The legal troubles for BSD extended into 1994, with a settlement in January and 4.4 BSD Lite being released in June 1994. Which would have been faster out the gate -- HURD with chunks of BSD added after June 1994? Or FreeBSD 2.0, which historically shipped in January 1995?

    101. Re:Interesting... by TehZorroness · · Score: 1

      RMS calls it GNU/Linux because Linux is merely the kernel and it takes a lot more then a kernel to power your every day computing environment. All of the utilities on your system - Coreutils, binutils, make, gcc, tar, gzip, and countless others - are the GNU operating system. These are not "Linux." Most of them existed in some state before Linux was born. Calling it "Linux" is like calling football "Argentina" because that happens to be your favorite team.

    102. Re:Interesting... by m50d · · Score: 1

      Then run GNU/kFreeBSD. Or, as others have said, opensolaris.

      --
      I am trolling
    103. Re:Interesting... by Anonymous Coward · · Score: 0

      Personally, I think it's ludicrous to anthropomorphise things that are not self-aware, much less alive. Also, your "I, Robot" analogy is flawed, since it is perfectly possible to "own" a device that runs GPL-licensed code. There's one under my desk right now. Unless that's the way GPLv4 is moving ...?

      One of the (ironic, in my opinion) features of the GPL is that it has proven to be a very useful framework for large corporations to collaborate on software for mutual benefit, in that it prevents the partners from cheating. Indeed, this may be the GPL's most lasting legacy, given the quality and quantity of IBM's contributions to Linux, and also since the "hobbyist" era of software development, which GPL was supposed to protect, is ending.

    104. Re:Interesting... by RicRoc · · Score: 1

      Code is changed over time by the programmers who devote their energies to it. In effect, code is alive - each time code is changed, that change betters the code in a way that is similar to evolution. Each "generation" is "better" than the preceding (or it dies) at serving the needs of the users. The GPL helps code to evolve - to live - by forcing all changes to remain in the "gene pool". That is why code must be free, so that users may enjoy the fruit of the living code.

      Now, if "some company" chooses to keep its changes to the code out of the "gene pool", how does that improve the "life" of the code? How many users benefit? How long-lived is that fork of the code? I weep to think of all the code that has been lost due to "some company" keeping them proprietary - and I've written plenty of it myself.

      Now, this is certainly not the same definition of "freedom" as one that pertains to people. The freedom of software is the freedom to be better, to exist, to live.

      --
      Who?
    105. Re:Interesting... by Ash+Vince · · Score: 1

      We're talking about the system libraries (GNU libc), the shell (bash), the common Unix-like tools (tar/grep/etc), the development environment (gcc/make/etc), and frequently even the desktop environment (GNOME). If you wanted to build a Unix-like OS on top of Linux without GNU, your only other option would be to take vast chunks of some other Unix-like OS like Solaris or *BSD. You are quote right, Stallman has made an invaluable contribution to Linux and the Open source movement as it stands. The only real problem is that he is a fanatic. He seems unable to work with people who's views differ from his own. One of the great strengths of Linus and the reason that Linux has gained the popularity it has is his ability to encourage other people to carry on working with him even if they disagreed with him on some points.

      Ok, there have been plenty of times with the kernel where other people have quit, but that is the same for any large project. the fact is though that almost every project RMS has been involved in has been forked by a large group of opposing developers who got so annoyed with him that they left on mass (EMACS / XEMACS, GCC / EGCS).

      The fact is that even though he is clearly a very gifted individual he is also quite clearly on a bit of a crusade. I have always believed that to truly succeed in any endeavor you need to be able to work with other people who have a different outlook to your own, not just work against them and produce something better for free. This seems to me to be one of the cornerstones of collaborative (open source) development. I actually think he would be very suited to the world of commercial development where he could simply force other people to follow his design method by virtue of being the technical lead. This is something he would surely excel at by virtue of his almost unrivaled technical ability.

      The problem he faces is though is probably similar to my own, he needs to be able to convince other people to work with him (ie - management, people with money to pay developers to put up with a sometimes very scathing personality). This is something he surely lacks or the free software movement and FSF would be very different.

      For those who now rush to his defence, this did not mean to come across as a personal attack, as many of his fault are also mine and I am trying my hardest to improve. I also hope to have conveyed in this post that I have a huge amount of respect for the man himself and also his ideals, many of which I also share.
      --
      I dont read /. to RTFA, I read /. to offend people in ignorance.
    106. Re:Interesting... by Chandon+Seldon · · Score: 1

      Please provide a quantitative definition of "largely" and evidence that this is true for any significant number of the common Linux distributions.

      Take a look at http://www.dwheeler.com/sloc/redhat71-v1/redhat71sloc.html, section 3.2. Are any of the GNU system components that the author mentions there absent from any major Linux distribution?

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    107. Re:Interesting... by ray-auch · · Score: 1

      He recognized the fact that Linux is running the toolchain.


      Which would be why he also talks about GNU/BSD, (and GNU/NextStep, GNU/OS-X etc.) ... except he doesn't. There are loads of system running the GNU toolchain, some as the only toolchain, some as the "commonly used by most sensible people" toolchain. Only Linux appears to be GNU/ though.

    108. Re:Interesting... by peacefinder · · Score: 1

      I ain't sayin' it's right, only that it's a useful metaphor for understanding the debate.

      With that, I shall stop arguing with an AC. :-)

      --
      With reasonable men I will reason; with humane men I will plead; but to tyrants I will give no quarter. -- William Lloyd
    109. Re:Interesting... by DragonWriter · · Score: 1

      Are any of the GNU system components that the author mentions there absent from any major Linux distribution?


      Does it matter? All those being present doesn't make the system "largely" GNU. Unless nothing much else is also present. Including everything that comes from GNU doesn't make it largely GNU, including little that does not come from GNU would make it largely GNU.
    110. Re:Interesting... by ray-auch · · Score: 1

      Linux was good enough, so there was no technical reason to get Hurd done.

      Linux was considered at one stage and found to be _not_ good enough (apparently for technical reasons) for GNU - hence the reason they carried on with Hurd.

      Also, prior to Linux, the GNU system was (and still is) successfully running on various proprietary Unixes, which means that there was no _technical_ reason to get Hurd done whether Linux existed or not.

    111. Re:Interesting... by Anonymous Coward · · Score: 0

      Which is pretty hillarious, given that RMS has spent all that time spreading FUD about the "attribution clause" of the original 4-term BSD. After all, if GNU wanted people to credit their work, GNU could have used a license which requires it, rather than explictly rejecting attribution for everyone but themselves.

    112. Re:Interesting... by Jose · · Score: 1

      slow down there cowboy...take a look at what you quoted from me...I'll place it here for you convienience:

      current users of software "X" are unaffected by someone taking an open source project proprietary, it is only the code itself which is no longer free
      (emphasis is mine)

      I rather explicitly said "someone", not "some company". so no villans ..

      Enlighten me, please: how can code be free? In my humble, freedom belongs to people, and people are perfectly free to use this code any way they want.

      and IMHO, if you license the code under the GPL, then it is code that is free, and according to the GPL, it will remain free.

      the FSF doesn't really agree with me onthis, so it probably makes sense that you don't either.

      but again to me, it comes down to the GPL protecting code, and the BSDL providing users/developers freedom to do anything they wish. It would seem that the GPL would make for a more long term freedom...but so far the *BSD's are still kicking around.

      --
      The basic sleazeware produced in a drunken fury by a bunch of UCBerkeley grad students was still the core of BIND. --PV
    113. Re:Interesting... by Anonymous Coward · · Score: 0

      """ I mean as an academic, obviously I think we should all be using Z """

      Ken Robinson, is that you?

    114. Re:Interesting... by Jose · · Score: 1

      You have this exactly the wrong way round. If I'm using GPL code, I have the right to read, modify, and redistribute it. I, the user, have these freedoms. If, on the other hand, I'm using BSD code, I have no such rights. I have the right to do development with the same code of course, but that's just freedom of the code.

      with BSD *code* you have the exact same rights, plus the ability to place it into your own proprietary code. if you are using a *program* (or library) based on BSD licensed code, then you are restricted to what ever license you agreed to with that program.

      --
      The basic sleazeware produced in a drunken fury by a bunch of UCBerkeley grad students was still the core of BIND. --PV
    115. Re:Interesting... by ray-auch · · Score: 1

      Take a look at http://www.dwheeler.com/sloc/redhat71-v1/redhat71sloc.html, section 3.2. Are any of the GNU system components that the author mentions there absent from any major Linux distribution?


      Well for a start I don't think you'll find Emacs in any major embedded Linux distribution, and many (most?) don't use glibc.

      Further, the list quoted is acutally largely non-gnu (both by package count and total sloc) - at least if you define largely as "more than half".

    116. Re:Interesting... by nuckfuts · · Score: 1

      > don't pussyfoot around; get *serious* about correctness

      This is OpenBSD you're talking about. The project began with an intensive audit of every line of code in the codebase. No one is more serious about correctness than Theo and his team.

    117. Re:Interesting... by Mantaar · · Score: 1

      What would be really cool is to see from someone like the OpenBSD crowd, if they're so keen on C, develop some verification tools that maybe only work on a very, very restricted subset of C. Any code which does not conform to this restricted "more easily verifiable" subset of C in the core OS would be rejected. I don't know how practical it would be, but it would be cool to see :) I'm by no means familiar with C in general or this tool in particular, but maybe you could have a look at Sparse. Maybe that's at least going in the same direction?
      --
      I'm an infovore...
    118. Re:Interesting... by Watts+Martin · · Score: 1

      The GPL is about restricting the developer in a few specific areas for the good of the non-developer. While I've made this observation before on occasion, I don't think that's really what the GPL does, even though I understand that's the intent (not to mention the talking point).

      For the most part, the primary advantage a non-developer has by using open source software is that if the original developers abandon the project, the program doesn't necessarily sink with them. (By "non-developer," I'm stipulating that the user doesn't have the technical expertise to make changes to more than configuration files--debugging or new features requires an actual developer.) This isn't something to be taken lightly, I recognize; there's a lot of good software from days past that's in abandonware limbo at best, frozen as it existed at its point of last release forever.

      But the point to understand here is that on a pragmatic rather than philosophical level, to the non-developer the license doesn't matter. Whether code can be incorporated into "non-free" projects is something that concerns developers, not end users. If I'm using a software package (and I can't program), it doesn't matter to me if FooCorp takes that same package and releases their closed-source FooDeluxe version of it. I can choose to purchase FooDeluxe if I want, but "OpenFoo" doesn't go away; it's possible development of OpenFoo may get kneecapped, particularly if FooCorp hired the lead developer or some such, but the risk of having the original developers leave for whatever reason doesn't change based on the license. The original OpenFoo code is still there and still open sourced, so it could be picked up.

      It's always struck me that the GPL is best at protecting developers against the FooCorp scenario. The GPL can prevent Developer A from making a profit that's largely based on Developer B's work (or at least make it more difficult). Were I directing a company that wanted to open source some or all of their products, for whatever reason, I'd choose the GPL precisely because it restricts my competitors, existing or potential, from easily using my work.
    119. Re:Interesting... by ray-auch · · Score: 1

      #4 - RMS bases his argument on a different definition of "OS" to most of the rest of the world, and doesn't understand that language is fluid. There will certainly be those who agree with him that a text editor and compiler are fundamentally parts of the "operating system". There are also plenty of people who are adamant that "gay" does not mean "homosexual", that "quote" is not a noun, that "critique" is not a verb and nor is "google"... etc.

      [this is not the same as #3 - I could agree with his definition of OS and still regard his argument as baseless because his definition is out of date]

      #5 - Inconsistent: Other OS's relying on GNU are not subject to the claim.

      #6 - Inconsistent: The GPL had previously been seen to allow the distributor to choose the name - ports & forks of actual FSF GNU packages had been renamed without any GNU credit requirement (moral or legal) being raised.

      #7 - Hypocritical: this is the same RMS who refered to the BSD credit clause as "obnoxious", right ?

      #8 - Nonsensical: the GNU system (historically) is expressly _NOT_ Unix. It was, from the start, supposed to be different - at system level - with a Unix compatibility/emulation layer. Linux is a straight Unix clone, and was infamously criticised (in direct comparison with GNU) for being so. GNU/Linux is an oxymoron.

      [and a few more]

      I think if you've only seen people take three positions on this then you haven't debated it with many people.

    120. Re:Interesting... by Mr.+Slippery · · Score: 1

      Taking some open source code and building a proprietary product out of it does not make the original open source code any less free.

      No, but it makes people less free. When you create a proprietary product, you are saying "if you attempt to share this, I will use the power of copyright law to stop you." That reduces freedom.

      The GPL prevents this, and thus acts to preserve freedom.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    121. Re:Interesting... by Chandon+Seldon · · Score: 1

      Well for a start I don't think you'll find Emacs in any major embedded Linux distribution, and many (most?) don't use glibc.

      That's true. Many embedded systems run operating systems that really should be called "Linux" rather than "GNU/Linux". When I said "major Linux distribution", I was referring to general purpose distributions like Red Hat and Debian.

      Further, the list quoted is acutally largely non-gnu (both by package count and total sloc) - at least if you define largely as "more than half".

      That's also true. So in order of LOC we come out with something like GNU/Linux/Mozilla/Java/OpenOffice/Xorg/Mesa/Tetex/FreeCIV. It would be reasonable to pick any slash and leave out the projects to the right for conciseness.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    122. Re:Interesting... by Chandon+Seldon · · Score: 1

      Does it matter? All those being present doesn't make the system "largely" GNU. Unless nothing much else is also present. Including everything that comes from GNU doesn't make it largely GNU, including little that does not come from GNU would make it largely GNU.

      Just because more things have been added doesn't mean that when you put all the pieces of the GNU System together you don't end up with the GNU System. Are you saying that if you bundled Oracle with Solaris it would stop being Solaris?

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    123. Re:Interesting... by Anonymous Coward · · Score: 0

      Because there are no pansy higher level languages that can match the performance and portability of C. Besides that, C is only dangerous if you don't know what you're doing.

    124. Re:Interesting... by Anonymous Coward · · Score: 0

      If he's that good at C, wouldn't he be better at another language? (Given time to learn, of course.)

      Don't argue too hard. The implementers of every operating system in the world disagree with you.

    125. Re:Interesting... by lordlod · · Score: 1

      Not even close to true, Linux has only ever distributed the kernel ... other people combined it and called the whole things like "Red Hat Linux" or "Slackware Linux", GNU should/could have done this but had not bothered to do the work to make a usable distribution (as more than a collection of tarballs) and were happily ignoring Linux and telling everyone else to ignore it and use GNU-Hurd when it would be ready "any time now". This was pretty obvious naming at the time, we didn't call Solaris "GNU/Solaris" when we installed GCC, GNU-tar etc. on it.

      That isn't right. The FSF (GNU people) were involved in the founding of Debian, sponsoring it for a year when it started up. One of the consequences of this is that Debian distributes GNU/Linux.

    126. Re:Interesting... by Pseudonym · · Score: 1

      I'm sorry, but C is just a poor choice for ensuring correctness.

      True enough, but Unix is essentially a C virtual machine. And it has to do enough low-level hackery that regardless of what language you wrote it in, it would resemble C.

      Something that's not widely appreciated is that any sufficiently large system is written in layers, with "hard" layers underneath (e.g. the low-level-C combined with template-hackery that you often see in C++ libraries, or the run-time systems that you see in higher-level languages, again often written in C) with "softer" layers on top.

      In Unix, the kernel is the "hard" layer, and user space is the "soft" layer.

      First of all, open up your copy of the C standard (any of them will do) and grep for the phrase "undefined behaviour".

      And after you've done that, look up the Unix 98 standard and do the same.

      The problem with program verification in the case of Unix is that the specification is often harder to debug than the program. Imagine that you have 15 possible generations of the same chip to interface with, each of which has slight quirks, but two of them have outright bugs that need to be worked around. Did you see what needed to be done to protect against the F00F bug? Try expressing that in Z.

      OK, now that I've gotten that off my chest, the real problem here is that Unix is too complicated. It is possible to break it up into manageable pieces (see QNX, for example), but BSD ain't it.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    127. Re:Interesting... by tepples · · Score: 2

      Yes, writing to hardware registers and doing memory management needs pretty low level access to the hardware. Hardly anything else does, yet most C code out there is doing other stuff. I develop for a battery-powered device that has been under-clocked to save battery power and given less RAM to make the device cheaper to replicate. On this device, even code that doesn't access the hardware must run fast, or the user gets annoyed. What's better than C for an environment with a 67 MHz ARM CPU and 4 MB of RAM?
    128. Re:Interesting... by tepples · · Score: 2, Insightful

      Of course, it could equally be argued that without Linux, the GNU user space tools would just be a nice collection of tools with no OS to run on... Without Linux, the Linux developers would be working on HURD. Without Linux and without HURD, we'd likely be using GNU over Solaris, *BSD, or Minix (all of which are Free by now).
    129. Re:Interesting... by Anonymous Coward · · Score: 1, Informative

      Do you have any idea how huge GCC is?

      If you want a simple, straightforward, bug-free compiler, you're better off writing one from scratch. It's actually not that hard - a non-optimizing (or minimally optimizing) C compiler is pretty simple (although multi-platform support is a PITA).

      If you turn off optimizations in GCC, the generated code is absolutely awful (and not much more likely to be bug-free than optimized code), compared to simplistic compilers that are designed to generate reasonably efficient code without the need for complicated optimizations.

    130. Re:Interesting... by ClosedSource · · Score: 1

      "The OpenBSD people are married to Unix and C, in much the same way as Bjarne believes the answer is to fix C++, and not to use Java and C#."

      I think Bjarne's real position is that no one tool is right for everything. His general comment about computer languages is that as they mature and become fully functional, the initial simplicity that everyone got excited about evaporates.

      You don't have to look any further than Java generics to see the truth of that (my observation, not Bjarne's).

    131. Re:Interesting... by ClosedSource · · Score: 1

      "Sorry, but winning a stupid argument about OS naming isn't an important enough reason to finish a non-trivial software project (especially when you can go play with research concepts on it instead)."

      Well, that's fine if one were to decide to lose the argument and stop bitching, but that doesn't seem to be the case. Besides, if one avoids doing a project on the basis that it's non-trival, there must not be much pride or ambition involved.

    132. Re:Interesting... by majiCk · · Score: 1

      That... is why he fails.

    133. Re:Interesting... by ClosedSource · · Score: 1

      I can't say I buy into this argument, but in any case, the GPL doesn't fully support it. Under the GPL, non-distributed code can be changed without those changes remaining in the "gene pool". Even in the case where the code is distributed, it's quite possible that the original project leaders will never discover the changes or never decide to incorporate them if they do encounter them. So the whole "gene pool" scenario doesn't really apply to the GPL.

    134. Re:Interesting... by evilviper · · Score: 1

      I'd say that anything without which the system would be unusable deserves credit. In general, the distro, GNU, and Linux.

      Average people would consider their system unusable without a GUI. Also, there are non-GNU alternatives for every tool out there. Shall we call it Linux/BusyBox? And I know there's LOTS of BSD code in the kernel and elsewhere, so how about GNU/BSD/Linux?

      When Linux was coming out, BSD was in a lot of legal trouble.

      The lawsuit took two years to conclude (Jan 1994), long before Linux was at all popular. That doesn't change the fact that they could in fact use the BSD tools instead, just that maybe they'd rather not have at first.

      It's also why there are different BSDs.

      The lawsuit had nothing to do with it. FreeBSD was focusing entirely on x86, while NetBSD was dealing entirely with other non-x86 platforms. BSDi/SunOS/Digital/Ultrix/etc. obviously split because of their commercial nature.

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    135. Re:Interesting... by Secret+Rabbit · · Score: 1

      But modifying, even forking GCC is practical and rational, whereas making your own, new, compiler and supporting it for all eternity is not. I can understand much of the BSD bent on licenses, but in this case...I don't see it.



      When projects get really big (e.g. gcc), sometimes it's actually more efficient to start from scratch than fix what's already there. I mean seriously, I don't know of one project that is long lived that didn't have to re-write from scratch (or really really should).

      Compilers are never "done",



      NO piece of software is ever done; there's always something new to do. Whether that actually happens or not is a different story.

      and writing one with a license that does not ensure other people's updates make it in is just ensuring that the author is perpetually supporting this himself.



      Sophistry! The *BSD's themselves are counter-examples to this absolute nonsense. Also, ever hear of a little project call OpenSSH?




      You are also ignoring (or simply don't understand) that people write OSS (partially) because they are scratching an itch and/or just interested in doing something and/or... or for any other number of reasons. I, for instance, have written several things that have had solutions b/c I was interested in doing it and wanted to challenge myself, etc. I also didn't like the way that some of those other projects did them. This also hasn't changed. I have two projects currently going on that already have solutions. One will probably see the light of day, the other one... maybe.




      Basically, stop making assumptions about the motivation of developers and whether people will help and whether people want it and whether it'll be helpful and... Just because you don't see it, doesn't mean that it doesn't exist. I for one will be keeping an eye on this project.

    136. Re:Interesting... by teh+kurisu · · Score: 1

      When you create a proprietary product, you are saying "if you attempt to share this, I will use the power of copyright law to stop you." That reduces freedom.

      No, it fails to increase freedom. Remember that the copyright of the proprietary code in a derivative product is assigned automatically, and so was never free. Although I do see the role of the LGPL in that it allows you to modify a free part of a proprietary program.

    137. Re:Interesting... by tm2b · · Score: 1

      Well, as somebody who installed much of the GNU userspace on a VMS (4.7 - as in the orange wall, thank you) system, I can say it was worth at least the price of admission. GNU Emacs alone was a joy compared to the included DEC editors and gcc made much of the open source software (before the "free as in whatever we want it to mean" meme became so contagious) compilable. All that, and we still got to keep a good security architecture and a decent structured filesystem.

      Freakin' Unix weenies, determined to forget the lessons of the past...

      --
      "It is our blasphemy which has made us great, and will sustain us, and which the gods secretly admire in us." - Zelazny
    138. Re:Interesting... by XedLightParticle · · Score: 1

      I think it depends on the purpose of the system. If I have an application that requires perhaps Perl and an Oracle server, then I don't need to mention the layers below when asking for those requirements to be met.

      In the same way, when releasing a user space application, it may require the Linux kernel, or it may require a UNIX/POSIX environment, which does not specifically require GNU to be used. Most people would want Linux because of it's hardware support, why should they care about GNU to provide the user space tools in between their hardware and their desktop?

      --
      If I was as pragmatic and objective as I claim to be, would I be commenting?
    139. Re:Interesting... by sfraggle · · Score: 1

      That's all very well, but the fact is that the OpenBSD people have something to show for their efforts. All you have, and all you ever will have, are hot air posts on an Internet forum.

      --
      were you expecting to see a sig here? perhaps you'd rather see the inside of an ambulance!
    140. Re:Interesting... by Hal_Porter · · Score: 2, Funny

      And he continues to write code in C...why?

      Because maintaining a secure system written in C requires paranoia, obsessive concentration on small details and merciless flaming of n00bs when they screw up.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    141. Re:Interesting... by delt0r · · Score: 1

      Well said. All to often the programming community sees solutions only in terms of what they need now. Or worse what they *like* now. Rather than what it computers and code really are. A solution to a problem, and the best tool is not always a hammer.

      --
      If information wants to be free, why does my internet connection cost so much?
    142. Re:Interesting... by thogard · · Score: 1

      What do you mean compilers are never "done"?
      I use finished compilers every time I have to fix something that was written in the academic or trendy language of the day.

    143. Re:Interesting... by thogard · · Score: 1

      The latest apache 2.0 autoconf insists on gnu grep even though there is no requirement for grep to deal with large command lines at all other than the test in the configure script.

      And with Solaris, I'm not happy with what is now on the 1st disk since its way too obese.

    144. Re:Interesting... by thogard · · Score: 1

      Freakin' Unix weenies, determined to forget the lessons of the past...
      As the 10th commandment of C goes:
      Thou shalt foreswear, renounce, and abjure the vile heresy which claimeth that ``All the world's a VAX^wSun^wLinux'', and have no commerce with the benighted heathens who cling to this barbarous belief, that the days of thy program may be long even though the days of thy current machine be short.

    145. Re:Interesting... by Viol8 · · Score: 1

      As you well know , C was not designed as an application development language that could be easily analyised with some tool. It was a drop in for assembler and as such it works pretty well. For the sort of area I work in (network coding) things would be pretty difficult *without* stuff such as pointer aliasing (mapping packet structures onto heap memory for example) and if this means I don't get to use certain tools , well I can live with that if it means my code runs 10x faster than [insert-language-of-the-month]

    146. Re:Interesting... by Anonymous Coward · · Score: 0

      GCC is largely rewritten in the BSD, regardless.

      It's important to understand the difference between Linux distributions and the BSDs.

      Linux distributions are just that, distributions, most packages are built and maintained upstream, packaged and combined by the distributor and distributed, and they're all built around the same kernel, and toolchain, etc.

      The BSDs however, are straight-out forks (NetBSD and FreeBSD being straight BSD4.4 forks, and OpenBSD having forked from NetBSD). They don't use a common kernel, or anything of the like. Everything in the core system is built, or rebuilt as the case may be, from the ground up, integrated and maintained by the respective BSD's dev team. The utilities may look the same, but the 'top', 'ls', or 'insertapphere' you find on a BSD isn't the same as the one you find in your average Linux distro; it's OBSD 'top' or FBSD 'top', or NBSD 'top', etc.

      Same goes for the compiler, even GCC gets rebuilt and rewritten to better integrate into the core system. And from my understand GCC was included not because it was wanted, but because at the time, there weren't many, if any, alternatives.

      It's a matter of principal, would you want the core system of your Linux distro to depend on MS's or Intel's compiler and toolchain? Probably not. So, too, we prefer our BSD o/ses to be self sufficient, with as little 'foreign' code as possible, GPL included. Ideally, There should be no non-BSD code in the core system, concessions are made when such isn't viable, but these concessions are always temporary. That being said, there's every reason to have a BSD licensed compiler.

      Was there any reason to duplicate the effort of RMS writing a GNU compiler and toolchain? Of course there was. It's the same case here.

    147. Re:Interesting... by ray-auch · · Score: 1
      When I said "major Linux distribution", I was referring to general purpose distributions

      The major distributions are soon going to be the embedded ones (if they aren't already). Some forecasts (see /. front page today) are suggesting 300m+ Linux units in five years - thats 60m per year. PCs (desktop) are about 300m / year with Linux usually reckoned to be about 2% of that - ie. about 6m. That would make just the cellphone (only one part of the embedded) Linux market 10 times the size of the desktop (and server market is similar - smaller market, but linux has a bigger share).

      So in order of LOC we come out with something like GNU/Linux/Mozilla/Java/OpenOffice/Xorg/Mesa/Tetex/FreeCIV.


      Except that was redhat in 2001, closer to the present day, Debian in 2005 (which has also been studied) is almost ten times the size overall, with only one of the largest packages being GNU:

            OOO/Linux/NVU/Mozilla/GNU/XFS/XFree etc.

      Yuck.

      At the end of the day, language is fluid and people will call things by a name that is convenient and understood. [anything]-slash-Linux is annoying to say, so most people won't. "Linux" is a convenient shortening and covers the whole family of systems (GNU-using or otherwise) built on the Linux kernel, in comparison with eg. "Windows" as a term.

      "Do you run Linux or Windows" could refer to anything from your phone to your server farm, whereas to get more specific it is common to drop those terms and talk about "XP", "2003" (ie. server), "Redhat" or "Ubuntu" (maybe adding a version or service pack number to be precise).
    148. Re:Interesting... by Anonymous Coward · · Score: 0

      Microsoft's compiler produces faster code than gcc does. For games and numerical intensive applications it might matter a lot, for an operating system, not so much.

    149. Re:Interesting... by Chandon+Seldon · · Score: 1

      Most people would want Linux because of it's hardware support, why should they care about GNU to provide the user space tools in between their hardware and their desktop?

      GNU isn't just "user space tools". It also is the core system libraries like libc. I think you'll find that any developer writing code for a system will be very interested in which libraries are available on the system - as will anyone who tries to install software compiled against those libraries.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    150. Re:Interesting... by Chandon+Seldon · · Score: 1

      What we're debating is operating system categories. "Embedded Linux" is a different OS category than "GNU+Linux". Differentiating between those is actually more functionally useful than differentiating between GNU+Linux and, say, Solaris.

      Except that was redhat in 2001, closer to the present day, Debian in 2005 (which has also been studied) is almost ten times the size overall, with only one of the largest packages being GNU: OOO/Linux/NVU/Mozilla/GNU/XFS/XFree etc.

      It's worth differentiating between applications and core OS components. In a general purpose GNU+Linux system, the core components unquestionably include the Linux kernel and GNU Libc. In contrast, OpenOffice.org is obviously an application rather than any kind of OS component. Exactly where you draw the line is arguable (I could argue gcc and grep as OS components with you all day) - but that minimum system definitely includes both GNU and Linux. Personally, I think the Debian "base" system or the Gentoo stage3 are a good start for a "core OS" definition.

      "Linux" is a convenient shortening and covers the whole family of systems (GNU-using or otherwise) built on the Linux kernel, in comparison with eg. "Windows" as a term.

      If that's really what you want, then it's correct. But... I doubt that you really want that most of the time. Frequently you're really just talking about GNU+Linux rather than including embedded Linux. Equally frequently, what you really want is "Free Unix" which includes Solaris and *BSD.

      At the end of the day, language is fluid and people will call things by a name that is convenient and understood. [anything]-slash-Linux is annoying to say, so most people won't.

      This is a valid argument all by itself. I fall back on saying "Linux" to be clearly understood all the time. That doesn't change the fact that what I'm usually referring to should be properly called GNU+Linux.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    151. Re:Interesting... by DragonWriter · · Score: 1

      Just because more things have been added doesn't mean that when you put all the pieces of the GNU System together you don't end up with the GNU System.


      What linux distribution puts all of the pieces (including any of the kernels used) from any release, version, etc. of the the GNU operating system together with no other pieces? Because, if you put post of the pieces together, replace a fairly critical one, and add a whole bunch of other pieces, you end up with something very different than the original system.

      That being said, note that I'm not saying that it would be wrong for a distributor of an OS using GNU components and the Linux kernel and other software together to call it a "GNU/Linux" system or just a "GNU" system. That would be no less rational a label than calling it a "Linux" system, though it is also no more accurate and no more useful, in practical terms. OTOH, there is no reason such a distributor should use that name, the GNU projects protestations aside. And there is no reason they need to use "Linux" in the name, either, and some distributions don't. Strangely, the Linux world doesn't seem to get their panties in a twist about distributions not using the Linux name the way the GNU project does about people not using "GNU".

      I'm saying that, presuming the CDDL allows this, if Oracle took OpenSolaris, swapped out the Kernel from some third party kernel (will call it Zoolix), bundled a version of the Oracle Database Server and other related software, and released the result as the "Oracle Zoolix Operating System", that Sun would be nutty to whine that they really ought to call it an "OpenSolaris/Zoolix" operating system, and to go around referring to it themselves as "OpenSolaris/Zoolix".

    152. Re:Interesting... by udoschuermann · · Score: 1

      it could equally be argued that without Linux, the GNU user space tools would just be a nice collection of tools with no OS to run on
      GNU tools run just fine on Solaris and Windows and just about any other operating system where you can get them compiled, so I'd say that the Linux kernel needs the GNU tools just a little more. :)

      But the whole GNU vs. GNU/Linux vs. Linux debate is ultimately counter productive, IMO, because (as the parent pointed out) there is a whole lot more to a Linux system than merely the kernel and GNU unless you run a completely pure GNU system. I'll argue that the "nickname" Linux has won out in the market and we'd all be better off if we get used to that and move on to more important issues.
      --
      --Udo.
    153. Re:Interesting... by Anonymous Coward · · Score: 0

      That is a common misunderstanding of LGPL.

      When you link to LGPL code, your own EULA for your code isn't forced to be LGPL but it does need to allow reverse engineering, etc. as required by LGPL for non-LGPL distribution of code linking to LGPL code.

      In other words, your own EULA for your code that links to LGPL code needs to comply with certain restrictions specified in LGPL if you choose a non-LGPL EULA to distribute your code. Even if your code doesn't contain any LGPL code and simply links to LGPL code.

      If you doubt this, ask a license compliance engineer at fsf.org. I did and I had to redo 2 months of coding because I had to replace LGPL libraries with BSD & MIT & public domain ones. This is because my project was for commercial software that could not comply with LGPL's restrictions on the commercial EULA (such as allowing reverse engineering.)

    154. Re:Interesting... by Cyclops · · Score: 1

      Theo de Raat, even though I don't agree with all he says, is a Free Software lover, and I don't believe for one minute that he would defend using a proprietary compiler for OpenBSD, an operating system designed for security.

      If you *have* to wonder why, check Tusting Trust

    155. Re:Interesting... by VENONA · · Score: 1

      Without Linux, I doubt very much that we'd have a free Solaris. I'd be wildly surprised at a free Minux. Perhaps a BSD or two.

      --
      What you do with a computer does not constitute the whole of computing.
    156. Re:Interesting... by Chandon+Seldon · · Score: 1

      I'm saying that, presuming the CDDL allows this, if Oracle took OpenSolaris, swapped out the Kernel from some third party kernel (will call it Zoolix), bundled a version of the Oracle Database Server and other related software, and released the result as the "Oracle Zoolix Operating System", that Sun would be nutty to whine that they really ought to call it an "OpenSolaris/Zoolix" operating system, and to go around referring to it themselves as "OpenSolaris/Zoolix".

      Kernels aren't special. Let's say that they introduced an Oracle file system (oraclefs) based on their database, and distributed a version of OpenSolaris called "Oracle OS" with the new file system by default. Now let's say five or six other groups started distributing OpenSolaris (pulled from OpenSolaris.org) with oraclefs and calling it "OracleOS" (and spreading the story that they wrote the whole OS in 2007 as new venture into Open Source). If Sun started complaining then, would you think that was reasonable?

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    157. Re:Interesting... by Eivind+Eklund · · Score: 1
      I'd guess that without Linux, we'd have a bunch of BSDs and a lot less use of the GPL license, all around. In my opinion, the reason free operating systems took off at that time is just sufficient developer mass on the Internet combined with hardware reaching the level where things could be implemented reasonably; something would have filled the free OS niche no matter what. Linux happened to take over for BSD due to being better at low end hardware and having a development model that made people feel more that it was "theirs" than BSD, so it was better in competition - but I believe BSD would have filled the niche well if Linux hadn't been there to take it. Better, worse - who can say? But well, sure.

      Eivind.

      --
      Doubting the existence of evolution is like doubting the existence of China: It just shows that you're uninformed.
    158. Re:Interesting... by epine · · Score: 1

      How about we settle for getting the linguistics right, and ignore history? Who put the idea forward that people gravitate towards a name for the purpose of ego equity? That's not how the human mind works. People tend to fixate on affordance distinctions. A person who is trying to decide which of his favoriate applications will run on a system, at that point in time, probably could infer more from the Linux/BSD distinction than whether the userland was GNU or proprietary. As some posts have pointed out, many proprietary systems had GNU userland tools available. In some cases, such as writing complex shell scripts, one might be primarily concerned about whether the target userland was GNU or not-GNU, but I don't think it was the overriding consideration most of the time.

      Secondly, the name of the distro tells you a lot about how the system is managed, and whether you have the right sysadmin toolset: packages/yum/apt, etc. For that matter, I don't recall ever installing a GNU file system. You choice of file system was usually dictated by your distribution, not your userland tools. In fact your distribution goes a long way to determining your politics as well: under Debian certain things would be missing or difficult that would be defaults elsewhere. I don't mind calling Debian GNU/Linux, because Debian explicitly bundles much of the FSF politics. I never regarded the GNU in Debian GNU/Linux as a reference to the GNU userland tools.

      I think it would be good if OpenBSD had its own C compiler, even if it only generates reasonable code for x86 architectures. A C compiler aimed more at correctness than performance is not complicated unless your code generator needs to support every known platform. It wouldn't mean that gcc needs to be phased out, it could be used on a complementary basis, especially if it has more rigorous portability and error reporting, suitable for compiling a kernel, if not for every imaginable userland program, or the monstrosity known as C++, which is my preferred language for statistical NLP, but would be an abomination for kernel purposes.

  12. Stupid waste of time by th0mas.sixbit.org · · Score: 4, Insightful

    Seriously. Let's duplicate the wheel twice: once for GPL, once for BSD, and then bicker amongst ourselves. Stuff like this stands in the way of actual progress being made. Neither side is right, I don't have a solution, but this is just dumb.

    --
    twitter.com/gravitronic
    1. Re:Stupid waste of time by sinnergy · · Score: 3, Funny

      Your argument holds no water. If that were the case, one could make the same arguments about operating systems. Why bother developing Linux in an attempt to "keep up with the Jones'" when Windows already exists.

      I'm just sayin'...

    2. Re:Stupid waste of time by th0mas.sixbit.org · · Score: 1

      I think that such a generalization of my argument is also worthless :P.

      Maybe I'm mistaken, but if PCC succeeds there is two outcomes:

      - it is better than GCC. If this is the case, then its too bad the GNU folk cannot benefit from whatever it has that GCC doesn't. Not like they'll admit it's superiority I'd presume.

      - it is identical or equal to GCC. Then its only benefit is licensing, and if it weren't for the licensing issue all of their effort could have been put towards building a single better compiler for open source.

      --
      twitter.com/gravitronic
    3. Re:Stupid waste of time by everphilski · · Score: 1

      it is better than GCC. If this is the case, then its too bad the GNU folk cannot benefit from whatever it has that GCC doesn't. Not like they'll admit it's superiority I'd presume.

      No, they will take it, remove the license and attribution, and relicense it GPLv3 :)

    4. Re:Stupid waste of time by Jeff+DeMaagd · · Score: 1

      I don't think your Windows vs. Linux things applies directly, in part because that's closed source vs. open source, rather than an open source compiler against another open source compiler.

      I think the point was that it's hard to justify having two open source compilers for the same language. It's a lot of duplicated work with far less benefit given that the existing compiler has been doing a pretty good job and the "new" kid on the block isn't even ready for use.

    5. Re:Stupid waste of time by DrSkwid · · Score: 1

      The correct solution is a world with more than one compiler in it.

      The only place progress takes us is death.

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    6. Re:Stupid waste of time by Anonymous Coward · · Score: 0

      Sometimes it is good to reinvent the wheel. Otherwise your car would look more like the Flintstones'.

      Maybe they just don't like the way gcc works under the hood and want to make it better. And in addition to this the developers simply don't want to use the GPL for that. Does this sound absurd?

    7. Re:Stupid waste of time by TheRaven64 · · Score: 2, Informative
      There's also an option three:

      - It has different goals to GCC.

      --
      I am TheRaven on Soylent News
    8. Re:Stupid waste of time by th0mas.sixbit.org · · Score: 1

      Still, if that's the case, then the world will end up with a better compiler, but licensing will prevent it being adopted by the GNU folk. I'm not saying don't create a new compiler, I'm saying that the licensing divide is petty and hinders progress.

      --
      twitter.com/gravitronic
    9. Re:Stupid waste of time by tim_mcc · · Score: 1

      The license divide is one way.

      A Linux distribution can include a BSD licensed compiler in the base system without issue.

      A BSD cannot include a GPL compiler in their base system, since one of the requirements all of the (major) BSDs have, is that everything in the base system is BSD compatible.

      BSD is GPL compatible. GPL is not BSD compatible.

      So, if PCC becomes a better compiler, nobody loses. If it doesn't, nothing changes.

    10. Re:Stupid waste of time by MoxFulder · · Score: 2, Interesting

      - it is better than GCC. If this is the case, then its too bad the GNU folk cannot benefit from whatever it has that GCC doesn't. Not like they'll admit it's superiority I'd presume.


      Actually... the BSD license is GPLv2 or GPLv3-compatible, because it doesn't impose any restrictions beyond those included in GPLv2 or GPLv3. So BSD code can be incorporated into a GPL program (Theo de Radt's recent rants notwithstanding).
    11. Re:Stupid waste of time by Anonymous Coward · · Score: 0

      BSD is GPL compatible.

      That's what we all used to think, yes, until we found that using BSD code under the GPL caused OpenBSD zealots to go absolutely nuts.

      Lawyers say yes, Theo says otherwise. In the meantime, anyone who tries to mix the two ends up in a world of hurt. BSD code, right now, needs to be treated as cancer, until the issues can be resolved.

    12. Re:Stupid waste of time by YU+Nicks+NE+Way · · Score: 3, Informative

      No: taking the BSD license OFF the code drives us nuts. You're free to incorporate our code and give us no credit. We object if you take that right from a downstream user. If you dual license, you don't take that freedom away. If you replace the license, you do.

      We want to encourage people to use our code if it's the best code for the task. Period. You want to undermine copyright. Well, you're free to do that, but some of us don't think that's a good idea, and others of us don't think it's that important.

    13. Re:Stupid waste of time by Hatta · · Score: 1

      I think the point was that it's hard to justify having two open source compilers for the same language.

      No it's not. Writing the new compiler made the developers happy. That's the only justification an open source project needs.

      --
      Give me Classic Slashdot or give me death!
    14. Re:Stupid waste of time by Anonymous Coward · · Score: 0

      We object if you take that right from a downstream user.

      And?

      If you prefer not to have that right taken from downstream users, why are you using a license that you've (as a group), at least in the past, claimed allows anyone to do anything with your code?

      You're now claiming it's viral. Great. Here's an idea, if it was the GPL you actually wanted, why not use the GPL?

    15. Re:Stupid waste of time by YU+Nicks+NE+Way · · Score: 2, Informative

      Our license entails the statement "If you distribute this source code, then any recipient can take it private. If you don't redistribute this source code, then you can do anything you please." What that means is that those who choose to redistribute the source (e.g. you folks) have burdens not borne by those who take the code private.

      Yes, that really does mean what it says -- you can take our code private as a binary without given us a thing, but if you preserve the source, you have to give us credit.

    16. Re:Stupid waste of time by Elf-friend · · Score: 1

      Yes, BSD code can be incorporated into a GPL program (Theo wasn't saying it can't be, BTW), but only if A) there are enough changes to qualify as a derivative work and B) the original program wasn't copyrighted in a country (like France or Germany) which grants ownership to derivative works to the author of the original program (in theory, a derivative work can still be licensed GPL then, but only if the original author decides to do so). You can't relicense code you don't own the copyright to, which some people don't seem to understand.

    17. Re:Stupid waste of time by Elf-friend · · Score: 1

      Nitpick: a binary distribution still has to present the copyright notice, license, and disclaimer of warranty in the documentation supplied, if any.

    18. Re:Stupid waste of time by Eivind+Eklund · · Score: 1

      The BSD license introduce the additional restriction of reproduction of the exact words of the BSD license.

      --
      Doubting the existence of evolution is like doubting the existence of China: It just shows that you're uninformed.
  13. *yawn* by blackcoot · · Score: 4, Funny

    call me when pcc does something useful, like, say, working.

    1. Re:*yawn* by daemonical · · Score: 1

      Okay I call you, just read the article.

  14. Re:The end of GNU ? by Arabani · · Score: 1

    Nope.

    a) This new version of PCC is nowhere near production quality.

    b) NetBSD != Linux

  15. Does it crash less? by bogaboga · · Score: 0, Troll

    I guess the question should be whether this compiler produces applications that crash less. In my experience, the crashes in current Linux applications are due to in large part, to GCC, though code quality also has something to do with these crashes.

    1. Re:Does it crash less? by h890231398021 · · Score: 1

      In my experience, the crashes in current Linux applications are due to in large part, to GCC Giving you the benefit of the doubt and assuming you're not a troll, can you elaborate on your "experience" from which you have concluded that crashes in current Linux apps are due to GCC? I'd say 99.99% of the crashes are due to bugs in the application code, not to bugs in GCC.
    2. Re:Does it crash less? by bogaboga · · Score: 1

      ...can you elaborate on your "experience" from which you have concluded that crashes in current Linux apps are due to GCC?...

      Did you read my submission...or are you engaged in what I call syntax distortion? I did not say "...crashes are due to GCC...", what I said is that crashes are in large part due to GCC.

      It would be helpful if you too, provided evidence to back up what you are saying. Watch this threade.

    3. Re:Does it crash less? by MadMidnightBomber · · Score: 1

      Unless you have looked at some core dumps, then your "experience" is not worth very much. I haven't seen any problems with generated code with GCC since 1996. Sometimes it doesn't compile the latest and greatest C++, but it's never generated incorrect code for me.

      --
      "It doesn't cost enough, and it makes too much sense."
    4. Re:Does it crash less? by MicktheMech · · Score: 1

      Did you read my submission...or are you engaged in what I call syntax distortion? I did not say "...crashes are due to GCC...", what I said is that crashes are in large part due to GCC.
      It would be helpful if you too, provided evidence to back up what you are saying. Watch this threade.

      Translation:
      Yes, I am a troll.

      Unless you consider 0.01% to be a "large part", h890231398021's response is valid.
    5. Re:Does it crash less? by TheRaven64 · · Score: 1

      In theory, it should. It's smaller, which is why it's so attractive to the OpenBSD folks. They want a simple compiler that produces correct code, and PCC seems, at first glance, to meet their needs.

      --
      I am TheRaven on Soylent News
    6. Re:Does it crash less? by Greyfox · · Score: 1
      In my experience crashes in current Linux applications are due to some jackass developer not terminating his strings properly. Occasionally they also try to use a pointer they just freed or memcpy int a region they don't own. I've also seen them take user input strings and use them directly as the first parameter in a printf. I have not once seen a bug in the compiler cause an application to crash.

      You have a 0% chance of finding a bug in the compiler in anything you're coding. That's not to say there aren't any -- the company I work for finds compiler bugs every once in a while. We're also compiling libraries for system-level stuff on pretty much every platform we can get our hands on. If you're just doing applications or even academic stuff, you're not going to find a bug in gcc.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    7. Re:Does it crash less? by Mr+Z · · Score: 3, Insightful

      while the person you're responding to *is* a troll, I guess it's worth pointing out that GCC and other highly optimizing compilers will "break" some apps that a simpler compiler won't break. Why?

      Many optimizations rely on careful reading of the standard, and explicitly taking the liberties that the standard lets you take. For instance, the following loop terminates on a simple compiler, but becomes infinite on some optimizing compilers:

      int i = 1;

      while (i > 0)
      . . . i = i * 2;

      The ANSI C standard states specifically that signed integer overflow behavior is implementation defined. If you were expecting 'i' to go negative after 30 iterations, and for that to terminate the loop, you could be in for a nasty surprise.

      Suppose an application relied on this behavior, and now it misbehaves when compiled with GCC. Did GCC "break" that application? In some sense, yes: The app functions correctly with compiler (a) but not with compiler (b), so the app must be compiled with compiler (a). The breakage, however, happened because the application its not strictly conforming. It uses compiler dependent semantics, and that's hardly GCC's fault.

      Simpler compilers also don't reorder code as much, and don't optimize away as much "dead code." Stuff that really should have memory barriers, explicit synchronization and perhaps the volatile keyword applied to them run just fine without all those things when compiled with a simple compiler and run on a scalar, in-order CPU. The source code is also easier to read, because in the end the semantics are much more restricted--meaning the compiled output more closely resembles the source input. Give that code to a highly optimizing compiler, though, and run it on a super-scalar, out-of-order machine, and it'll break left, right and center. Is it the compiler's fault? Is it the CPU's fault? It's really the gap between the semantics the programmer thought he had (and happened to have in the simpler environment), and what C actually guarantees.

      Simpler compilers implement simpler semantics that are easier to understand, but only because they're compiling a very restricted form of C that offers way more implicit guarantees than the C standard actually does. Personally, unless that's made explicit (and therefore truly guaranteed forevermore by the compiler), I suspect it's actually a recipe for disaster. If nothing else, it could lead to code that's significantly harder to move to different platforms, since it'll start to rely on these simpler, "easier" semantics. Of course, then again, super-scalar out-of-order CPUs still strip a bunch of that away, so who knows, it might not be that bad.

      --Joe
    8. Re:Does it crash less? by Anonymous Coward · · Score: 0

      >The ANSI C standard states specifically that signed integer overflow behavior is implementation defined.
      No it specifically mentions that signed integer overflow is undefined behavior which is a big difference than implementation defined. Implementation defined means it has to be documented on the specific behavior of the envinorment while undefined behavior means anything can happen even WW3 or nuclear war.

    9. Re:Does it crash less? by Mr+Z · · Score: 1

      You might call that a quality of implementation issue. :-)

      That said, my point still stands, and in fact is bolstered: Just because the C standard leaves it undefined doesn't stop compiler writers from giving the situation a useful definition. The resulting language is a superset of C, though, and is thus compiler specific. A program which relies on this variant of C is non-conforming.

      I guess the beef here is that "implementation defined" means a program could be conforming but not strictly conforming if it relied on implementation defined behavior, eh?

      --Joe
    10. Re:Does it crash less? by linimon · · Score: 0

      > You have a 0% chance of finding a bug in the compiler in anything you're coding.

      Nonsense.

      Across the 4 architectures and 3 OS branches that FreeBSD currently supports, there are a total of 29 ports that cause GCC internal compiler errors. (In fairness, this is out of total of 17661 ports.) 29 is much greater than zero.

      URL on request. (I would rather not subject the Ports Monitoring server to an immense load).

      Mark Linimon
      linimon@FreeBSD.org

    11. Re:Does it crash less? by Greyfox · · Score: 1
      Well yeah. You are building a freaking OS with the damn thing. You're in pretty much the same boat we are. Poke at the thing enough and you will find bugs in the compiler. Any single normal application developer is... simply not going to. A few of the wizards will, and those guys can probably also diagnose what went wrong with the compiler and either fix it themselves or suggest a fix.

      I'm not saying it's impossible. I'm saying it's pretty much impossible for one guy. And that compiler bugs are definitely not the cause of all (Or probably any) application crashes on any given platform.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    12. Re:Does it crash less? by ToasterMonkey · · Score: 1

      Why does the compiler writer giving something a useful definition make it part of the C standard? Or even a superset? If the behavior is UNDEFINED, and you write code that depends on a particular behavior, you aren't conforming to any standard right?

      I agree that implementation defined behavior makes it next to impossible to guarantee portability across different implementations. I'm guessing the spec was written that way so it wouldn't make any assumptions about the types of hardware it'd be implemented on. The best you could probably do to ensure portability is follow guidelines like these.

    13. Re:Does it crash less? by linimon · · Score: 0

      I'm talking purely errors that are found in building the ports -- e.g. applications found on the Internet, written by random people.

    14. Re:Does it crash less? by Mr+Z · · Score: 2, Insightful

      It is extremely difficult and next to pointless to write code that is strictly conforming. It is in fact quite useful, for instance, to use unions to re-interpret bit patterns. (Note that "portable" is something rather different than "strictly conforming," or even "conforming." Many non-conforming programs are still highly portable because of commonalities among implementations.)

      For example, suppose you want to bit-reverse an entire array in memory. That is, bit 0 of the first element in the array swaps locations with bit N-1 of the last element of the array, bit 1 swaps locations with bit N-2, etc., all the way down to the middle of the array. How would you implement that as a strictly conforming ANSI C program? It turns out to be rather difficult to do correctly. (Why would you want to? Well, it's a handy way to flip bitmaps for one thing.)

      First, you have to know how many bits are in each unsigned char. There could be from 8 to who-knows-how-many bits in an unsigned char. (Yes, 256-bit unsigned char are legal in ANSI C, as long as there's at least as many bits in a short int, int, long int and long long int.) So, you can't rely on any fast, cute implementations such as this ever-popular word-reversal routine:

      unsigned int bitrev(unsigned int x)
      {
      x = ((x & 0xFFFF0000U) >> 16) | ((x & 0x0000FFFFU) << 16);
      x = ((x & 0xFF00FF00U) >> 8 ) | ((x & 0x00FF00FFU) << 8 );
      x = ((x & 0xF0F0F0F0U) >> 4 ) | ((x & 0x0F0F0F0FU) << 4 );
      x = ((x & 0xCCCCCCCCU) >> 2 ) | ((x & 0x33333333U) << 2 );
      x = ((x & 0xAAAAAAAAU) >> 1 ) | ((x & 0x55555555U) << 1 );
      return x;
      }

      That code is implementation defined. It cannot be part of a strictly conforming program. It can be part of a conforming program, though it only works as expected on machines whose unsigned int is 32 bits. (That happens to be over 90% of the PCs and *NIX boxes people work with these days, but that wasn't true as recently as 10 years ago.)

      What about other undefined things? Well, sometimes an implementation defines them usefully. For example, consider this bit of code:

      union
      {
      unsigned int word;
      unsigned char bytes[4];
      } foo;

      foo.word = 0x01020304;

      if (foo.bytes[0] == 1 && foo.bytes[1] == 2 && foo.bytes[2] == 3 && foo.bytes[3] == 4) printf("Big endian\n");
      else if (foo.bytes[3] == 1 && foo.bytes[2] == 2 && foo.bytes[1] == 3 && foo.bytes[0] == 4) printf("Little endian\n");
      else printf("Unknown endian\n");

      This is useful code. Chances are nearly every compiler you meet (at least, which offers 32-bit ints) will handle this correctly and tell you the endianness of the machine. That means it's reasonably portable. It also happens to be quite undefined.

      Sure, it fails miserably on oddball machines with non-standard word sizes, but most programs only care to be portable amongst the vast majority of machines that have 8-bit char, 16-bit short, 32-bit int. (This is part of the reason why LP64 machines are more popular than ILP64 machines.)

      In general, compilers implement a superset of the standard by providing reasonable semantics to expressions that the standard leaves undefined. For instance, on most compilers, signed arithmetic wraps around the same as unsigned arithmetic, and the values you get are exactly what you'd expect from 2s complement arithmetic, despite the fact that the standard leaves those results undefined. Heck, until the adoption of C9x, C++ style comments were not technically legal in C programs, but most compilers accepted them.

      --Joe
  16. Sounds like a challenge... by Gordonjcp · · Score: 1

    I think of it as if it shall be able to compile and run on PDP11 (even if it may not happen in reality).

    Like I don't have enough things to spend my time on. Maybe I should finish my PDP11 page first.

  17. How many compilers can we cram into a phone booth? by elwinc · · Score: 1

    The commit message gives a little bit of pcc's history:
    . . .
    The intention is to write a C99 compiler while still keeping it small, simple, fast and understandable. I think of it as if it shall be able to compile and run on PDP11 (even if it may not happen in reality). But with this in mind it becomes important to think twice about what algorithms are used.
    OK, the onchip cache on my core 2 duo is many times larger than the full RAM on any PDP-11 I've ever heard of. So why should I be interested in a buggy compiler that wants to fit into tiny PDP-11 constraints? Maybe this compiler would be exciting if it were ported to an iPhone, but I fail to see why it's interesting in a linux environment.

    --
    --- Often in error; never in doubt!
  18. It compiles? by bcmm · · Score: 1

    It is currently not bug-free, but it compiles
    I realise that mean "it can compile", which is impressive, but that really does read like "it can be compiled", which I would have thought was a necessary prerequisite to this sort of discussion.
    --
    # cat /dev/mem | strings | grep -i llama
    Damn, my RAM is full of llamas.
  19. That's dumb. by imbaczek · · Score: 4, Interesting

    pcc will take YEARS to get the functionality and optimizations that gcc has. Even if it compiles slowly and sometimes generates dumb code.

    Either way, they'd much, much better off if they imported LLVM and redirected their compiler brain power to clang.

    1. Re:That's dumb. by TheRaven64 · · Score: 2, Informative

      PCC and LLVM have different goals. LLVM is intended to be a replacement for GCC with a modern architecture. PCC is intended to be a simple C compiler, not too heavy on the optimisation, but easy to audit and able to produce correct code. LLVM is about an order of magnitude bigger than PCC, making it much harder to audit. PCC would be great for the OpenBSD base system, while LLVM would make a good choice for compiling packages. It's all about choosing the right tool for the job.

      --
      I am TheRaven on Soylent News
    2. Re:That's dumb. by Goaway · · Score: 1

      With a llvm backend for pcc you could have a good compromise, though.

    3. Re:That's dumb. by TheRaven64 · · Score: 1

      Not really. LLVM is around 25% the size of the entire OpenBSD base system. Maybe you could strip out a lot of the stuff that OpenBSD doesn't need, but you'd still have a huge amount of code left (along with problems maintaining it). LLVM belongs in ports, not the base system.

      --
      I am TheRaven on Soylent News
    4. Re:That's dumb. by Goaway · · Score: 1

      You don't need any LLVM code in the compiler. It might be easier to have it there, but it's not a requirement - you can just output LLVM assembly and call external tools on that.

  20. Is this a joke? by Anonymous Coward · · Score: 0

    Still struggling, still in debug, and only works on i386?

    Is his submission claiming that "the replacement for gcc has arrived" a joke?

    This sounds like good Senior Thesis at best.

  21. Call me when it compiles something other than x86. by NekoXP · · Score: 1

    Well, that's fairly pointless that it only compiles x86 code. So, it basically means they're competing to make a compiler which is BSD licensed and compiles the most common processor out there, against the biggest GPL licensed compiler on the most common processor?

    I really think some effort needs to be put in to support other processors like ARM, MIPS and PPC - after all, GCC is a hardly a diva for any of these (code generation is terrible) and they are not the fastest platforms either. This is where actual performance improvements and quality code generation would actually count for something.

  22. LLVM / clang by sabre · · Score: 4, Interesting

    PCC is interesting, but it's based on technology from the 70's, doesn't support a lot of interesting architectures, and has no optimizer to speak of.

    If you're interested in advanced compiler technology, check out LLVM, which is an ground up redesign of an optimizer and retargettable code generator. LLVM supports interprocedural cross-file optimizations, can be used for jit compilation (or not, at your choice) and has many other capabilities. The LLVM optimizer/code generator can already beat the performance of GCC compiled code in many cases, sometimes substantially.

    For front-ends, LLVM supports two major ones for C family of languages: 1) llvm-gcc, which uses the GCC front-end to compile C/C++/ObjC code. This gives LLVM full compatibility with a broad range of crazy GNU extensions as well as full support for C++ and ObjC. 2) clang, which is a ground-up rewrite of a C/ObjC frontend (C++ will come later) that provides many advantages over GCC, including dramatically faster compilation and better warning/error information.

    While LLVM is technologically ahead of both PCC and GCC, the biggest thing it has going is both size of community and the commercial contributors that are sponsoring work on the project.

    -Chris

    1. Re:LLVM / clang by samkass · · Score: 0, Flamebait

      I was thinking the same thing about Apple's clang and why they didn't just use it instead. But the latest I've seen on clang seemed to indicate it was still in the early stages of development, and "replacement of GCC" was explicitly listed as a non-objective.

      I think having a compiler that's not dependent on FSF's increasingly extremist political views, but it does seem like a lot of work for little actual benefit outside an "insurance policy".

      --
      E pluribus unum
    2. Re:LLVM / clang by sabre · · Score: 2, Interesting

      clang is fairly early on, but so is PCC. PCC supports almost no GCC extensions (e.g. inline asm, attributes, etc), doesn't support C99 fully, and has many other problems. The clang parser is basically done for C and clang has support for several other source analysis tools other than "just code generation". See the slides linked of http://clang.llvm.org/ for details. I'd expect clang to be fully ready for C use in the next year.

      llvm-gcc is quite mature (it has built huge amounts of code, including apps like Qt and Mozilla), supports C/C++/ObjC and bits of FORTRAN/Ada if that is your thing. Using llvm-gcc you get the advantages of the LLVM optimizer and code generator with the GCC front-end.

      -Chris

    3. Re:LLVM / clang by iMacGuy · · Score: 1

      I'd love a better free compiler, but I tried building FFmpeg on llvm-gcc 2.0 (darwin/x86) the other day and it kinda, well, sucked :(

      Had to disable inline asm (it miscompiled h264 causing a crash and ICE'd on the MMX stuff), and two decoders (SNOW and Apple SMC never finished compiling).
      After that it ran slower than Apple gcc 4 on my test file.

      Of course, ffmpeg is nothing like a normal program, and I have like no free time so I couldn't investigate further. I'll run some stuff by the web compiler and file bugs if it still ICEs, I guess.

      --
      Why won't slashdot let me change my terrible username :(
    4. Re:LLVM / clang by Anonymous Coward · · Score: 0

      File bugs!

      Also, make sure you are compiling a release build. Then check the compile time and submit a bug if its still slower. The LLVM community is really good about fixing these things.

      Also, the LLVM demo page is running LLVM 2.0. Many things have been fixed and improved in SVN. At the end of the month 2.1 will come out and the demo page is updated.

    5. Re:LLVM / clang by Old+Wolf · · Score: 1

      PCC supports almost no GCC extensions (e.g. inline asm, attributes, etc),
      That's a good thing. It discourages people from writing non-portable code.

      doesn't support C99 fully,
      Nor does GCC

  23. End of GPL, Doom, Gloom, etc... Woah, girls? Neat! by Anonymous Coward · · Score: 0

    Wow, the end of GCC; I thought I'd never see it. Looks like there's nothing left for us GPL guys to do but stop writing software and get real lives.

    I hear, out there I mean, there are girls? Is that true?

  24. Re:The end of GNU ? by Anonymous Coward · · Score: 0

    will this spell the end of the (childish) GNU moniker in Linux ? No, the GNU moniker is intended to reflect that the userland almost entirely comes from GNU projects and that's not likely to change - it's not just the compiler they're talking about. IMO the most significant one to justify GNU/Linux is the GNU C library.

  25. Although competition is good... by mi · · Score: 1

    The leaner, lighter, faster, and most importantly, BSD Licensed

    It seems profoundly stupid to stress out the BSD license as the "most important" feature of this new software.

    GPL may not be as free as BSD-license, but one needs to be a real zealot to switch based primarily on this reason. I hope, FreeBSD will wait for it to work on other platforms and only switch because it is "leaner, lighter, and faster".

    --
    In Soviet Washington the swamp drains you.
    1. Re:Although competition is good... by MrCopilot · · Score: 1
      It seems profoundly stupid to stress out the BSD license as the "most important" feature of this new software. GPL may not be as free as BSD-license, but one needs to be a real zealot to switch based primarily on this reason. I hope, FreeBSD will wait for it to work on other platforms and only switch because it is "leaner, lighter, and faster".

      Call me a zealot then. leaner, lighter, faster does not mean better. leaner usually means less features, lighter usually means skimped, faster usually means shortcutted, Granted on a new program it can be made faster, lighter, leaner, without these drawbacks. But GCC is a very, very mature piece of software. The easiest way to be faster, lighter, and leaner than GCC, is to be inferior to it. GPL vs BSD, My professional and personal opinion is GPL is better. Since I do not use *BSD, I guess I have a hard time understanding the need. Even if i did, it sure sound like a bunch of whining that compiling an entire operating system is too time consuming. waaaaanh! I build embedded systems for a living, where changing 1 line of code sometimes can start a very long recompile. This is as it should be.

      --
      OSGGFG - Open Source Gamers Guide to Free Games
    2. Re:Although competition is good... by Anonymous Coward · · Score: 0

      Call me a zealot but I will only run FreeBSD compiled with a stable compiler instead of one a beta version. Why should FreeBSD switch for 7.0-CURRENT? NetBSD doesn't either. Its merely in pkgsrc! And yes, BSD 4-clause sucks.

    3. Re:Although competition is good... by Estanislao+Mart�nez · · Score: 1

      It seems profoundly stupid to stress out the BSD license as the "most important" feature of this new software.

      Yup. However, to the credit of the people developing it, they are not the ones stressing this. It's just the slashdot submission trolls and the gossip-greedy slashbots who are...

    4. Re:Although competition is good... by Secret+Rabbit · · Score: 1

      If it is "leaner, lighter, and faster" does the motivation really matter? i.e. being as asinine in the opposite direction is hardly helpful.

  26. The licence is just the top of the iceberg by DiegoBravo · · Score: 3, Informative

    "So, really, there's no point in duplicating effort on a BSD lisenced compiler. Correct me if I'm wrong."

    From the discussion of TFA:

    The licence is just the top of the iceberg

    1. Re:The licence is just the top of the iceberg by tknd · · Score: 1, Flamebait

      "- The whole design of GCC is perverted so that someone cannot easily extract a front-end or back-end. This is broken by design, as the GPL people do believe this would make it easier for commercial entities to `steal' a front-end or back-end and attach it to a proprietary code-generator (or language). This is probably true. This also makes it impossible to write interesting tools, such as intermediate analyzers. This also makes it impossible to plug old legacy back-ends for old architectures into newer compilers."

      Well that explains a lot. And here I was thinking that all modern compilers were designed correctly with a front-end and back-end. So much for academics.

    2. Re:The licence is just the top of the iceberg by Anonymous+Conrad · · Score: 5, Insightful

      The whole design of GCC is perverted so that someone cannot easily extract a front-end or back-end. This is broken by design, as the GPL people do believe this would make it easier for commercial entities to `steal' a front-end or back-end and attach it to a proprietary code-generator (or language). That's entirely wrong. RMS has been worried about this, and he (through the FSF who own the copyright) have previously objected to any patches that serialize the GCC's intermediate state for just this reason. (Although GCC's new link-time optimization work will change this.)

      GCC's intermediate formats GIMPLE and GENERIC are based on a research compiler, not a deliberate perversion. There's no technical steps to stop reuse, and indeed it has been done - Sun distribute the GCC 4.0.4 front-end altered to use their own SPARC code generator as a back-end.
    3. Re:The licence is just the top of the iceberg by julesh · · Score: 5, Interesting

      Well that explains a lot. And here I was thinking that all modern compilers were designed correctly with a front-end and back-end. So much for academics.

      Actually, the post you're replying to is total bollocks. GCC has had a clear divide between front and back end (not to mention a source-language independent middle layer for performing optimizations) since I first looked at it in about 1996. Each layer is hideously complex, but they are all there.

    4. Re:The licence is just the top of the iceberg by bockelboy · · Score: 2, Informative

      Gah, that's a bit of a flame. If you look at the architecture, there's good front-end / back-end separation. The front and back ends are necessarily extremely complicated, but you can rip the entire front end and compile your code to GIMPLE, or whatever their SSA form is called. There also have been several different languages (Java, C, C++, Ada, Obj-C) that are production frontends to GCC's backend.

      I do know that I wrote an intermediate analyzer for a semester-length class, along with another grad student. In fact, the prof suggested we use GCC because several others have done the exact same thing, going back many years. It's not easy, but it's possible.

      Sounds like whoever posted that was just extremely frustrated and wanted to blow off some steam. It can happen. GCC used to be a lot worse, and a lot further behind academia. There have been growing pains in the last couple of years getting it to "catch up". Perhaps that's what he was frustrated with?

    5. Re:The licence is just the top of the iceberg by jc42 · · Score: 1

      And here I was thinking that all modern compilers were designed correctly with a front-end and back-end. So much for academics.

      Yeah; it can be quite impressive how effectively the legal system can mess up good engineering design. Especially when combined with the tactics of the "market leader" commercial corporations.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
  27. Call you? by catbutt · · Score: 1

    Can't you just check in at slashdot here and there? If you post a number, I suppose I can try to remember, but geez....

  28. We need to replace gcc ... why? by joe_n_bloe · · Score: 3, Interesting

    Let me get this straight. A compiler that has been production-quality for over 15 years, compiles everything on every architecture, and has been continuously improved every minute of its existence needs to be replaced by ... Son of pcc? Because of a license?

    Sure, I prefer BSD-style licenses, and so do some other people, but what drives gcc development is the GNU license. I think I'll stick to the compiler that's debugged. Oh, that's right, I forgot, it comes with a debugger too. If you like that sort of thing.

    1. Re:We need to replace gcc ... why? by evilviper · · Score: 5, Interesting

      A compiler that has been production-quality for over 15 years, compiles everything on every architecture, and has been continuously improved every minute of its existence needs to be replaced by ... Son of pcc? Because of a license?

      You couldn't have gotten that statement any MORE WRONG if you had tried.

      GCC's "production quality" is an on-again, off-again thing. Through most of v3.x it had too many bugs to count, and was inherently unreliable. It couldn't even compile ITSELF with the most basic optimizations or the resulting binary would generate incorrect code. Up until v4 it also misaligned stack variable. It had, and still has, MANY bugs. That GCC successfully compiles code at all is almost entirely due to it being so popular that everyone knows it, and works around its bugs without even thinking about it.

      It has never had GOOD support for any other platforms than x86. Remember the RedHat GCC2.96 fiasco? They forked it because they needed it to support more platforms than it currently did. And even through v3.x the non-x86 ports of GCC had even more bugs than on x86, commonly falling apart if you attempt to use any optimizations. Now, they're DROPPING support for those platform entirely, which is a big problem for developers of operating systems for those platforms.

      "Improved" is pretty vague. HURD has probably been "improved" for every minute of it's existence as well... Meanwhile the far younger ICC (Intel's compiler) beats the pants off of GCC without even trying.

      What's more, GCC's "improvements" come at great cost. If you're a full-time developer, for the final release you want optimized code, but while developing, you want to compile and be able to test code frequently, and so as quickly as humanly possible. GCCv3+, even with all optimizations disabled, takes far, far longer to compile binaries than even older versions of GCC, and as it says, something like 10X slower than PCC.

      The license issue is only incidental. These (and other) problems pushed them away from using GCC. Since they happen to be BSD developers, they'd prefer their work to be BSD licensed, and so it is.
      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    2. Re:We need to replace gcc ... why? by Secret+Rabbit · · Score: 1

      If you actually would have even read the summary and many of the previous posts, you wouldn't have made such an profoundly stupid post. Go back and educate yourself.

  29. Some real meat on PCC versus GCC? by Anonymous Coward · · Score: 0

    An article about a nearly-ready, buggy compiler under BSD license is nice, but really does NOT address how it really stacks up versus GCC. GCC has many options for tuning, optimization, use of things like SSE, etc. GCC also supports many different architectures. How does PCC compare: Price (both $0), license (GPL versus BSD), time to compile, performance of executable, optimization options, use of advanced processor features, 64-bit support, multiple architecture support, use for embedded applications, use for a kernel (BSD, Linux, other), etc.

  30. GCC Compiler Finally Supplanted by PCC? No. by xxxJonBoyxxx · · Score: 1

    GCC Compiler Finally Supplanted by PCC?


    I'd say "no." Here's why:

    It is currently not bug-free, but it compiles on x86 platform...


  31. How does one interpret that sentence, though? by benhocking · · Score: 1

    I took it to mean that it compiles code 5-10 times faster, but that compiled code itself is usually slower. Not having many optimizations explains both of those "features".

    --
    Ben Hocking
    Need a professional organizer?
  32. For the license wars! by Xenographic · · Score: 1

    Someone got pissed during the recent license flap when taunted with "yeah, if BSD is so great, why do you all use gcc?" or something like that. So they're trying to send the message to the GPL types that "we don't need you any more."

    At least, that's my take on it.

    Honestly, BSD vs. GPL has always struck me as one of the stupidest flame wars. It's like that phony debate between "great taste" and "more filling" only people take it seriously.

    Personally, I'll license my own software under whichever I feel more appropriate for the task (and that could be either) and tell anyone who complains about it that they can go screw themselves with a rusty chainsaw.

    1. Re:For the license wars! by nuzak · · Score: 2, Funny

      > It's like that phony debate between "great taste" and "more filling"

      That's "tastes great" and "LESS filling". Clearly you're trying to push a "tastes great" agenda by deliberately misrepresenting the opposing viewpoint. Typical tactics for the tasteistas.

      (imagine Daffy Duck saying all that)

      --
      Done with slashdot, done with nerds, getting a life.
    2. Re:For the license wars! by Anonymous Coward · · Score: 0

      Personally, I'll license my own software under whichever I feel more appropriate for the task
      Then you'll be considered evil and bashed for it. Information wants to be free. Imagine no possessions. Etc.
  33. but ... BSD *is* dying by Anonymous Coward · · Score: 0

    If all we get out of BSD is this kind of news and how Steve Jobs is going to save them, then BSD is dead.

  34. Ken Thompson's also on the way to Lunix by DrSkwid · · Score: 1

    http://gsoc.cat-v.org/projects/kencc/

    How to Use the Plan 9 C Compiler (html ps pdf)
    Rob Pike
    The starting point for C programming under Plan 9.

    Plan 9 C Compilers (html ps pdf)
    Ken Thompson
    The design and some internals of the compiler suite.

    Man page

    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
  35. bad title, wrong section, not frontpage material by Anonymous Coward · · Score: 0

    From the summary it's clear this only applies to BSD, but the title implies that it's about Linux (since Linux is the primary reason GCC exists). Thus, I think this should be filed under "bsd" or "flamebait" and taken off the front page. (The reason I think the article is flamebait is because it uses an inflammatory headline to incite Linux users.)

    (By the way, didn't slashdot's used to have a bsd section?)

  36. Increasingly extremeist? by SuperKendall · · Score: 1, Insightful

    FSF's increasingly extremist political views

    FSF's views have not changed over the years - they have remained consistent.

    The reason they look "increasingly extremist" is because of other views on software freedom heading the other way, thus drawing an even greater contrast. That does not mean that the FSF views are the ones that are extreme...

    If anything the FSF and RMS have shown themselves to be quite prescient in warning against dangers that have come to pass.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Increasingly extremeist? by IamTheRealMike · · Score: 3, Insightful

      The reason they look increasingly extremist is because the FSF tends to make up policies and rules which bind GCC development in order to avoid the theoretical risk of making GPL violations easier. As compiler technology advances these restrictions have become increasingly burdensome, in particular, several of the technical advantages of LLVM are things the GCC team would have liked to do but RMS nixed because it would have made it too easy to circumvent the license.

    2. Re:Increasingly extremeist? by SuperKendall · · Score: 1

      The problem though is that over time many risks people previously deemed as theoretical have come to pass.

      It's great that other software like LLVM proceeds forward, I'm not one to say that there's no place for other projects - but you always need something like GCC that takes a harder stance to fall back on in case there are problems down the line.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    3. Re:Increasingly extremeist? by Brandybuck · · Score: 1

      They're "core" principles have remained the same, but their interpretations of them have changed and expanded. They most definitely do NOT have a strict constructionist view of their four freedoms, but require essay after essay to explain what they really mean.

      --
      Don't blame me, I didn't vote for either of them!
    4. Re:Increasingly extremeist? by Anonymous Coward · · Score: 0

      You are just confused...

    5. Re:Increasingly extremeist? by Anonymous Coward · · Score: 0

      You really have the tone of a religious extremist. Or possibly George Bush. (But I'm being redundant here.)

    6. Re:Increasingly extremeist? by WilliamSChips · · Score: 1

      You say that now, but I can just point you to BitKeeper to see where nonfreedom takes you.

      --
      Please, for the good of Humanity, vote Obama.
    7. Re:Increasingly extremeist? by DragonWriter · · Score: 1

      The problem though is that over time many risks people previously deemed as theoretical have come to pass.


      That's a problem for people for whom GPL violations, theoretical or actual, are a serious ideological concern, rather than a legal concern only where the GPL actually applies. I would suggests that the developers, maintainers, and distributers of xBSD operating systems do not, as a rule, fall into that category.
    8. Re:Increasingly extremeist? by Brandybuck · · Score: 1

      You are just confused...

      I think it is some elements in the FSF which are confused. For example, over and over for the past twenty years they have said that the restrictions of the GPL only kicked in upon distribution. Yet they considered closing the so-called "webapp loophole" in GPLv3, which would have been a condition placed upon use of the software. I suspect they would have included this condition if they didn't get so much push back from the community.

      --
      Don't blame me, I didn't vote for either of them!
  37. Why not? by LWATCDR · · Score: 1

    Really why not if they want to.
    Maybe they thing they have a better idea.
    Maybe the don't want to work under the FSF and the GPL.

    It could be that they really don't like the direction that GPL is going. Sure right now programs compiled under the GCC don't have to be released under the GPL but when GPL V4 comes out that might change.

    Or maybe they just don't want RMS to start ranting about how they should call BSD GNUBSD since the kernel and the user space programs are only part of an OS. It takes a compiler and things like KDE and GNOME to make a usable OS and given that without those GPL programs there couldn't be BSD the BSD should give GNU it's fair share of the credit.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  38. Yay for more compiler choices! by FranTaylor · · Score: 2, Insightful

    Even if a compiler generates miserably inefficient code, it is valuable if the code is correct. It ia a valuable tool to use for the verification of other compilers. It can also be used as part of a compiler bootstrapping process. Since its code size is probably a small fraction of GCC's, it may make a better teaching tool. If people are actually going to use it, given that it must coexist in a world with much more mature compilers, it will itself probably become much more mature in a relatively short period of time. GCC currently has no competitors in the free realm and has suffered from neglect in the past. A little competition may keep the developers on their toes and prevent another egcs.

    1. Re:Yay for more compiler choices! by Anonymous Coward · · Score: 0
  39. Leaner, lighter, faster... by iBod · · Score: 1

    Just how lean, light and fast does a C compiler have to be?

    Surely, even the largest C projects compile in tolerable times on entry-level hardware these days.

    I, for one, miss those long lunch-hours when I could call out "Another Martini, Barman! - I can do nothing until the operators page me!".

    1. Re:Leaner, lighter, faster... by everphilski · · Score: 1

      OSG, a visualization toolkit (open source, cross-platform) takes over an hour on Linux to compile on a computer that was purchased barely a year ago. That same computer, running windows XP / Visual Studio, compiles in 45 minutes. No joke.

      Not sure if an hour is tolerable or not ...

    2. Re:Leaner, lighter, faster... by TheRaven64 · · Score: 1

      What's entry level hardware in your world? A VAX? Sharp Zaurus? These are both platforms supported by OpenBSD, and it would be nice to have a compiler that can build the base system on the host machine, without having to rely on cross-compiling.

      --
      I am TheRaven on Soylent News
    3. Re:Leaner, lighter, faster... by mechsoph · · Score: 1

      Surely, even the largest C projects compile in tolerable times on entry-level hardware these days.

      You've obviously never tried to compile OO.o

    4. Re:Leaner, lighter, faster... by iBod · · Score: 1

      eh?

      What's your point?

    5. Re:Leaner, lighter, faster... by iBod · · Score: 1

      Nope, never have!

      I have, however, compiled OoO.0oO0O.oo.2 in seventeen months - woot!!

    6. Re:Leaner, lighter, faster... by iBod · · Score: 1

      >>What's entry level hardware in your world?

      Anything that's x1000 entry level hardware in "your world".

      OMG "The Raven64"

      BWHAAAAAAAAAAAAHHHHHHHHHHH

  40. "production-quality"? - not quite by pigiron · · Score: 2, Informative

    GCC has been continuously changed not continuously improved. With each new chip that it optimizes for it seems to drop support for an older one. Plus it is dog slow.

    1. Re:"production-quality"? - not quite by durdur · · Score: 1

      And buggy. You forgot to mention buggy. Serious regressions and bugs in every release.

  41. PCC Brought to by SC... by davidsyes · · Score: 1

    Johnson family of products. We will WAX GCC...

    (Sorry, Johnson & Johnson popped into my mind as soon as I read that...hehehe). Too much Saturday AM TV in the 70's and 80's for me, I guess....

    --
    Previously: "Linux... Toward the Sunrise..." Now: "Linux... Toward the-- No, now, part of Every Sunrise"
    1. Re:PCC Brought to by SC... by the+eric+conspiracy · · Score: 1

      SC Johnson and Johnson and Johnson are two very different companies.

    2. Re:PCC Brought to by SC... by davidsyes · · Score: 1

      I know. That's why I inserted the "wax" part... PCC waxing GCC all over the floor insinuation. Ruined my own joke/pun...

      (hehe, Captcha: "rephrase")

      --
      Previously: "Linux... Toward the Sunrise..." Now: "Linux... Toward the-- No, now, part of Every Sunrise"
  42. What about Minix's compiler? by Anonymous Coward · · Score: 0

    Tanenbaum's Amsterdam Compiler Kit works really well, supports about 17 architectures, and includes frontends for C and Modula-2 (among others).

    1. Re:What about Minix's compiler? by OrangeTide · · Score: 1

      A lot of people don't realize it was relicensed as BSD and have been overlooking it. Good catch!

      Plan9 has some C compilers too that are under a very liberal license, but they are really a subset of C designed for building Plan9 components.

      --
      “Common sense is not so common.” — Voltaire
    2. Re:What about Minix's compiler? by Epsillon · · Score: 1

      Perhaps the fact that it generates assembler output (a.out) rather than the later and now more widely used Executable and Linkable Format (ELF) binaries?

      --
      Resistance is futile. Reactance buggers it up.
  43. Ok then by Anonymous Coward · · Score: 0

    It is currently not bug-free, but it compiles on x86 platform, and work is being done on it to take on GCC's job."

    Yeah, good luck with that... Hey, did anyone see the game last night?

  44. So, hey. by Anonymous Coward · · Score: 0

    "I think the point was that it's hard to justify having two open source compilers for the same language. It's a lot of duplicated work with far less benefit given that the existing compiler has been doing a pretty good job and the "new" kid on the block isn't even ready for use."

    Are you paying these people, that you might tell them what they can and can't develop?

    1. Re:So, hey. by allthingscode · · Score: 1

      Desperate to get off topic, huh?

      Having a better compiler is nice, but doing it just because you don't like the the open source license attached to the compiler - not the code it generates, just the compiler - just seems petty and a waste of effort.

      It's just stupid all of the effort being wasted on the feud between BSD and GPL. The energy should be used to have all software released as open software, and then, interestingly, there would be no need for the GPL.

  45. Last night... by pjr.cc · · Score: 1

    I was seriously thinking last night... "what the world needs is another compiler".

    It would have been nice to know what the non-licensing aspects of the pcc were, there are already a number of BSD licensed compilers. It is interesting in one of the posts about pcc someone goes on about how the evaluation of x = y changed in 3.x to 4.x of gcc and they were told "suck eggs" by the gcc team. What i dont get about that whole comment is how they think that's going to change with pcc. The original problem still exists - the c standard is unclear (but thats off the point a bit).

    It would be nice to see the effort perhaps pumped into something a little more worthwhile. But, rebuilding the wheel is anyone's prerogative, and as long as it makes you happy and perhaps solves a problem for someone, more power to ya! Compilers seemed to have become a bit of a topic of late which is interesting considering how over the last couple of years people have been working hard to abstract away from the actual compiler.

    1. Re:Last night... by Anonymous Coward · · Score: 0

      > someone goes on about how the evaluation of x = y changed in 3.x to 4.x of gcc
      > the c standard is unclear

      The standard is clear - the behaviour is undefined, the compiler is free to evaluate x or y first at its discretion; I would like it to do whichever is going to give me the fastest code.

      In the post that you're referring to, the author was using a garbage collector which was moving data structures around under the feet of the main program; this obviously needs some care to make sure that you only move things when it's safe to do so, i.e. at sequence points. "=" is not a sequence point.

    2. Re:Last night... by jjohnson · · Score: 1

      To the credit of the BSD community, another poster to that thread beat the shit out of the complainer for relying on consistent behavior of something the spec specifically says is 'undefined'.

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
  46. Re:The end of GNU ? by Garridan · · Score: 2, Funny

    Please. I think RMS would prefer, GNU/NetBSD != GNU/Linux. Obey the beard!

  47. BSDs should not depend upon GPL by Anonymous Coward · · Score: 0

    Overall its a good idea. BSDs should not depend upon GPL.

    I was a Linux fan and misguided/misunderstood freedom appreciator. After reading recent posts on GPL guys stripping down BSD license, I understood what is meant by freedom. What I followed so far was not freedom, its restrictions. Is conditional freedom a true freedom? Now I very much appreciate all BSDs, especially planning to switch to FreeBSD once it released Ver. 7.0.

  48. Intel compiler by everphilski · · Score: 1

    There is always the Intel compiler ...

  49. TenDRA? by OrangeTide · · Score: 1

    TenDRA is another compiler the BSD people have been looking at for quite some time as well.

    --
    “Common sense is not so common.” — Voltaire
    1. Re:TenDRA? by synthespian · · Score: 1

      This is nice...funded by UK's defense agency...BSD license...

      The very nice part; they say one of their goals is to formally verify correctness with ACL2.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
  50. What's old is new again by starling · · Score: 1

    I used to use the old PCC on all sorts of weird mini-computers in the '80s. I wonder if it still spits out a "too many shapes" error when functions get too big?

    At the time people were wondering if GCC would ever be good enough to replace it ...

  51. That depends... by Anonymous Coward · · Score: 0

    Does it run Linux?

  52. Re:Call me when it compiles something other than x by LurkerXXX · · Score: 1

    You might wanna RTFA before giving us your great insights... One of the main points the OpenBSD folks are interested in it is because they can easily port it over to architectures that GCC has dropped, that the OpenBSD folks still use.

  53. Re:How many compilers can we cram into a phone boo by Anonymous Coward · · Score: 0

    You make it sound as if GCC was the best thing since sliced bread. Okay, depending on what you value it might indeed be, but: It isn't bugfree either, it doesn't really support standards all the way, it compiles fucking slowly and it often completely botches optimization on code that is supposed to be straightforward to translate into very efficient machine language.

    PCC (or any other simple compiler) has the opportunity to beat GCC in all of the above.

  54. not every architecture by DreadSpoon · · Score: 4, Informative

    The biggest reason for the new compiler (despite the jackass article submitter's position) is that GCC does *NOT* support every architecture. GCC drops architectures frequently as the core contributors lose interest, which hurts OSes like NetBSD that try to support more than the mainstream architectures. NetBSD relies on a combination of GCC 2, 3, and 4 to compile the OS on all of the architectures it supports.

    The idea with PCC is not that it will be BSD licensed (nobody really gives a fuck what license the compiler is under), but that it will be supported directly by the BSD community, including the NetBSD hackers who have their bazillion architectures to support.

    1. Re:not every architecture by tajribah · · Score: 2, Insightful

      If they are interested in these architectures, they should help GCC folks maintain them instead of resurrecting obsolete compilers.

    2. Re:not every architecture by Anonymous Coward · · Score: 0

      Yeah! Damn choice!

      We all know that ONE option is all that's required.

    3. Re:not every architecture by microbee · · Score: 1

      That makes zero sense. You spend manpower and duplicate effort to support whatever GCC supports plus what it's missing, because you don't like the situation that GCC does not enough manpower?

      Why not invest your time in supporting GCC instead?

      This PCC thing sounds like a political gesture than anything else. I don't think anything useful will every come out of it.

    4. Re:not every architecture by iroll · · Score: 1

      And if the GCC deprecates your platform and doesn't have time or inclination to work with all your little patches and nitpicks, what do you do then?

      --
      Repetition does not transform a lie into the truth. - FDR
    5. Re:not every architecture by Anonymous Coward · · Score: 0

      Presumably you are the one with the time and inclination to provide that support in gcc or pcc.

      I don't see why pcc should make it more likely that there are people willing to support a platform. Actually I can think of possible reasons why, but no one is presenting those reasons. So maybe they don't exist.

    6. Re:not every architecture by cthulhu11 · · Score: 1

      GCC has hardly "continuously improved". I've been unable to get 4.1+ to even build on Solaris 10 / x86 and am sticking with the 3.4.3 that Sun distributes.

  55. Re:Call me when it compiles something other than x by TheRaven64 · · Score: 1

    It took three weeks for one person to write the x86 back end. That is one of the reasons OpenBSD is interested in it; it should be easy to add support for the platforms GCC has dropped.

    --
    I am TheRaven on Soylent News
  56. Pasadena City College better than Glendale by Anonymous Coward · · Score: 0

    Pasadena City College has always been better than Glendale City College ... it is better funded and is bigger.

  57. Fixed that for ya by MoxFulder · · Score: 1

    grrrrr...
    s/[i][/i]/ /g I believe you mean, s/\[(\/?)i\]/<$1i>/g

  58. sensationalist bullshit yet again by DreadSpoon · · Score: 5, Informative

    First: PCC has not YET supplanted GCC. The BSDs are hoping it will in the future.

    Second: The biggest attraction of PCC is NOT the license. The article submitter who stated otherwise is a jackass.

    Third: There are techical reasons why GCC is actaully unusable by some BSDs, such as NetBSD, which aims to support many architectures that GCC has dropped. NetBSD uses a combination of GCC 2, 3, and 4 to compile all of its different architectures. The NetBSD developers would rather have a single compiler that handles them all. Obviously PCC is nowhere near that level yet, of course.

    Fourth: GCC politics are a pain in the ass for many BSD developers who just want to submit patches to a compiler without the overhead of GNU's policies and GCC's management.

    Fifth: GCC produces crappy code more often than anyone would like. GCC bugs are far from unheard of, performance of generated code is often unpredictable between releases, and in many less commonly used architectures or sources GCC will produce incorrect code. Yes, these cases are very rare, but the BSD folks have hit the problem often enough for it to be a concern. PCC, being simpler and less bloated with cruft from multiple rewrites of the internals will hopefully produce correct and predictable code more often than GCC.

    Sixth: PCC actually works today. It can compile most of the NetBSD userspace, as I recall, and the kernel will be ready to roll soon after some inline assembler problems are fixed. This isn't some theoretical hacky project - it works right now. It's not ready to replace GCC just yet, by any means, but it's a lot more than some Slashdotters seem to think it is.

    1. Re:sensationalist bullshit yet again by Anonymous Coward · · Score: 0

      Fifth: GCC produces crappy code more often than anyone would like. GCC bugs are far from unheard of, performance of generated code is often unpredictable between releases, and in many less commonly used architectures or sources GCC will produce incorrect code. Yes, these cases are very rare, but the BSD folks have hit the problem often enough for it to be a concern. PCC, being simpler and less bloated with cruft from multiple rewrites of the internals will hopefully produce correct and predictable code more often than GCC.

      http://gcc.gnu.org/bugzilla/

  59. Re:The end of GNU ? by TheRaven64 · · Score: 1

    I don't think anyone's actually using GNU/NetBSD.

    --
    I am TheRaven on Soylent News
  60. What about TenDRA? by Kartoffel · · Score: 1

    I haven't read TFA yet (plan to ASAP), but I wanted to mention that PCC isn't the only show in town.

    TenDRA is a mature, BSD licenced compiler originally developed by the Defence Evaluation and Research Agency (DERA) in the UK. Not sure about pkgsrc, but TenDRA is in FreeBSD's ports.

    As for converting an entire operating system over to a non-gcc compiler... well, it's complicated. TenDRA is useful for sanity checking but currently cannot build the FreeBSD kernel, nor even the world. Intel's proprietary icc compiler, on the other hand, can build world just fine (kernel, not so much). Forget about using icc though, if you're a commercial customer ($$$) or if you have a gnu up your butt about free software.

    I'd be interested to see how PCC compares vs. TenDRA.

  61. Re:GCC Compiler Finally Supplanted by PCC? No. by smash · · Score: 1

    Neither is GCC.

    --
    I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  62. S. C. Johnson? by treeves · · Score: 1

    the floor wax guy?

    --
    ...the future crusty old bastards are already drinking the Kool-Aid.
    1. Re:S. C. Johnson? by /dev/trash · · Score: 1

      A family company.

    2. Re:S. C. Johnson? by VGPowerlord · · Score: 1

      a family company.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
  63. If it produced the best code, why not? by benhocking · · Score: 1

    Well, playing devil's advocate, because it could insert malicious backdoor code into your program. Obviously, this is not a concern with a BSD license, but I'm just looking at worst-case scenario. A good reverse compiler would probably make that obvious, but ideally at least that would be open-source.

    --
    Ben Hocking
    Need a professional organizer?
  64. Where's the "-1 RTFA" mod option? by Anonymous Coward · · Score: 0

    Which part of "It is not yet bug-free, but it can compile the i386 userspace" did you not understand? Its just the kernel and shared libs that don't work yet, which will be fixed shortly.

  65. Does speed of compilation really matter to pros? by otis+wildflower · · Score: 2, Insightful

    Seriously, if you're writing code for a living, especially performance-critical code, isn't hardware/platform optimization for the end-use binary far more important than speed of compilation? Particularly if that binary gets blown out to hundreds or (of?) thousands of boxes. If I had to choose between a slow, but hand-tuned GCC for my platform or a quick other compiler that made correct but mediocre-performing (no SSE?/3DNow/VMX/VIS or whatever) binary code, I'd say GCC no contest.

    And frankly, slower compilers mean secksier hardware requirements for workstations.. ("Yes, GCC4 is slow, that's why I need that dual quad-core Xeon with 4GB RAM!!")

    Meh.

  66. ACK 6.0 ELF is already here by OrangeTide · · Score: 1

    ELF has a wide set of problems as well, especially on 64-bit.

    ACK 6.0 has ELF support on some architectures. It's pretty trivial to add support for other binary formats if you wish, maybe some COFF and PE support?

    Now what ACK does not have is something like GNU binutils. But few compiler kits have anything like that.

    --
    “Common sense is not so common.” — Voltaire
    1. Re:ACK 6.0 ELF is already here by Guy+Harris · · Score: 1

      ELF has a wide set of problems as well, especially on 64-bit.

      And which of those problems does a.out not have?

      It's pretty trivial to add support for other binary formats if you wish, maybe some COFF and PE support?

      How about Mach-O?

    2. Re:ACK 6.0 ELF is already here by OrangeTide · · Score: 1

      Darwin is capable of supporting ELF, I'd rather have OSX support ELF and Mach-O than bother with Mach-O ever again. (yes I wrote a small linker for Mach-O).

      a.out doesn't have the alignment problems that ELF64 has. Not that a.out is ideal, not by a long shot. ELF and Mach-O are much better with dynamic linkers than a.out is, that's the advantage. but ELF64 is just a complete hack job compared to ELF32.

      --
      “Common sense is not so common.” — Voltaire
  67. Re:How many compilers can we cram into a phone boo by Anonymous Coward · · Score: 0

    Yes, but the x86 family still is register starved, and that matters for how you optimise.

  68. The LLVM Compiler Infrastructure - BSD by itsybitsy · · Score: 1


    Maybe LLMV (http://llvm.org) will be of interest to OpenBSD folks.

    Highly BSD compatible. Advanced.

    True-Freedom BSD-Style License (no Communistic-License like GPL).
    http://llvm.org/releases/1.3/LICENSE.TXT

    While LLVM is currently being developed using GCC it's intended to stand alone at some point.

    From the LLVM web site: http://llvm.org./

    Low Level Virtual Machine (LLVM) is:

          1.

                A compilation strategy designed to enable effective program optimization across the entire lifetime of a program. LLVM supports effective optimization at compile time, link-time (particularly interprocedural), run-time and offline (i.e., after software is installed), while remaining transparent to developers and maintaining compatibility with existing build scripts.
          2.

                A virtual instruction set - LLVM is a low-level object code representation that uses simple RISC-like instructions, but provides rich, language-independent, type information and dataflow (SSA) information about operands. This combination enables sophisticated transformations on object code, while remaining light-weight enough to be attached to the executable. This combination is key to allowing link-time, run-time, and offline transformations.
          3.

                A compiler infrastructure - LLVM is also a collection of source code that implements the language and compilation strategy. The primary components of the LLVM infrastructure are a GCC-based C & C++ front-end, a link-time optimization framework with a growing set of global and interprocedural analyses and transformations, static back-ends for the X86, X86-64, PowerPC 32/64, ARM, Thumb, IA-64, Alpha and SPARC architectures, a back-end which emits portable C code, and a Just-In-Time compiler for X86, X86-64, PowerPC 32/64 processors.
          4.

                LLVM does not imply things that you would expect from a high-level virtual machine. It does not require garbage collection or run-time code generation (In fact, LLVM makes a great static compiler!). Note that optional LLVM components can be used to build high-level virtual machines and other systems that need these services.

    LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations of all sorts, including those that require extensive interprocedural analysis. LLVM is also a great target for front-end development for conventional or research programming languages, including those which require compile-time, link-time, or run-time optimization for effective implementation, proper tail calls or garbage collection. We have an incomplete list of projects which have used LLVM for various purposes, showing that you can get up-and-running quickly with LLVM, giving time to do interesting things, even if you only have a semester in a University course. We also have a list of ideas for projects in LLVM.

    LLVM was started by the Lifelong Code Optimization Project, led by Vikram Adve at the University of Illinois, Urbana-Champaign. Since the first public release, LLVM has grown to include contributions from several other people! We welcome external contributions, so please send e-mail to llvmdev@cs.uiuc.edu if you are interested in contributing code to the LLVM infrastructure.

  69. that's stupid, use LLVM instead by JeyKottalam · · Score: 1

    That seems dumb. They should talk to the LLVM guys about getting it licensed under BSD or the like. IIRC, they state on their webpage that they're open to discussing other licenses, and LLVM totally kicks ass. Someone does need to write a native C and C++ frontend for it though. It currently relies on GCC's frontends.

    1. Re:that's stupid, use LLVM instead by quantum+bit · · Score: 1

      So basically what you're saying is that LLVM is a BSD-licensed C compiler that includes everything except for the part that compiles C?

    2. Re:that's stupid, use LLVM instead by JeyKottalam · · Score: 1

      No, it would be more accurate to say "the part that parses C and generates the IL". Really, there's a lot more to a compiler than the front-end.

      LLVM currently uses GCC's front-ends, but these are GPL-licensed.

  70. There are others by bytesex · · Score: 1

    There's tcc, lcc and bcc. tcc also compiles the Linux kernel, or so I heard, but the resulting binaries aren't as fast as gcc's. Does it do c++, like the GNU compiler suite, and java and fortran too ?

    --
    Religion is what happens when nature strikes and groupthink goes wrong.
  71. Re:How many compilers can we cram into a phone boo by savuporo · · Score: 1

    It might be of no interest to you, but im running "linux environment" on a machine that likely has less RAM than your core 2 duo cache. I dont compile applications for it with GCC, because its code output for ARM is just bloat, and its accompanying GLIBC is bloat squared.

    --
    http://validator.w3.org/check?uri=http%3A%2F%2Fwww.slashdot.org Errors found while checking this document as HTML5!
  72. Re:How many compilers can we cram into a phone boo by Toon+Moene · · Score: 1

    The intention is to write a C99 compiler while still keeping it small, simple, fast and understandable. I think of it as if it shall be able to compile and run on PDP11 (even if it may not happen in reality). But with this in mind it becomes important to think twice about what algorithms are used.

    Good luck. The C99 Standard weighs in at 554 pages - about on par with the Fortran 2003 Standard (580 pages). Writing a small compiler for a large language spec will be no mean feat.

  73. Mod Parent Up by Spy+Hunter · · Score: 1

    Insightful, not funny! Well, a bit of both. But this truly is a lesson the entire software industry needs to learn. Where are my mod points when I need them...

    --
    main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
  74. Lots of people are missing the point. by perry · · Score: 1

    Sure, the license is nice, but PCC compiles NetBSD's userland five to ten times faster than GCC. If it was only a few percent worse on code generation, it would save vast amounts of time for developers trying to work on large code bases.

    GCC is a pig. The point of resurrecting PCC is that it is not a pig.

    1. Re:Lots of people are missing the point. by Anonymous Coward · · Score: 0

      If it was only a few percent worse on code generation But it's not, and that's a big part of the problem. PCC has almost no optimizations to speak of, and by the time you get it up to speed with GCC you'd probably end up with something slower anyway. Besides, trading off compile time for running time is usually very good.
  75. The wisdom of RMS' "hot air" by jbn-o · · Score: 1

    When I think of "hot air", I'm more likely to think of posts that make no substantive argument and engage in name calling ("retarded") rather than the work of someone who has written a lot of software, started a social movement for securing software freedoms, and asks for a fair share of credit when people mention the name of a project where the initial author is quite derisive about said freedoms.

    I can't agree with your overmoderated post. I think you would benefit from reading the GNU/Linux naming FAQ which addresses your concern about why people ask others to refer to the union of the GNU OS and the Linux kernel as "GNU/Linux" or "GNU+Linux".

  76. Work being done on it too take over GCC's Job? by hackus · · Score: 1

    Yeah, sure I will believe that when I see it.

    gcc isn't just a compiler it is an entire philosophy based on supporting computing language grammar.

    If you just want a C compiler then perhaps it isn't what you need.

    But if you want:

    1) Cross platform support of a variety of computer grammars.
    2) Very simple, highly modular architecture to facilitate building extensions and finding bugs.
    3) The most sophisticated support tools for debugging and optimization of code.
    4) A much better license that fosters community contribution and growth without cost.
    5) Multi-threaded huge compilation capabilities with tools to do clustered compilations of massive code trees.
    6) CPU independant code generation and optimization capabilities.
    7) GCC is tried and true and has compiled more code than any compiler EVER has. Beat those stats.
    [....list too long due to the limited storage capacity of Slashdot servers.]

    With respect to 4, unlike a BSD based license which encourages corporate theft of everyones hard work might I add.

    What they are saying is simply impossible.

    pcc cannot take over gcc's job because if it did it would be just as large and have the exact same problems as gcc.

    One of gcc's job's is to turn C code into binary form, which sure, then maybe.

    But gcc does way way WAY too many things to simply be replaced outright by this little C "and thats it" compiler.

    -Hack

    --
    Got Geometrodynamics? Awe, too hard to figure out? Too bad.
    1. Re:Work being done on it too take over GCC's Job? by Secret+Rabbit · · Score: 1

      1) Cross platform support of a variety of computer grammars.


      With support being dropped all the time (see above posts).

      2) Very simple, highly modular architecture to facilitate building extensions and finding bugs.


      You seem to be looking at a very different compiler (http://undeadly.org/cgi?action=article&sid=20070915195203&pid=52).

      3) The most sophisticated support tools for debugging and optimization of code.


      Think again. Intel's compiler (ICC) kicks GCC's ass.

      4) A much better license that fosters community contribution and growth without cost.


      You're confusing fosters with forcing. Also, whether that happens or not has absolutely nothing to do with the license. It has to do with the project itself and the people that are already contributing to it. Read anything on sociology or how to build an online community and you'll get your reasons why.

      5) Multi-threaded huge compilation capabilities with tools to do clustered compilations of massive code trees.


      Very, very slowly.

      "PCC compiles NetBSD's userland five to ten times faster than GCC"
      - perry (7046)
      - above

      But, if you're talking about the auto tools, there are alternatives to those that are vastly superior to learn and use as well e.g. SCons.

      6) CPU independant code generation and optimization capabilities.


      Tell me what "finished" compiler does _not_ have this. But, there are those that would rather have correct code than the optimized (but regularly incorrect) code that GCC produces (see above link).

      7) GCC is tried and true and has compiled more code than any compiler EVER has. Beat those stats.


      And what does this have to do with whether the compiler is good? i.e. McDonald's has sold billions of hamburgers. Does that make those hamburgers not horrible for you (see Super Size Me)?

      With respect to 4, unlike a BSD based license which encourages corporate theft of everyones hard work might I add.


      This is total bullshit. Any corporation that might USE such code would have to do so under the BSD license and them using such code IS ALLOWED BY THE LICENSE. Just because it doesn't fit your ideology does NOT make it theft. Get your head out of your ass.

      What they are saying is simply impossible.

      pcc cannot take over gcc's job because if it did it would be just as large and have the exact same problems as gcc.


      A counter example of this is WINE. In fact, many parts of WINE actually run faster than there Windows counter parts. Use google to figure out where and by how much.

      But gcc does way way WAY too many things to simply be replaced outright by this little C "and thats it" compiler.


      They are talking about gcc as a C compiler and that's pretty much it. Because that's the purpose that it's being used for. This is clear from what is even written in the summary i.e. put away your straw-man, we aren't going to buy it.
    2. Re:Work being done on it too take over GCC's Job? by hackus · · Score: 1

      You posted a number of very half truths.

      "With support being dropped all the time (see above posts)."

      I can read. pcc does NOT support multiple cross platform grammars.

      Its a fact.

      Gcc does. I suspect other languages will be dropped as well if maintainers do not step up to the plate or there is no demand.

      "You seem to be looking at a very different compiler (http://undeadly.org/cgi?action=article&sid=20070915195203&pid=52)."

      I have read the link, and everyone is entitled to their opinions.

      The fact remains, gcc is the most widely worked on compiler system, and continues to be worked on and improved because it IS easy to understand and capabilities like multiple back and front ends for code generation make it unique.

      Dissent is what drives improvements in all software, particularly GPL software because of the very fact contributors must share their improvements or shut up.

      "Tell me what "finished" compiler does _not_ have this. But, there are those that would rather have correct code than the optimized (but regularly incorrect) code that GCC produces (see above link)."

      That statement is stupid. GCC like all USEFUL pieces of software are NEVER finished because people continue to work on either improving it or correcting bugs.

      Talk about a "Strawman"!

      "And what does this have to do with whether the compiler is good? i.e. McDonald's has sold billions of hamburgers. Does that make those hamburgers not horrible for you (see Super Size Me)?"

      Wow, now we are comparing software to hamburgers?

      It isn't even a good analogy. Let me point out what you missed.

      1) The more code a compiler builds, the more paths are tested in its code generation LOGIC.
      2) The more paths that are tested in its code generation logic, the more improvements and bug fixes can be applied to make it better.

      A hamburger, I am sorry is not as complex to build has a compiler. Although it sounds like your an expert on building burgers and I am not surprised.

      "This is total bullshit. Any corporation that might USE such code would have to do so under the BSD license and them using such code IS ALLOWED BY THE LICENSE. Just because it doesn't fit your ideology does NOT make it theft. Get your head out of your ass."

      I am not disputing the corporations right to the license as applied as you say. What I am pointing out is that this type of license I feel encourages corporations to profit from others hard work, and not in a positive way.

      The reason why GPL software kicks BSD's butt most of the time is because the BSD license has less incentives for people to profit from their labors. It also gives tools to corporations to build software systems to lock out markets.

      My case and point would be this link.

      We do NOT need to give Microsoft ANY assistance in destroying free software, either BSD or GPL. BSD has an excellent TCP/IP stack, and Microsoft just HELPED themselves to it.

      (et. al. http://www.hu.freebsd.org/hu/arch/2001/Jun/2413.html)

      "A counter example of this is WINE. In fact, many parts of WINE actually run faster than there Windows counter parts. Use google to figure out where and by how much."

      Err....well. I have used WINE and well it does a poor job of running most Windows programs. Lots of gotchas. I do not think that WINE will be taking over Windows job anytime soon for running anything significant.

      Sort of like pcc and gcc. pcc makes a VERY poor gcc.

      "They are talking about gcc as a C compiler and that's pretty much it. Because that's the purpose that it's being used for. This is clear from what is even written in the summary i.e. put away your straw-man, we aren't going to buy it."

      No, ah, they are not talking about pcc as a C compiler.

      Can you READ?

      The thread Title is: "Work being done on it too take over GCC's Job?"

      Now, I do not wish to be pedantic but, i

      --
      Got Geometrodynamics? Awe, too hard to figure out? Too bad.
  77. Re:The end of GNU ? by SL+Baur · · Score: 1

    No, the GNU moniker is intended to reflect that the userland almost entirely comes from GNU projects and that's not likely to chang That's not true and the quota changes daily with new non-GNU stuff being written.

    The user-visible portions of userland (X11 and the window manager) are not GNU projects. If a program does not have the magic words `Copyright xxxx Free Software Foundation' at the top of every source file, it is not a GNU project.

    The vital portions of userland that are GNU projects are gcc and glibc. Not all Linux systems use glibc, particularly in the embedded world. With a viable non-GNU C & C++ compiler and a full-featured libc, a GNU-less/Linux is most possible.

    I, for one, do not believe that glibc (or gcc+glibc) being GNU projects justifies renaming the architecture. For a long time, HJ Lu maintained a forked libc for Linux.
  78. GCC by MrCopilot · · Score: 2, Funny
    So is there an Arm-Linux-Pcc? CrossCompiler? Will I have to change my code?

    Then the answer is no. I may be alone in the world but I'm perfectly happy with the gcc compiler and have been for years. It does what its supposed to, It is FREE, It is crossplatform (MingW), and it annoys the BSD guys.

    Clear Winner. GCC

    It has been pointed out here, that people who choose a compiler based on its license are idiots. Well if I'm working on windows I use MingW specifically because of its license. If I'm working in Linux and I usually am, I choose GPL above all others. Count me as an Idiot if you like, But you can shove the alternatives. I know what I am getting and have a reasonable expectation what is coming in the future, and if I need to modify it (Heaven Forbid) I can. BSD is a fine license for people who NEED it. I don't. When given the choice I choose GPL. GCC Slower, maybe so. Code works and I get paid. If it takes 3 hrs for QT to compile. I bill for 3Hrs.

    Sorry but, I'm a pragmatist in all things except freedom. I've been burned enough. (Admittedly, I've personally never been burned by BSD code, unless you count Windows.)

    --
    OSGGFG - Open Source Gamers Guide to Free Games
  79. until then... by toby · · Score: 1

    Wake me up when you're able to use PCC instead of GCC to do a 'make world'

    I'm surprised nobody's mentioned tcc on this thread - it's lighter, faster, and close to a drop-in replacement for x86. The original poster doesn't seem aware of the wider context or they might have mentioned icc too. Even lcc is almost a drop-in, if far less optimising than gcc, and it supports more than just x86 targets.

    --
    you had me at #!
  80. OpenRCS by James+Youngman · · Score: 1

    You're right. This is the same thinking that brought us OpenRCS...

  81. Sorry, you're wrong. by Anonymous Coward · · Score: 0
    The output may be covered. It says so right in the license. Read the GPL v2. Section 0 ends with the paragraph:

    Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
    (Emphasis mine.)

    What does this mean? It means that if the program spits out a bunch of copyrighted text, then there is a copyright on the output. If not, then not. By the nature of what compilers do, it is natural for them to spit out copyrighted chunks text in their output. If gcc did so, then the output would be a derivative work of gcc, and therefore would have to be GPLed.

    In fact this is not hypothetical. The gcc folks rejected a number of patches because they would have caused exactly this problem.
  82. More than just "here or there"... by SanityInAnarchy · · Score: 1

    And what does GNOME run on? The GNU Windowing system?

    Ok, we can ignore tar/grep for most desktop users. We can ignore gcc/make/etc, as they are development tools -- not relevant to anyone but developers. (After all, I'll bet Doom 3 for Linux was built with GCC, but we hardly call it "GNU/Doom3", now, do we?)

    No one calling it "Linux" wants to discredit the GNU people, but frankly, I'm glad we don't have to acknowledge every little contributor in the name. I run an operating system which I call "Kubuntu", and occasionally "Linux" so people have something to refer to. I use KDE, some GNU utilities, some Perl and various other things not even GPL'd, and some things I'm not sure are entirely legal, like libdvdcss.

    GNU is pervasive in my system -- but no more pervasive than any other random element, like X.org.

    --
    Don't thank God, thank a doctor!
    1. Re:More than just "here or there"... by Chandon+Seldon · · Score: 1

      Ok, we can ignore tar/grep for most desktop users. We can ignore gcc/make/etc, as they are development tools -- not relevant to anyone but developers.

      By that logic we can ignore Linux too because "most desktop users" don't directly interact with it. I guess that means that we should be calling the system either "Gnome" or "KDE" (or maybe "Ubuntu"). I'm sorry... but there's no reasonable logic based on size or importance of contribution that would mention Linux but not GNU.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
  83. GCC is the Microsoft Windows of compilers... by argent · · Score: 4, Funny

    Think about it. Getting a new compiler into free UNIX and the open source community is going to be as hard as getting a new platform on the desktop to compete with Windows. And for similar reasons.

    You're not going to supplant GCC until you get all the code that depends on GCC-specific features modified to be standard portable C. That's a barrier to entry as steep as Microsoft's application barrier to entry. Now it's not as bad as it was in the early '90s when GCC was sprouting new C extensions everywhere (like the ability to have declarations not at the start of blocks, or the ability to leave the second element out of the trinary conditional operator, or things like alloca), and a lot of those features have now become common and even standardized (and others, like the shortcut trinary, have been deprecated). But it's not as easy as just having a good compiler, or even a good language translating ecosystem like Tendra... the playing field is anything but level.

  84. Stupid waste of Gas. by Anonymous Coward · · Score: 0

    "I think the point was that it's hard to justify having two open source compilers for the same language. It's a lot of duplicated work with far less benefit given that the existing compiler has been doing a pretty good job and the "new" kid on the block isn't even ready for use."

    Man, I feel a sudden "Bitkeeper vs Git" rant coming on. Oh, wait. Just gas.

  85. Faster in what way? by Mr.Ned · · Score: 1

    They say it builds the tree much faster - I can believe that - but does the code run faster?

  86. Re:Call me when it compiles something other than x by skeeto · · Score: 1

    on the most common processor It can compile for ARM now? :-P
  87. Call it iLinux? by SanityInAnarchy · · Score: 1

    Could you back up #3 with some quotes?

    In any case, let me introduce position #4: The system I run today has all kinds of elements in it, from all kinds of projects, open and closed. GNU is one of them, along with KDE, QT, X.org, Perl, Apache, PostgreSQL, the Ubuntu/Kubuntu projects... Hell, the next version of KHTML (Konqueror's rendering engine) will be incorportaing code from Apple, for fuck's sake!

    To be completely fair to all parties, I'd have to call it: GNU/TrollTech/KDE/X.org/Perl/Apache/Postgres/Ubuntu/Kubuntu/iLinux.

    Oh wait! I forgot the hardware manufacturers! What was I thinking? I guess I better add an AMD/nVidia/BioStar/KOSS/SysKonnect/Realtek/Creative/Sceptre/Logitech to the mix.

    Starting to get the idea?

    Frankly, I'd rather call it whatever I want and deal with RMS complaining, than have to read the entire list of contributors every time someone asks me what OS I run. So I call it Linux, KDE, Ubuntu, and Kubuntu. The GNU project has plenty of visibility -- I see it every time I look up the docs for a tool I'm using (GNU Make, Gnu C Compiler, etc), not to mention the occasional time I fire up the Gimp.

    --
    Don't thank God, thank a doctor!
  88. PCC was developed by SCO by Anonymous Coward · · Score: 0

    See the last sentence of that page : http://www.ludd.ltu.se/~ragge/pcc/

    1. Re:PCC was developed by SCO by Guy+Harris · · Score: 1

      See the last sentence of that page : http://www.ludd.ltu.se/~ragge/pcc/

      You mean the sentence that says "This product includes software developed or owned by Caldera International, Inc." (emphasis mine)?

      If that's "Caldera before SCO", it says nothing about whether PCC was "developed by SCO". If that's "Caldera after SCO", the question is whether it's "developed by" or "owned by"; if it refers to PCC being part of the UNIX source code base, well, that's "developed by AT&T, owned by SCO", not "developed by SCO" (which PCC wasn't, although SCO might have done some work on their version of it, just as they presumably did work on other parts of the UNIX they originally licensed from, and ultimately bought from, AT&T/USL/Novell).

  89. Re:What about the Local C Compiler? by General+Lee's+Peking · · Score: 1

    According to Wikipedia, a modified version of lcc was used for compiling Quake III. It seems to me, this compiler would be far more maintainable, but for some reason, the world doesn't seem ready for literate programming.

  90. There's no reason to duplicate effort (WRONG) by bug1 · · Score: 1

    "There's no reason to duplicate effort:"

    Developers are people, they cant be moved around like currency.

    Scratch an itch: People program from inspiration and/or motivation, if this is how these developers are willing to donate their time to the community
    who are we to say they should try and do something else.

    The free software community is not a monoculture, competition amoungst projects can lead to higher quality software for all those competing.

  91. Compiler by Anonymous Coward · · Score: 0
    A free compiler MS can fork ! awesome, a Free compiler the BSD guys will eventually be able to ship with their totally propietary and expensive OS once their market drug wet dream comes to play, excellent!

    Anyone who wants to deny this please tell me, why are BSD guys so proud of themselves when MS forks them but get off their panties like crazye Hezbolla fanatics when their code is used in GPLed projects?

  92. Re:How many compilers can we cram into a phone boo by Anonymous Coward · · Score: 0
    ...small, simple, fast and understandable...


    OK, the onchip cache on my core 2 duo is many times larger than the full RAM on any PDP-11 I've ever heard of. So why should I be interested in a buggy compiler that wants to fit into tiny PDP-11 constraints?

    Have you ever looked at the source to GCC? I tried to add a very simple variant of a supported architecture, and eventually gave up. It's nasty in there. I think the point is to make it so it fits in one's head, not just in a PDP-11. After all, if it's so complex nobody can work on it, what use is being free?

    GCC is buggy, too, of course. The difference is that I have no chance of being able to fix the bugs in GCC.
  93. Re:How many compilers can we cram into a phone boo by Anonymous Coward · · Score: 0

    That is the beauty of choice. If it is not interesting to you then obviously it was not intended for you. Keep using GCC.

    BTW, For all those worried about their precious Linux this doesn't have anything to do with Linux in the first place.

  94. You're right. by SanityInAnarchy · · Score: 1

    There's no logic to supprot "Linux" as a name, and there's actually relatively little logic to support a desktop environment or a distro as a name.

    At least if we're talking about who should be credited in the name, the logical answer really comes down to this: Everyone has an equal claim. However, you don't see X.org throwing fits and refusing talks or interviews with people who refuse to call it X.org/Linux, even though X.org is arguably as much code and as much a necessity of a modern Linux desktop as the GNU tools are.

    (Yes, X.org probably requires gcc and glibc. However, no one would care enough to continue developing either if they had to do so without a GUI.)

    Actually, there is one very, very good reason for using "Linux" as a name: It tells you what's compatible. A clueless person who buys, say, UT2004 or Quake 4, knows that it's compiled to run on a Linux kernel. Most of the other things aren't as relevant -- X.org just happens to be the best X server, but it could theoretically run under something else. Ubuntu is slightly more relevant, but these games are proof that you can distribute a distro-neutral binary.

    As far as many applications are concerned, Linux is the operating system, the rest are just applications. Yes, some of them are required, but this is also the case on Windows -- sometimes you need a particular video codec installed, for example, to play pre-rendered cinematics in a game. The codec might be part of Windows Media Player, but isn't part of Windows. There are also things like Steam -- you need Steam installed to play Half-Life 2, but we don't consider Steam to be part of the operating system.

    So, when you get right down to it, I would call Linux the OS, and a particular distro would be like a version or "flavor" of other OSes (like XP vs Vista, or Ultimate vs Home Basic). Not out of any logic for who should get credit, but because it tells customers what they need to know about application support and customer support, which are really the only two places the customer would care about the specific OS they're running.

    --
    Don't thank God, thank a doctor!
    1. Re:You're right. by Chandon+Seldon · · Score: 1

      At least if we're talking about who should be credited in the name, the logical answer really comes down to this: Everyone has an equal claim. However, you don't see X.org throwing fits and refusing talks or interviews with people who refuse to call it X.org/Linux, even though X.org is arguably as much code and as much a necessity of a modern Linux desktop as the GNU tools are.

      As long as you keep thinking about the output of GNU Project as just "the GNU tools - maybe tar and some other stuff", you're going to continue to see things from a warped perspective and draw unreasonable conclusions. The GNU Project has developed a complete operating system - the GNU system. Like any other modern Unix-like OS, it uses X.org as its windowing system. The only significant difference between something like Ubuntu and the GNU System is one component - the kernel.

      A request from the founder of the GNU Project that people recognize their effort when they talk about systems that incorporate and rely on the vast majority of their work should seem entirely reasonable. Responding by denigrating the GNU System as "just some tools" is insulting at best.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    2. Re:You're right. by SanityInAnarchy · · Score: 1

      As long as you keep thinking about the output of GNU Project as just "the GNU tools - maybe tar and some other stuff", you're going to continue to see things from a warped perspective and draw unreasonable conclusions. The GNU Project has developed a complete operating system - the GNU system.

      Complete by what respects?

      DOS is a "complete operating system", by some definitions.

      A basic GNU system, among many other things, does not include a windowing system.

      Like any other modern Unix-like OS, it uses X.org as its windowing system.

      X.org is no more a part of the "GNU OS" than any other application -- it runs on many other systems, including non-GNU ones. (For example, Mac OS X includes XFree86, and now X.org. Various other BSDs use it -- Solaris probably does. There might even be a Windows port that doesn't rely on Cygwin.)

      However, the "GNU OS" likely includes other tools that are really applications, like grep. So what is the magic that ties these together and makes them uniquely GNU?

      I suppose it would have to be a common license (GPL), and a common organization producing them and holding the copyrights (FSF). Neither of these apply to the X.org project.

      A request from the founder of the GNU Project that people recognize their effort when they talk about systems that incorporate and rely on the vast majority of their work should seem entirely reasonable.

      As I've shown, X.org can exist independent of the GNU OS. However, a modern GNU OS would be hard-pressed to find a windowing system to replace X.org.

      Therefore, I request that, when talking about a GNU OS which includes graphical components, you refer to it by its proper name: GNU/X.org.

      Do you really want to start down that road? Next up: KDE. I believe most of that has been ported to non-GNU systems as well, and a Windows port is in the works.

      Responding by denigrating the GNU System as "just some tools" is insulting at best.

      Then it would seem you know even less about OS design than I credited you with.

      Any operating system that is not a collection of tools must, by necessity, be one monolithic tool. Thus, referring to a system -- any system, OS or not -- as a "collection of tools" is high praise -- it means the system is flexible. It can be adapted and re-used. New things can be incorporated into it, and it can be incorporated into other things, without breaking.

      It's called "modularity", and it's widely recognized as a good thing. "Best practice" is the phrase.

      Being insulted when your system is called "just" a collection of tools is like trying to insult evolutionary science by calling evolution "just" a theory.

      Of course, if you accept this explanation, then you must also accept that while every module should be given credit somewhere, they need not be given credit in everyday speech. To suggest otherwise, while it may be "fair" in some abstract sense of you getting the credit you're due, it's not fair in a practical sense, because I really don't want to say GNU/TrollTech/KDE/X.org/Perl/Apache/Postgres/Ubuntu/Kubuntu/iLinux, just to refer to my operating system.

      (Yes, iLinux -- there's a very good chance that the next version of Konqueror, my preferred web browser, will incorporate code from Apple.)

      Now, maybe you're right, and picking "Linux" out of that bunch is not the most fair choice that could have been made, if I had to choose one name. But as I said in my earlier post, there is actually a solid reason why I feel "Ubuntu Linux" is the clearest, most accurate representation to the end-user.

      --
      Don't thank God, thank a doctor!
    3. Re:You're right. by Chandon+Seldon · · Score: 1

      However, the "GNU OS" likely includes other tools that are really applications, like grep. So what is the magic that ties these together and makes them uniquely GNU?

      They were created by the GNU Project for the specific purpose of serving as components of the GNU System. This is the key thing you seem to be missing - all these pieces didn't just arbitrarily show up - they are the results of a project specifically intended to create a complete operating system.

      As I've shown, X.org can exist independent of the GNU OS. However, a modern GNU OS would be hard-pressed to find a windowing system to replace X.org. Therefore, I request that, when talking about a GNU OS which includes graphical components, you refer to it by its proper name: GNU/X.org.

      Sure. I'll start talking about GNU/X.org (or GNU/Linux/X.org) the minute you start talking about Solaris/X.org and FreeBSD/X.org. I made my initial comment for a reason - every modern Unix OS that includes a GUI uses X.org, so the fact that the GNU system does too isn't terribly interesting.

      The whole story here is as follows:

      • The GNU Project has created a complete OS (as complete as Solaris or *BSD, which are generally recognized as complete operating systems).
      • Millions of people are running it (with one component swapped out).
      • The GNU Project would like to be given credit for their work. They can't demand credit, but it's not entirely unreasonable for them to act insulted when credit is withheld.

      I'm tempted to start referring to GNU/Linux systems as simply GNU, and then when people ask "What about Linux?" respond "Oh, that's just some drivers - not worthy of mention". Sure - the Linux code base *is* largly "just drivers", but that doesn't mean it's all drivers or that it's not worthy of of credit.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    4. Re:You're right. by SanityInAnarchy · · Score: 1

      They were created by the GNU Project for the specific purpose of serving as components of the GNU System. This is the key thing you seem to be missing - all these pieces didn't just arbitrarily show up - they are the results of a project specifically intended to create a complete operating system.

      So, they're an operating system because the project intended to create an operating system?

      Cool, I'll write a Hello World app that's also an operating system, because I want it to be!

      Sure. I'll start talking about GNU/X.org (or GNU/Linux/X.org) the minute you start talking about Solaris/X.org and FreeBSD/X.org.

      Thanks, you've just made my point for me.

      The GNU Project has created a complete OS (as complete as Solaris or *BSD, which are generally recognized as complete operating systems).

      By now, yes. When Linux came out, no, it wasn't complete -- they had everything except the kernel, so still not an operating system. And even now,

      In fact, if we take everything GNU except the kernel, and port it to Solaris or *BSD, or even Mac OS X, we generally still call it Solaris or *BSD or Mac OS X with a few GNU tools sprinkled in. We don't call it GNU/Solaris, just because someone installed glibc, gcc, etc.

      The GNU Project would like to be given credit for their work.

      They have credit. They have their name all over it. Every time I look up a manpage for one of the GNU tools, I see "GNU Make". Many of the more visible GUI tools have a "g" in them, and a quick look at the "about" tab will at least tell me what it stands for, and may even provide a list of individual people who have contributed to the project. When I open GNU Screen, for instance, I get a mention of the GNU General Public License and an email address to send bug reports and pizza to.

      What they don't have is a mention of their name as part of the OS name itself, any more than we have Solaris/X.org (or GNU/Solaris/X.org).

      As others have mentioned, they even had a golden opportunity to do this: They could have distributed a complete operating system. As far as I can tell, they still don't do this. HURD is distributed as source code, which seems common for GNU projects, and they don't even provide source packages. There is no distribution called GNU. And by the way: I can't think of another thing that wants to call itself an operating system, that's distributed exclusively in source form.

      One final point: Should OS X have to call itself BSD/OS X? It is, after all, as much a BSD OS with other stuff running on it as my Linux system is a GNU OS with other stuff running on it.

      I'm tempted to start referring to GNU/Linux systems as simply GNU, and then when people ask "What about Linux?" respond "Oh, that's just some drivers - not worthy of mention".

      Ignoring the fact that drivers are likely harder to maintain today than the rest of the GNU system (hardware is constantly changing) -- I'll ignore that mostly because I haven't actually worked on either, so I'm not overly qualified to make that judgment.

      But at this point, you'd be unnecessarily fragmenting the namespace, and driving people away from a GNU system. You see, when I google for "Ubuntu", the first thing that comes up is ubuntu.com, and the "Download" link is visible enough that it's included right there in the Google search. When I google for "Linux", Ubuntu is still there, but farther down, and the first result is for Linux.org, which introduces the user to the concept of the "Linux distribution".

      However, when I google for GNU, I don't even find Debian until maybe several pages in. I find absolutely no information about distributions -- I just find disparate projects, like the GNU/HURD, which is available for download in source form -- and that's hardly what you want a newbie to see.

      Now, you'll be happy to know, GNU's Wikiped

      --
      Don't thank God, thank a doctor!
    5. Re:You're right. by Chandon+Seldon · · Score: 1

      In fact, if we take everything GNU except the kernel, and port it to Solaris or *BSD, or even Mac OS X, we generally still call it Solaris or *BSD or Mac OS X with a few GNU tools sprinkled in. We don't call it GNU/Solaris, just because someone installed glibc, gcc, etc.

      If glibc is the only libc, and bash is the default shell, and ld is GNU ld, etc then people generally *have* called those things GNU/Solaris or whatever. Take a look at Nexenta OS for example.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    6. Re:You're right. by SanityInAnarchy · · Score: 1

      ...which would be why they called it "Nexenta OS", and not "GNU/Solaris"?

      I'm aware of the domain name, but I somehow doubt that would be enough for RMS.

      --
      Don't thank God, thank a doctor!
    7. Re:You're right. by Chandon+Seldon · · Score: 1

      The name of the distribution is "Nexenta OS". The OS family is "GNU/Solaris". The name of the OS I'm running is "Ubuntu". The family is "GNU/Linux".

      From the site:

      NexentaOS is a complete GNU-based open source operating system built on top of the [WWW] OpenSolaris kernel and runtime.

      Contrast this to:

      Ubuntu is a community developed, linux-based operating system that is perfect for laptops, desktops and servers.

      All RMS wants is for people to tend towards the first pattern rather than the second one. In the same way, he requests attribution in the case where the OS family is included in the distribution title (i.e. "Red Hat Enterprise Linux" vs. "Debian GNU/Linux").

      In practice, most of the distributions that have just "Linux" in their title don't mention the GNU project *anywhere* on their website aside from including the GNU GPL text in the places where they are legally required to. Given that what their distributing is a GNU-class Unix-like operating system, that seems rather impolite.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    8. Re:You're right. by SanityInAnarchy · · Score: 1

      The name of the distribution is "Nexenta OS". The OS family is "GNU/Solaris". The name of the OS I'm running is "Ubuntu". The family is "GNU/Linux".

      Splitting hairs. Especially considering only the GNU people are convinced that GNU deserves special mention as part of the operating system.

      Given that what their distributing is a GNU-class Unix-like operating system, that seems rather impolite.

      See, that's where we disagree.

      You look at Ubuntu, and you see it as a GNU operating system. I see it as something which I call "Linux", but which, if I deconstruct it, GNU is really only a very small part of it.

      Your best response so far seems to be drawing lines where none exist. Saying "This bit over here is an essential part of the operating system, and this isn't." Or saying "It's really the GNU operating system, but it uses X.org."

      You still haven't given me a good reason, other than convention (as adopted by other systems), to explain why X.org should not be included in the name. And where that convention is followed, GNU usually isn't mentioned either.

      Also, look at this page -- the longer description of Ubuntu doesn't include a mention of Linux, GNU, or any other project.

      One final point: When you say "GNU operating system" and don't mention Linux, people don't know what you mean. At best, they might know about HURD, and assume you're running that. But when you say "Linux" or a "Linux distro", no one is confused. The worst that happens is you offend RMS.

      --
      Don't thank God, thank a doctor!
    9. Re:You're right. by Anonymous Coward · · Score: 0

      Corrected:

      The best that happens is you offend RMS.
    10. Re:You're right. by Chandon+Seldon · · Score: 1

      I see it as something which I call "Linux", but which, if I deconstruct it, GNU is really only a very small part of it.

      This is your misunderstanding.

      Your best response so far seems to be drawing lines where none exist. Saying "This bit over here is an essential part of the operating system, and this isn't." Or saying "It's really the GNU operating system, but it uses X.org."

      And you refuse to see lines where they do exist, or try to place them in nonsensical places to prove your point.

      You still haven't given me a good reason, other than convention (as adopted by other systems), to explain why X.org should not be included in the name. And where that convention is followed, GNU usually isn't mentioned either.

      You can feel free to talk about NetBSD/Xorg all you want - I'll accept the convention and keep calling it NetBSD. As for it not being GNU/NetBSD, that's because NetBSD isn't based on GNU - it's a whole operating system with all it's own components.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    11. Re:You're right. by SanityInAnarchy · · Score: 1

      This is your misunderstanding.

      Demonstrate it, then.

      And you refuse to see lines where they do exist, or try to place them in nonsensical places to prove your point.

      Can't dispute that, because you've actually said nothing here. What constitutes "nonsensical"?

      You can feel free to talk about NetBSD/Xorg all you want - I'll accept the convention and keep calling it NetBSD.

      Yet you don't accept the convention regarding Linux -- you insist on GNU/Linux.

      My point about Xorg is not that I wish it to be called NetBSD/Xorg. My point is that it isn't called NetBSD/Xorg, it's called NetBSD, and the Xorg people don't cry foul. Why, then, does GNU cry foul about Linux?

      --
      Don't thank God, thank a doctor!
    12. Re:You're right. by Chandon+Seldon · · Score: 1

      Why, then, does GNU cry foul about Linux?

      Because all general purpose "Linux distributions" are the GNU System with a single component swapped out. RMS "crys foul" for precisely the same reason that the NetBSD people would think I was a dick if I built a version of NetBSD with a new default shell and spread a story around about how "Chandon Seldon Developed ChandOS, a complete operating system, in 2007 because he was bored".

      Linux is a kernel. When you combine it with the most of the GNU system, you get a complete Unix-like OS like any of the others that are available (*BSD, Solaris, AIX, HPUX, etc). If you don't combine it with the GNU system, you have either nothing or a reasonably bare-bones embedded OS that can't even run dynamically linked binaries, much less any "Linux Applications".

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    13. Re:You're right. by SanityInAnarchy · · Score: 1

      Let me deconstruct this, one by one:

      Because all general purpose "Linux distributions" are the GNU System with a single component swapped out.

      And several other components added. Sorry, X.org is NOT part of the GNU System. Neither, for that matter, is any of KDE. From the user perspective, these are parts of the OS, yet you either exclude them from mention, or call them a part of the GNU System (as you did with X.org).

      RMS "crys foul" for precisely the same reason that the NetBSD people would think I was a dick if I built a version of NetBSD with a new default shell

      Several issues here:

      Linux came along before HURD actually worked. So that would be more like if they'd managed to develop an OS without a shell, and you came along and wrote Bash.

      That's obviously not enough, but you have to consider -- the kernel, being the monolithic beast that it is, is much more than the command interpreter. It includes and maintains every filesystem Linux supports, every driver, along with the scheduler, security model, boot process, and so on.

      It's not "just a kernel" any more than GNU is "just a bunch of tools" or "just an operating system". Both are large projects, involving lots of resources.

      and spread a story around about how "Chandon Seldon Developed ChandOS, a complete operating system, in 2007 because he was bored".

      You keep insinuating that Linus spread the story of Linux. He didn't. Nor did he attempt to steal the credit of others.

      His original name for Linux was "Freeax". It was originally intended to be a simple terminal emulator. Then he wanted it to be able to download, so he had to add support for a filesystem, and enough else that he decided to just make it a POSIX-compliant kernel -- but it was still intended to be merely a stopgap measure until HURD was released, which was supposed to be in a year.

      The only reason it is still called "Linux" today was, when someone else was giving Linus an FTP directory (some free hosting), for whatever reason, the other guy decided to call it "Linux", after Linus' somewhat embarrassing pet name.

      It also wasn't merely because he was bored. The terminal emulator part was created out of necessity -- basically, being a college student, he'd rather write some software than go buy a piece of hardware.

      If you don't combine it with the GNU system, you have either nothing or a reasonably bare-bones embedded OS that can't even run dynamically linked binaries, much less any "Linux Applications".

      You do know there are statically linked applications, right?

      And you do know that glibc isn't the only libc for Linux, right? And that gcc isn't the only compiler? (Even if it was, a compiler is hardly an excuse for demanding that naming -- BSD wasn't called GNU/BSD before some variants started switching to pcc.)

      Of course, let's say we only include GNU/Linux -- well, then, you have Emacs, but no Vi. You might have a mail client. (Neither of which, I might add, are installed on my "GNU/Linux" system.) And you have absolutely no GUI -- I'm not just talking about X.org, I'm talking about most of the applications run on top of X.org -- I don't run GNOME. The closest you might have is Links, which, it could be argued, is an application, not an OS component.

      Not only that, but even GNOME isn't technically GNU -- it's now maintained by something called the "GNOME Foundation."

      The refusal of RMS (and you) to accept the name "Linux" is truly petty. What's more, it's a refusal to accept that you are now part of a larger whole. Yes, you are an essential part of Ubuntu, and of most Linux distributions (not all), but you are one of many essential parts, and you don't make up the majority anymore, neither in disk space nor in lines of code.

      Yes, you deserve to be recognized!

      But so do so many others that there is no name that could possibly be fair to all of them.

      Yes, you are part of the operating system!

      But the term is so loosely defined in the first place that you cannot possibly claim to be the complete operating system (short of the kernel).

      --
      Don't thank God, thank a doctor!
    14. Re:You're right. by Chandon+Seldon · · Score: 1

      And you do know that glibc isn't the only libc for Linux, right? And that gcc isn't the only compiler?

      Right. If you swap out glibc the resulting OS will be one component less GNU-ish. But all of the general purpose GNU+Linux distributions *do* use glibc (along with many other GNU components). That's why they're GNU-class operating systems. If they didn't use those components, then they wouldn't be GNU-class systems anymore. If you replaced all the FreeBSD components in FreeBSD, it wouldn't be FreeBSD anymore either.

      Sorry, X.org is NOT part of the GNU System.

      Wrong. The GNU System refers to the complete OS that the GNU project set out to build (and has never formally released). X.org was not developed for the GNU System, but if they GNU System is ever released as an OS distribution it will most likely include X.org.

      Maybe it would help to look at it this way: Red Hat Enterprise Linux is based on the GNU System in the same way that Mandriva Linux is based on Red Hat. You'll note that in the Wikipedia Article for Mandriva Linux, the fact that it's based on Red Hat is mentioned in the first paragraph. In contrast, the GNU System / GNU Project isn't mentioned in the Red Hat Enterprise Linux article at all. It's that sort of mention that this whole GNU+Linux debate is about - it would seem reasonable for the GNU Project to get credit at least where it's *obviously* appropriate.

      In any case, either you're demanding that X.org be included in the name of Unix-like operating systems with GUIs or you're not. Earlier you said you aren't - have you changed your mind?

      You do know there are statically linked applications, right?

      Sure thing. I can't think of any major "Linux" apps that are shipped that way though.

      I know I'm probably wasting my time, but I'll try another angle. Here's a simple logical argument:

      • "Red Hat Enterprise Linux" is based on the GNU System. This is hard to argue - without core components built for the GNU system, RHEL wouldn't even boot.
      • A representative of the GNU project has requested that Red Hat give the GNU Project credit.
      • Red Hat has refused to do so.
      • That makes the people who made that decision at Red Hat jerks.

      I think that narrows our argument down a bit. Specifically:

      • X.org is offtopic because A.) they haven't asked for credit and B.) you've already stated that you aren't demanding unrequested credit for them.
      • GNU-free Linux systems are offtopic, because no-one is requesting that credit be given to the GNU project by anyone who isn't using their stuff.
      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    15. Re:You're right. by SanityInAnarchy · · Score: 1

      Wrong. The GNU System refers to the complete OS that the GNU project set out to build (and has never formally released). X.org was not developed for the GNU System, but if they GNU System is ever released as an OS distribution it will most likely include X.org.

      And when it does, will that system be called GNU/X.org?

      Note also that GNU has never released a complete OS. It's easy (maybe too easy) to snipe at RMS for this -- that he's just mad because someone else finished the project that he never seemed to be planning to.

      Maybe it would help to look at it this way: Red Hat Enterprise Linux is based on the GNU System in the same way that Mandriva Linux is based on Red Hat. You'll note that in the Wikipedia Article for Mandriva Linux, the fact that it's based on Red Hat is mentioned in the first paragraph. In contrast, the GNU System / GNU Project isn't mentioned in the Red Hat Enterprise Linux article at all. It's that sort of mention that this whole GNU+Linux debate is about - it would seem reasonable for the GNU Project to get credit at least where it's *obviously* appropriate.

      Fine, then, edit Wikipedia pages. But stop trying to edit our language.

      In any case, either you're demanding that X.org be included in the name of Unix-like operating systems with GUIs or you're not. Earlier you said you aren't - have you changed your mind?

      I'm not demanding anything. I'm simply using X.org to illustrate my point: If you want me to use GNU/Linux, you must recognize X.org (among many other components) as something else that goes in that string. Thus, it would be GNU/Linux/X.org.

      And if you continue that for too long, you realize that while everyone would get credit, it would simply be too long a name to put Ubuntu/GNU/Linux/X.org/KDE/Freedesktop/... all in the name.

      Personally, I would rather just use "Linux", or "Ubuntu", or "KDE", or whatever I feel is relevant at the time. As an example: Often I will mention that I run a particular game under Wine. In that sentence, of course, I completely neglect to mention that Wine runs on X.org and OpenGL (but could run on the commandline instead), and is running on Linux, almost certainly linked against glibc, was compiled with gcc, and so on -- because none of it is relevant.

      It's a bit like the whole hacker/cracker problem. It may make me twitch every time I hear someone talking about "hacking" into something, or how someone in a game is "hacking", but really, I know what they mean. I'd rather communicate than not communicate, and launching into a rant about why they should call it "cracking" or "cheating" (respectively), and what "hacking" really means, is a surefire way not to communicate.

      Sure thing. I can't think of any major "Linux" apps that are shipped that way though.

      I can think of a few -- most commercial video games, for instance, are either shipped statically linked for Linux, or as close as they can. Usually, this means they link against the system's OpenGL and their own SDL, and compile everything else in that they can. Many commercial apps take this approach, since it's the only way to guarantee that they have the libraries they need on systems that don't have good package management (Windows/OS X). And it is kind of convenient -- it means, for example, I can install a 32-bit version on a 64-bit system and expect it to work, usually without needing to install any libraries manually. (Compare this to something like Firefox.)

      A representative of the GNU project has requested that Red Hat give the GNU Project credit.

      Except that's not what this debate has been about. This debate has been about whether Red Hat is willing to change their name as a way of giving them credit.

      X.org is offtopic because A.) they haven't asked for credit and B.) you've already stated that you aren't demandi

      --
      Don't thank God, thank a doctor!
    16. Re:You're right. by Chandon+Seldon · · Score: 1

      And when it does, will that system be called GNU/X.org?

      No more than FreeBSD is called FreeBSD/X.org.

      However much you may want to make the GNU+Linux issue about naming every contributor, that's not the issue. It's not even about naming the major contributors. It's about properly describing the operating system being used. The fact that distributions generally include a ton of applications make it easy for you to try to confuse the issue "Oh, and we have to name MySQL and FreeCiv", but those aren't part of the core operating system.

      Look at it this way: Take RHEL or Debian or Gentoo or Mandriva or Ubuntu. What did Linux contribute? A component. What did X.org contribute? A component. What did the GNU Project contribute? A mostly complete operating system. What should the resulting system be called? GNU. But that won't even boot. So we compromise and call it GNU+Linux - the minimum subset of the distro that makes for a functional operating system.

      If it's only those which have asked, does that mean I can write an init script, then come back five years later and demand that the system be called GNU/Linux/SanitysInit?

      That wouldn't be reasonable because a single init script isn't a major operating system component by any reasonable definition. The GNU project was working on their contribution to todays GNU+Linux systems for 7 years before Linus even started coding. It should be pretty obvious that that's a relevant distinction.

      Fine, then, edit Wikipedia pages. But stop trying to edit our language.

      When someone does that, someone with your "the GNU project deserves no credit" viewpoint will revert the edit because "the GNU project didn't contribute anything that significant - just some command line tools that no-one sees".

      It's a bit like the whole hacker/cracker problem. It may make me twitch every time I hear someone talking about "hacking" into something, or how someone in a game is "hacking", but really, I know what they mean. I'd rather communicate than not communicate, and launching into a rant about why they should call it "cracking" or "cheating" (respectively), and what "hacking" really means, is a surefire way not to communicate.

      The hacker/cracker thing is a linguistic issue. Word usage evolves. The GNU+Linux thing is an issue of credit. Every time someone describes an OS in that family, they have the choice of intentionally giving credit to the GNU project or not. The GNU contribution to that OS is significant enough that giving them credit by naming them is a reasonable choice.

      Except that's not what this debate has been about. This debate has been about whether Red Hat is willing to change their name as a way of giving them credit.

      At this point, I'm pretty sure that RMS would be reasonably happy if Red Hat replaced (or supplemented) the "Linux was created in 1991" story with the "the GNU project was started in 1984" story in their press releases, and mentioned the GNU project in appropriate places in their PR material.

      And if you continue that for too long, you realize that while everyone would get credit, it would simply be too long a name to put Ubuntu/GNU/Linux/X.org/KDE/Freedesktop/... all in the name. Personally, I would rather just use "Linux", or "Ubuntu", or "KDE", or whatever I feel is relevant at the time.

      Calling Ubuntu simply Ubuntu is perfectly reasonable. But if you're going to start giving contributors credit it makes no sense to give credit to Linux without giving credit to GNU, the GNU project having made the earlier and at least equally significant contribution...

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    17. Re:You're right. by SanityInAnarchy · · Score: 1

      I'm sorry this post is so long... and rambling. If you'd rather wait, I can try to clean it up later.

      However much you may want to make the GNU+Linux issue about naming every contributor, that's not the issue. It's not even about naming the major contributors. It's about properly describing the operating system being used.

      Which, the way GNU puts it, is naming every contributor.

      The way Linus would put it, it's the kernel. The way most distros would put it, it's the major software that a typical user would consider "essential", including a desktop environment.

      From Wikipedia:

      An operating system (OS) is the software that manages the sharing of the resources of a computer. An operating system processes raw system data and user input, and responds by allocating and managing tasks and internal system resources as a service to users and programs of the system.

      Linux, the kernel, fits that description.

      At the foundation of all system software, an operating system performs basic tasks such as controlling and allocating memory, prioritizing system requests, controlling input and output devices, facilitating networking and managing file systems.

      Still sounds like the kernel.

      Most operating systems come with an application that provides a user interface for managing the operating system, such as a command line interpreter or graphical user interface.

      This sounds like bash, or X.org. It's not needed for the operating system -- in fact, it's entirely possible that there are statically linked programs used for booting a modern distro. For quite awhile, Busybox was used in the initial ramdisk, for example.

      The operating system forms a platform for other system software and for application software.

      Now, since we've established that the Linux kernel, by itself, is sufficient to run applications, provided that they are statically linked, that would make Linux, by itself, the OS. The platform might then be called "GNU/Linux", or it might be called something else.

      But as long as it's a platform, that's a much broader definition. KDE, for example, is a platform -- the KDE libraries are massive, and Qt+KDE is theoretically cross-platform, though the latter hasn't been ported to non-Unix systems (yet).

      And since it's a platform, you could say, for example, that a default install of Debian -- no GUI, not much except the apt tools, the GNU tools, and init -- is GNU/Linux.

      But if we're talking about Ubuntu, that's a much larger platform, involving a lot more components than GNU alone, all of them required.

      Personally, I prefer to talk about platforms, because there's less ambiguity. When I talk about operating systems, I generally mean a default install of a Linux distribution, or the kernel itself, but I accept that most of the time, when we say "Operating System", it's pretty vague. Even "kernel" can be vague -- it seems many kernel threads run as sort-of userspace processes anyway, though I'm not entirely sure how that works.

      That wouldn't be reasonable because a single init script isn't a major operating system component by any reasonable definition.

      Give me one, then.

      The GNU project was working on their contribution to todays GNU+Linux systems for 7 years before Linus even started coding. It should be pretty obvious that that's a relevant distinction.

      Indeed it is. And Dennis Richie developed C in 1972. Once again, the question remains: What is that magical quality that makes GNU special, and not simply another component?

      When someone does that, someone with your "the GNU project deserves no credit" viewpoint will revert the edit because "the GNU project didn't contribute anything that significant - just some command line tools that no-one sees".

      --
      Don't thank God, thank a doctor!
  95. A few questions about PCC by Bushido+Hacks · · Score: 1

    1. Is is C++0x ready?
    2. Does it work with FreeGLUT or MESA for OpenGL support?
    3. Can it make ice cream?

    --
    The Rapture is NOT an exit strategy.
  96. c++ is where it's at by sentientbrendan · · Score: 1

    in terms of providing ways of verifying, at least *type* correctness.

    In terms of verifying the correctness of the implementation of an algorithm... you have to accept that is a practice that will never exist outside of academia.

    That's not to say we should never prove things about algorithms, but rigorous proofs should not be done on production code and on production languages. Use psuedocode if you want a proof. Correctness of algorithms in production code comes from the fact that those algorithms are 1. derived from well known and proven algorithms, 2. are "obviously" correct, 3. have unit tests to provide *empirical evidence* for the correctness of their implementation.

    Real companies put more emphasis on empirical evidence of program correctness, especially unit tests, than analytical solutions. Type correctness is a powerful tool, but aside from that it's pretty much impossible to determine program correctness while still allowing for efficient low level programming constructs that are necessary in production code.

  97. The old rant by dbIII · · Score: 1

    If you go back to the old gnu newsletters there is the bald announcement along the lines that gnu needs more attention and it is a good thing that it can get it if everyone is aware that there is gnu in their linux distribution. Personally I didn't agree with it when the silly LiGnuX name was suggested and then when it was revived as the gnu prefix. The water got muddied a bit more when there was the insistance by people that should know better that linux was the kernel of the gnu operating system and this line was swallowed whole by newbies that really should look up a textbook. The whole thing is annoying to those of us that remember the response RMS used to give to any question asked about linux some time ago "Linux? Never heard of it - haha". Going from that bad joke to implied ownership in under a year is what I consider bad form even if you think it is for a good cause.

  98. Pure ISO C99 has limitations when writing a kernel by tepples · · Score: 4, Insightful

    That's not a good test, given that Linux depends on gcc-isms. It's not written in any standardised form of C, which would be a far fairer test. How can a kernel be written in a standardized form of the C language? The C language does not specify any mechanism for alignment, struct packing, code sections, CPU-specific function calling conventions, or any of the various other attributes, nor does it allow for the kinds of inline assembly language needed to talk to the memory mapper or the I/O hardware.
  99. We've had safe arrays since i286 by tepples · · Score: 1

    Until a cpu is created where you can handle arrays in a non dangerous manner on the machine code level, I believe that was the Intel 80286. You put each array in a separate segment, and then you refer to each array with a segment number and an offset into that segment. Any writes outside of [segment start, segment start + segment length) throw a segmentation exception.
  100. Relative effort of knowing what one is doing? by tepples · · Score: 1

    Besides that, C is only dangerous if you don't know what you're doing. The suggestion by C's detractors is that it is easier for a novice to get to the point that he knows what he is doing in Python, Java, or some other "safe" language than in C.
  101. Debian GNU/kFreeBSD by tepples · · Score: 2, Interesting

    What happened to the Linux distro with the BSD userspace - haven't heard about that in a while now... I believe it was the other way around.
    1. Re:Debian GNU/kFreeBSD by Rufty · · Score: 1

      That's cool! Hadn't seen that one, and I run Debian. Must give it a go...

      --
      Red to red, black to black. Switch it on, but stand well back.
  102. glibc makes it GNU/ by tepples · · Score: 1

    There are loads of system running the GNU toolchain, some as the only toolchain, some as the "commonly used by most sensible people" toolchain. Only Linux appears to be GNU/ though.

    Just because you compile with GCC doesn't make your system a GNU system. Otherwise, the Game Boy Advance system would be the GNU/GBA, as Nintendo provided a port of GCC as part of the GBA SDK. (Homebrew developers use a different port of GCC.)

    If I had to make a guess as to what deserves a GNU/ prefix, it would have something to do with the userland, which executes even when nothing is being compiled. As far as I can tell, only Linux uses glibc and GNU Coreutils out of the box. FreeBSD has BSD libc and BSD Coreutils.

    1. Re:glibc makes it GNU/ by ray-auch · · Score: 1

      As far as I can tell, only Linux uses glibc and GNU Coreutils [gnu.org] out of the box. FreeBSD has BSD libc [freebsd.org] and BSD Coreutils [freebsd.org].


      glibc didn't arrive on Linux until glibc 2.x in the late 90s. Prior to that there were various Linux libcs based on forks of very early GNU libcs which appeared to be mostly repackaged BSD libc (including non-GPL compatible 4-clause BSD code IIRC) - so should it be "BSD/" also ?

      My understanding is that glibc didn't merge in any of the old Linux libc source (probably due to licensing issues), so the glibc many Linux distributions use now was not around when Linux arrived (so it couldn't have been one of the pieces of the complete-except-for-the-kernel system).

      Also, these days many (most?) distributions in the embedded space use uLibc or similar - glibc is too bloated.
  103. No Microsoft compiler should ever be used by SpaceLifeForm · · Score: 1
    Reflections on Trusting Trust
    Ken Thompson

    Link

    --
    You are being MICROattacked, from various angles, in a SOFT manner.
  104. Sighh, call me unimpressed by bensch128 · · Score: 1

    Wake me up when it supports C++0x.

    Until then PCC will be a toy...

    Cheers
    Ben

  105. Re:How many compilers can we cram into a phone boo by Anonymous Coward · · Score: 0

    Complex specs -/-> complex implementation. The spec describes what ALL implementations must do and need not to do with all sorts of odd corner cases that just aren't your problem unless you are trying to do things in an unusual way.

  106. President's Conference Commission by calidoscope · · Score: 1

    What is PCC?


    The Electric Railway Association Presidents Conference Commission was set up in 1933 to develop a streetcar that would better meet the competition from cars and buses. The resulting design was produced in the US from 1936 to 1952.


    For the non-streetcar fans, PCC = Portable C Compiler.

    --
    A Shadeless room is a brighter room.
  107. Your are misinformed by Anonymous Coward · · Score: 0

    Here is the license in full. What part of this says you can't change the license?

    * Copyright (c) <year>, <copyright holder>
    * All rights reserved.
    *
    * Redistribution and use in source and binary forms, with or without
    * modification, are permitted provided that the following conditions are met:
    * * Redistributions of source code must retain the above copyright
    * notice, this list of conditions and the following disclaimer.
    * * Redistributions in binary form must reproduce the above copyright
    * notice, this list of conditions and the following disclaimer in the
    * documentation and/or other materials provided with the distribution.
    * * Neither the name of the <organization> nor the
    * names of its contributors may be used to endorse or promote products
    * derived from this software without specific prior written permission.
    *
    * THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
    * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    * DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
    * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


    Furthermore, please see the Wikipedia article on BSD licenses, which reads, "It is possible for something to be distributed with the BSD License and some other license to apply as well. This was in fact the case with very early versions of BSD itself, which included proprietary material from AT&T."

    1. Re:Your are misinformed by DrJimbo · · Score: 2, Insightful

      The license doesn't explicitly say you can't modify it because it goes without saying that you are not allowed to modify it. If the default was for licenses to be freely modifyable by recipients then they would all be worthless. Also, it would be asinine for the default to be that you can freely modify the license because then every single license would have to have a standard clause that says you can't modify it.

      The same rule applies to copyright notices. You are not allowed to modify the copyright notice on a work even though it doesn't explicitly say such modifications are forbidden. The BSD license reminds recipients that they have to keep the copyright intact, but this is done as a courtesy and is not required.

      As for your Wikipedia quote, I already gave a detailed explanation of how BSD licensed code can be distributed along with code that has a more restrictive license because this might be what has caused the widespread misunderstanding that you are still suffering from.

      The rule is trivially simple: unless you are given explicit permission from the original author, you can't change the license or copyright notice on someone else's work. Period.

      --
      We don't see the world as it is, we see it as we are.
      -- Anais Nin
    2. Re:Your are misinformed by fuliginous · · Score: 1

      You are right but interestingly the license grants rights over product A. Whereas the license is actually item B. I guess you hold independent copyright etc. over your license unless you use one already written. Which makes me wonder what all the licenses out there include as a paragraph to actually allow others to use (and include) their license (copyright work) with the work of the others.

      Think I've just added a curiosity to my list of things to look into.

    3. Re:Your are misinformed by Rich0 · · Score: 1

      Well, I think this is mostly a moot point. Ok, so 95% of the linux kernel is GPL, and 5% is BSD. You can feel free to copy out the lines that were originally BSD if you'd like to. Or you could just copy them from wherever the linux devs copied them from. Same effect.

      You can certainly release your own code under a different license as a derivative work. Provided, of course, that the original license doesn't prohibit using the original code in derivative works that use a different license (like the GPL does).

      For as much as you claim that there is mass infringement going on with license changing, it doesn't seem like many lawyers in the FOSS world seem to agree. Can you point to any authoritative sources in the FOSS world that agree with you (FSF, EFF, key spokesmen, etc?).

    4. Re:Your are misinformed by DrJimbo · · Score: 1

      I am certainly not claiming there is mass infringement going on. If there was infringement, I think it was an honest mistake because someone thought it was okay to re-license someone else's code. Then Theo being Theo thought it was part of a vast Linux anti-BSD conspiracy. The fact that it was an honest mistake is why I'm willing to have these debates on Slashdot. I think it is important that we are all clear on what is legal and what is not.

      Here are some links to a clarifying discussion by some people from the FSF.

      I became aware of this issue (and the correct answer) during some heated debates about the GPLv3 over on Groklaw. The anti-GPL people were making the argument that the GPL was bad because it forced/allowed you to re-license BSD code without the author's consent. The pro-GPL forces made the same arguments as in the links above, saying that you are never allowed to re-license someone else's code without their permission.

      --
      We don't see the world as it is, we see it as we are.
      -- Anais Nin
  108. Re:How many compilers can we cram into a phone boo by Secret+Rabbit · · Score: 1

    but I fail to see why it's interesting in a linux environment.


    When did Linux come into play? The summary only stated [Open,Net]BSD.

    But, since you asked, diversity == good.
  109. Importance of a BSD licensed compiler by Anonymous Coward · · Score: 0

    It seems many do not see the benefit of a BSD licensed compiler. Here and on Slashdot, many think its a waste of time to develop another compiler. Some see its a good thing because it is faster. Faster is not the point. It can even be slow and inefficient for the start. PCC's advantage over GCC is license. Why?

    Day by day computer CPU chips getting faster, most importantly becoming multi-core. Recently Tilera (www.tilera.com) released a processor with 64-cores. And they are working on a 128-core processor. Intel also working on a similar multi-core processors. These multi-core processors are important for video encoding, simulation, gaming, etc. Techniques of efficient code generation for such chips may be only known to the manufacturer. May not be even possible release specs of internal architecture in such a competitive world.

    Its because PCC is BSD licensed, Tilera, Intel, AMD and other processor manufacturers can develop code generation modules in closed-source and release to PCC. What OEMs require is to sell their chips without exposing internal working. Its really up to them to release in either closed-source or open-source. So that BSD users can benefit by the tremendous computing power these processors provide. The PCC can even provide a compelling reason for people to switch from Linux to BSDs. Can these OEMs release such a closed-source module/driver for GCC? No, why? GCC is GPL-based which requires them to offer the source code. That is why, OEMs release such modules/drivers to Microsoft Windows. Therefore, a BSD licensed compiler is a very good news. What the PCC developers should do is, design it in such a way that anybody can extend its functionality by way of external plug-in modules. What people out there who are competent should do is help PCC.

    Sagara

  110. Nothing wrong with UB by PhilHibbs · · Score: 1

    Undefined behaviour? What's wrong with that? Do you really want to standardise, say, what happens when you reference a dangling pointer? That would require every pointer access to be wrapped in checking code, with metadata stored with every pointer, introducing a massive overhead on the lowest level operations. C is low-level. If you don't want a low-level language, then don't use C.

  111. Bullshit. by SanityInAnarchy · · Score: 1

    Every usable OS, maybe, although I could probably find some niche OS written in Java or something.

    Oh, and they aren't all written in C. I'm not sure if Windows is entirely C, or some combination of C/C++, and the same may be true of OS X, sort of (it'd be objective C). But honestly, any modern OS is also going to need significant chunks written in assembly. If you're going to have to do some low-level stuff and some high-level stuff, why not use C/asm only where needed, and use another language for the rest of the system?

    But never mind. I shouldn't argue too hard, mostly because while I'm convinced a good, entirely non-C OS can be written, even without memory segmentation (see Microsoft's Singularity), I haven't done it, and to my knowledge, no one has.

    --
    Don't thank God, thank a doctor!
  112. Re:Call me when it compiles something other than x by NekoXP · · Score: 1

    That was what I said wasn't it?

    Compiling x86 code now brings them zero steps closer to the goal ;)

    There is MIPS, VAX, PDP10 code generators in the source code but, OpenBSD never worked on any of the weirder ones and the MIPS support is busted. I reckon they should not focus so much on the "architectures that gcc has dropped" but on the architectures gcc sucks at (everything except x86).

  113. Re:Call me when it compiles something other than x by NekoXP · · Score: 1

    *smirk*

    That would be nice, though, right? A mobile phone compiler that can actually run at a decent speed without using up a whole flash card? :D

    Nintendo DS Homebrew could really benefit from pcc on ARM.

  114. Re:The end of GNU ? by Anonymous Coward · · Score: 0

    With a viable non-GNU C & C++ compiler and a full-featured libc, a GNU-less/Linux is most possible.

    So? Just because a non-GNU Linux can exist doesn't mean that no system should be called GNU/Linux. The name applies only to systems that use a Linux kernel and GNU userland, the same way that the name "BSD" only applies to BSD systems and the name "Windows" only applies to Windows systems.
  115. Apple's New clang C Compiler based on LLVM. by ralph.corderoy · · Score: 1

    LLVM is the one to watch. Currently, llvm-gcc uses GCC's front end but Apple, a major funder of LLVM, have recently released the source to clang, their C compiler. No GCC in sight. http://llvm.org/ http://heisenbug.blogspot.com/2007/07/compiler-with-good-clang.html

  116. See, I TOLD you GCC was like Windows! by argent · · Score: 1

    That's like asking if Linux runs Photoshop or World of Warcraft.

    It's in poor taste at the very least. ;)

    (not to mention that C++ is such an appallingly horrid language that no compiler with any sense of propriety would dream or admitting it knows about such things. One might as well ask if it's got a front end for Visual Basic. The very idea!)

  117. Mod parent insightful! by Eivind+Eklund · · Score: 1
    GCC is, as far as I can tell, a so-so architecture. There are technical reasons to do it over, totally apart from the license reasons.

    Eivind.

    --
    Doubting the existence of evolution is like doubting the existence of China: It just shows that you're uninformed.
    1. Re:Mod parent insightful! by Goaway · · Score: 1

      No, no, the subject was "Interesting..." so obviously the correct moderation is "Interesting", as demonstrated by the previous "Interesting" moderation.

    2. Re:Mod parent insightful! by Eivind+Eklund · · Score: 1
      *grin*

      I'll stick with insightful, based on experience - but interesting will do much of the same :)

      Eivind.

      --
      Doubting the existence of evolution is like doubting the existence of China: It just shows that you're uninformed.
  118. Re:Pure ISO C99 has limitations when writing a ker by m50d · · Score: 1
    How can a kernel be written in a standardized form of the C language?

    I never claimed it could be; I just said that the linux kernel is not a good or fair test of a C compiler. Are you disputing that?

    --
    I am trolling
  119. Re:Pure ISO C99 has limitations when writing a ker by tepples · · Score: 1

    I just said that the linux kernel is not a good or fair test of a C compiler. Are you disputing that? No. I agree that an OS kernel is not a good or fair test of a compiler that compiles only standard C.
  120. GNU/Linux? No, this is BusyBox/Linux. by tepples · · Score: 1

    Also, these days many (most?) distributions in the embedded space use uLibc or similar - glibc is too bloated. A lot of these uClibc based distributions don't use much of the rest of the GNU userland either. Instead, they use the BusyBox userland.
  121. Re: Right on by Douglas+Goodall · · Score: 1

    You are right on about this. The 80286 had the beginnings of what was required to write solid operating systems. The boundary protection and memory virtualization started giving the microprocessors the virtual memory semantics that we were used to from the mainframes. Aside from features that were missing (later added in 80386) and the loadall saveall debacle (security through obscurity failure), things were looking bright for the operating system writers targeting micros. Unfortunately, Microsoft made a decision not to use the boundary protection in their new operating system called "Windows". They ignored most of the work that Intel did providing support in the silicon for a decent micro operating system. The boundary protection could have been built into the programming language and runtime. Things would have been much better in the long term. I guess in the early days, they (MS) didn't want to use the memory space or cycles to secure the environment, although later they were willing to virtualize the entire runtime in that name (.NET).

  122. Re: Right on by Hal_Porter · · Score: 2, Interesting

    Unfortunately, Microsoft made a decision not to use the boundary protection in their new operating system called "Windows". They ignored most of the work that Intel did providing support in the silicon for a decent micro operating system. The boundary protection could have been built into the programming language and runtime. Things would have been much better in the long term.

    16 bit Windows did use it, but just not for protection.

    Originally 8086s had a simple segmentation mode without protection. Each address was built up of seg<<16|offset. Since both segment and offset were 16 bit, this limited the address space to 1MB. Famously, the designers of the IBM PC reservered the upper 384K for IO, and this is where the 640K limit came from.

    Later on the 80286, protected mode was supported, where the value you loaded into a segment register was a selector, and index into a table of segments. The CPU supported different privilege levels called Rings with only the highly privileged ones allowed to create entries in this table.

    16 bit Windows did used 286 protected mode - it had to to get access to memory above 1MB. When it loaded it would install a DOS extender which would switch the PC into protected mode and allow 16 bit protected mode tasks to run on top of DOS. Since the 286 didn't allow you to switch back, each call into DOS used a triple fault to reset the processor and some Bios code to jump back into Windows.

    It was even possible to allocate buffers bigger than 64K. In that case, windows would set up an array of selectors for each 64K chunk. If C code wanted to access an arbitrary location in the buffer, the compiler would work out which 64K chunk it was in, load a segment register with the corrrect selector (this was a very slow operation since microcode in the 286 had to check permissions), calculate the offset and load it into one of the normal registers and then do the segment read. This was an incredibly slow process.

    It's also worth pointing out that 16 bit Windows used protected mode to get access to more memory, the like Dos the OS didn't protect itself from being damaged by third party applications. And it didn't stop third party applications damaging each other. As Walter Oney put it the philosphy was that it's a personal computer after all - If you're a programmer you can do what you like to it, just like you're free to run your car without oil until it seizes up.

    Once the 386 came out and allowed offsets into segments to be bigger than 64K Windows would even set the limit on the first selector to allow you to access the whole buffer with operand size overides. The 386 also supported Virtual 8086 mode, so protected mode could jump into DOS and segments would work like a 8086. But loading segment registers was still a very slow operation, and Windows NT and Linux which are both designed to stop applications corrupting each other or the system both used page tables to do it instead. But page tables don't protect against buffer overruns.

    Mind you segmentation only protects against buffer overruns if you malloc the buffers. Automatic variables on the stack are not protected. And allocing a stack variable is just a subtract instruction - it is orders of magnitude faster than calling into the OS, switching to Ring 0, allocating the memory, filling in the segment table and the returning to the caller who would load the selector into a segment register. Worse, there are very few segment registers, an each time you access any buffer you need to reload one. On a 286 there is CS,DS,ES.CS and DS are needed for near code and data, so only ES is free for far pointers. The 386 has FS and GS too, but three registers with very slow loads is not a recipe for a speedy machine.

    So Microsoft tried it and it was slow. If they'd have used it enough to avoid buffer overruns - i.e. malloc every buffer rather than allocating some on the stack it would have been really slow. And so all modern OSs rely on the page table for protection instead of segments so they can run on multiple processors. In x64 mode, segment limits aren't even checked by hardware anymore.

    --
    echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
  123. Why not fork gcc again? by fgaliegue · · Score: 0

    If BSD people are unhappy about the current state of GCC, whatever their objections are, why don't they just fork it again? After all, this was what egcs was all about.

    If their fork proves worthy, leaving license problems away, people will start using it (even the Linux kernel). As many people, including God Linus, say, "code talks"! Instead of reinventing the wheel, fork and improve!

    Egcs has ultimately become the "real" GCC after all, hasn't it?

  124. No Ada, No Fortan - so what by krischik · · Score: 1

    How can a single C compiler replace a compiler collection which supports Ada, C, C++, Fortran, Java, Objective-C and Objective-C++?

    Answer: It can't.

    Martin

  125. Re:Does speed of compilation really matter to pros by Anonymous Coward · · Score: 0

    Seriously, if you're writing code for a living, especially performance-critical code, isn't hardware/platform optimization for the end-use binary far more important than speed of compilation? Particularly if that binary gets blown out to hundreds or (of?) thousands of boxes. If I had to choose between a slow, but hand-tuned GCC for my platform or a quick other compiler that made correct but mediocre-performing (no SSE?/3DNow/VMX/VIS or whatever) binary code, I'd say GCC no contest.

    Yes and no. Obviously, if you want to ship a binary, you obviously want as many optimizations as possible without changing the semantics of the program. However, some optimizations take a lot of compile time, so when you are changing the program and running tests, it can be quite a nuisance having to wait a long time for the compiler to finish only for your test to tell you that you still missed a bug or introduced a new one and you have to wait for the compiler again after the fix. It can be somewhat mitigated by compiling incrementally but a fast compiler would still be useful in such a situation./p?

  126. Re:Pure ISO C99 has limitations when writing a ker by Anonymous Coward · · Score: 0

    So then write it in Ada.

  127. Re:Forking, then maintaining... by antoineL · · Score: 1

    The *BSD forked something quite a bit lighter than GCC, namely GAS, in 1993; they implemented a useful feature (dynamic shared libraries, à la SunOS) with it; since the main GAS thread went to ELF and BFD, they had to support themselves their fork; it proved to be too heavy a weight for them, so they were "forced" a few years later to drop the enhancement, or at least making it deprecated/obsolete. So I do not believe forking GCC as being rational, at least for a mainstream projet like *BSD.

  128. learn to write correct C by Joseph_Daniel_Zukige · · Score: 1

    learn to write lisp to understand abstraction.

    Learn to write correct C to understand application.

  129. but what language do you propose? by Joseph_Daniel_Zukige · · Score: 1

    Z. Well, yeah, it implements a bunch of nice mathematical tools that are good for checking algorithms.

    But do you understand the run-time?

    In my opinion, C has suffered as much as it has benefited from the standardization process. (Obligatory thanks to Microsoft as one of the largest influences there.) It's a lot harder for me to understand the run-time of a C program now than it used to be, and if I can't understand the run-time, what good is it if I know my algorithm is theoretically correct? By the time it gets to the metal, timing issues and other semantics issues of getting the abstract stuff mapped to the bare metal may (for example) have pushed my checks for corner cases way out of whack.

    But I look at the alternatives. Java used to be fairly understandable. Now it's fast enough to use on a lot of stuff, but it is no longer understandable. (I know that no one mentioned Java, but I just did, as an example.)

    Every interpreted language I've seen makes all sorts of implicit assumptions about the run-time behavior that are counter-intuitive to me. I used to think it was just me, but when I ask fans of said language to explain, their explanations are generally full of stuff that turn out to be their personal interpretations of things they don't understand. So the best they can say is that they think they can demonstrate correctness. Or maybe they can demonstrate that they think it's correct.

    Or, at any rate, that's the way it looks to me.

  130. shift right, and the test code by Joseph_Daniel_Zukige · · Score: 1

    While I can imagine an architecture in which your loop never goes negative (explicit sign bit not involved in shifts) I can't imagine an architecture in which the loop would fail to go to zero. I mean, on any binary ALU, that 1 is just one bit, and when it runs off the top there is nothing but zeros left behind.

    Hmm. Okay, I can imagine it now -- the CPU sets a flag when a shift tries to shift a one bit out of a register, and faults with the contents of the register unchanged. And you have some code somewhere that ends up catching the signal so that your loop doesn't end in a fault. Of course, multiply will be more likely to be guarded in such a way than shift.

    On the one hand, yeah, people tend to write to the compiler as if it were standard.

    On the other hand, BSD userland is a lot of test code written to teh GPL mark. Kernel, and other stuff will increase the balance of relatively correct..

    1. Re:shift right, and the test code by Mr+Z · · Score: 1

      There are embedded processors (DSPs mostly) that have "saturating shift" and "saturating add" instructions. These prevent signed integer overflow and set a "saturation occurred" bit typically. Saturation isn't treated as a fault--you don't take a "trap." But you do go from 0x40000000 to 0x7FFFFFFF on the shift that saturates.

      Anyways, I'm not sure what your point on GPL is here. Since when does the license on the code have anything to do with its quality and adherence to standards? (Other than silly cases like the FCC saying software radios can't be free software.)

      --Joe
  131. posting in my sleep by Joseph_Daniel_Zukige · · Score: 1

    I can tell from my last sentence that I must have been asleep by the time I hit the send button.

    What I meant to say was there is a lot of GCC compatible source code in the openBSD and netBSD distribution and packages that will test most of the points like the multiply-by-two example given. Well, maybe not that particular example, but the point I thought I was trying to make was that the bulk of the code being (relatively) standard would tend to push the development of any alternative compiler away from encouraging dependency on implementation of undefined behavior.

    But thinking that over with a clear head, I can see that, _if_ some BSD programers had pet behaviors that they liked to program to, existing more-or-less correct code does not prevent such dependency being supported, and even promoted. GCC, of course, being a case in point.

    However, the openBSD programers are pretty much sticklers for standard source code. More than any other group, this group is going to tend to stay away from undefined behavior, because dependence on undefined behavior is a good way to open future security holes (like the sign overflow business).

    As far as DSPs, I think there is a good point to be made:

    The C standard tends to try to bend over backwards to try to accomodate non-mainstream CPUs, and that is not what a standard should do. Standards should not encode all the exceptions, otherwise the exceptions become the standard.

    In the case of DSPs, I can think of very few DSPs that can fully support the standard without a lot of run-time support that would get in the way of processing signals digitally. So it makes little sense to attempt to directly support DSPs in the standard.

    It makes more sense for the standard to define methods by which a non-standard compiler can qualify and quantify departures from the standard.

    In this case, not only do we want to be able to query the actual width of the various integer types, but we also want to be able to query the operational base, the sign behavior, and the behavior of shifts. And we want the standard to provide a way for CPU venders to declare their support for a subset or dialect of the standard.

    Kind of like being able to ask someone, "Are you from Texas?" although you really can't be sure in the human case which subdialect of Texan the person you're talking to is speaking. (We is proud o' ow-uh lo-cowl dye-lectix in Texs.) Then you could know such things as that "all" has to be able to parse as a "oil" as well as "every".

    In the specific case of the loop that depends on shifting bits out the top, you might enclose the loop with something like

    #if ! defined STICKY_SHIFT && OPERATIONAL_BASE == 2 && ( SIGN_FORM & TWOS_COMPLEMENT )
            i = 1; while ( ( i >> 1 ) > 0 ) /* Do something that requires i to double every pass to the limit of an int. */;
    #else
    # error( "Compiler does not support this optimized algorithm." )
    #end

    (Man my C's getting rusty.)