Slashdot Mirror


LLVM 2.2 Released

performance geek writes "LLVM 2.2 was released yesterday! This is the thirteenth public release of the open-source compiler that started as a GCC fork. LLVM supports several aggressive optimizations, in compile-, link- and run-time, and often produces faster (1.5-3x) code than GCC. It is also much faster than GCC at compiling (despite the slow link-time optimizations). Gentoo users are already trying to build the whole system with the LLVM toolchain to get the extra performance bit."

128 comments

  1. Re:Apparently not... by Teese · · Score: 4, Informative
    --
    "I'm a Genius!"*


    *Not an actual Genius
  2. LWN alternative gcc article by emj · · Score: 4, Informative

    LWN has discussion on this, and there is a nice video presentation of LLVM 2.0 as well. Cool thing, but as they say it isn't really about replacing GCC.

    1. Re:LWN alternative gcc article by Anonymous Coward · · Score: 0
      it isn't really about replacing GCC


      Oh don't be so naive. There is a large anti-GPL contingent out there salivating at the chance to kill gcc. Microsoft, Apple, IBM, the BSD folks, and the hard core "open source" folks (ie: those people opposed to the idea of "free software" as expressed by the FSF). The GPL, and the popular software licensed under it, is the enemy of companies and people who advocate authoritarian/corporatist control over what users should and should NOT be allowed to do with their computers and their data.

    2. Re:LWN alternative gcc article by octopus72 · · Score: 1

      Actually they want to be able to fork the compiler anytime they feel like. With gcc it's not possible, so some corporations are investing their time in LLVM. That could be useful if they'd like to implement some code that needs to stay secret, but of course the main branch will continue to use current (GPL-compatible) license and they'd loose many of future improvements for their fork in the long time. Apart from that, I don't see any reason to fork a compiler, except maybe if Microsoft wanted to use it as they avoid any open source licensed code, which they can't convert to proprietary, like plague.

    3. Re:LWN alternative gcc article by julesh · · Score: 1

      Actually they want to be able to fork the compiler anytime they feel like. With gcc it's not possible, so some corporations are investing their time in LLVM.

      Huh? LLVM *is* a gcc fork.

    4. Re:LWN alternative gcc article by Anonymous Coward · · Score: 0, Troll

      Please stop spreading misinformation.

      LLVM has nothing to do with the GCC codebase. The only relation LLVM has to GCC are:

      1) People are using GCC as a front end to LLVM code generators

      2) Support for common GCC extensions

      There will be little reason for people to continue with 1) when projects like clang are mature. LLVM is the most exciting thing to happen to compiler tech in a very long time. We are seeing with LLVM:

      1) A from scratch set of code generation and analysis codebase that is completely modular and done right
      2) A truly free source code license - no viral GPL BS to deal with
      3) An explosion in the number of people working on compiler tech and tools since LLVM is so well thought out and modularized that every niche compiler/code generation need can be addressed by people with a very narrow area of expertise unlike GCC which is a giant and poorly designed mess of code.

    5. Re:LWN alternative gcc article by 7-Vodka · · Score: 3, Insightful

      2) A truly free source code license - no viral GPL BS to deal with

      You were doing so well until you spouted this aggregious bullshit line. You're obviously very biased against the GPL since it's a very tough stretch by the M$ marketing department to call it viral.

      That's just as bad as calling copyright infringement "PIRATING". ARRGH ARRGH MATEY! AHOY THERE ON THE OPEN SEAS.
      You idiot.

      --

      Liberty.

    6. Re:LWN alternative gcc article by AxelTorvalds · · Score: 1

      It's not BSD either. It's the UofI License which is BSD like.

    7. Re:LWN alternative gcc article by octopus72 · · Score: 1

      Why is GPL "viral"BS? I find GPL a well balanced license. Why? Because it forces all contributors (which release a software product) to release also ALL source changes. And unlike v3, it doesn't ask for too much. That way it cannot happen that Microsoft takes the low hanging fruit (LLVM) and develops it as a proprietary fork in house and later promotes it to a major Windows compiler, or even attracts developers with their 'state-of-art tool'. So if a company like Microsoft can for free take a tool which took many man-years of best experts to develop, the license can't be really good. They aren't able do that with GPL-only software (at least not legally). For same reasons Linux is now way ahead of BSD systems even though they started earlier - because vast number of companies using Linux have no option other than to contribute. (Of course that's not the only reason and it's not fully correct in technical sense to call Linux 'way ahead' of BSD's as they have bright points).

      Of course, if you were an employee of a company that needs to develop a proprietary compiler from scratch, you would like license used for LLVM very much.

    8. Re:LWN alternative gcc article by nuzak · · Score: 3, Insightful

      Maybe they just want it to interface at link level with tools that, I dunno, might not be GPL?

      Naw, they must be The Enemies Of Freedom. That's it.

      --
      Done with slashdot, done with nerds, getting a life.
    9. Re:LWN alternative gcc article by 7-Vodka · · Score: 1

      Maybe they just want it to interface at link level with tools that, I dunno, might not be GPL? Naw, they must be The Enemies Of Freedom. That's it.

      I'm sorry you must be new to GPL licensing. There are no restrictions on use. It's a user-centric license. Go ahead and link whatever you want to your hearts content!!

      But if you mean that they want to rip off GPL licensed code and redistribute it without following the authors license, then no that wouldn't be allowed.

      Thanks for playing, but that doesn't make it "viral".

      --

      Liberty.

    10. Re:LWN alternative gcc article by matushorvath · · Score: 0

      You must be new to English. He said "interface at link level", in other words "linking with".

    11. Re:LWN alternative gcc article by nurb432 · · Score: 1

      2) A truly free source code license - no viral GPL BS to deal with


      You were doing so well until you spouted this aggregious bullshit line. You're obviously very biased against the GPL since it's a very tough stretch by the M$ marketing department to call it viral.


      That's just as bad as calling copyright infringement "PIRATING". ARRGH ARRGH MATEY! AHOY THERE ON THE OPEN SEAS.

      You idiot.

      Well, technically the GPL is viral, * by design *. Not going to get into the debate if its good or bad, just that it really is.

      Personally i don't have a problem calling copyright infringement piracy. I do however have a problem calling it theft.

      --
      ---- Booth was a patriot ----
    12. Re:LWN alternative gcc article by kelnos · · Score: 1

      Oh, please. Grow up. I release all of my OSS code under the GPL, but I'll be the first to admit it's not the be-all end-all of licenses. The reality of the situation is that many companies have issues with the GPL, whether real or imagined. Hell, people (see: most of the *BSD contingent) consider the GPL not to be a particularly "free" license. Are you saying your opinion is somehow worth more than theirs? How arrogant.

      --
      Xfce: Lighter than some, heavier than others. Just right.
    13. Re:LWN alternative gcc article by The+Analog+Kid · · Score: 1

      Why is GPL "viral"BS?

      Because if you use GPL code in your project, and distribute it, all your code in that project gets released under the GPL or you violate the terms of the license. Kind of how a virus attacks a cell and modifies it's DNA, the GPL code inserted into a project forces the project to distribute it under the GPL.

    14. Re:LWN alternative gcc article by octopus72 · · Score: 1

      Yes, it's viral to all code derived from the original GPL code (still doesn't prevent dual-licensing, if you are the author of it, though). But that's what author requests from people who modify the code (disallowing a license change).
      And it doesn't apply to non-derivative works where only the glue has to be (also) GPL, as long as you don't ship binaries.

      So it is not automatically viral to anything except the derived code. With some less restrictive licenses someone might just release changed modified version as a GPL, and that exactly is the problem with those, they are too permissive (i.e. same code can be turned into proprietary as well). I don't see an issue with GPL here, it's not a do-what-you-want license, nor it was ever intended to be.

  3. Re:Apparently not... by Frozen+Void · · Score: 1, Informative

    http://en.wikipedia.org/wiki/LLVM
    Wikipedia, learn to use it.

  4. Good reporting there, submitter by Goaway · · Score: 4, Insightful

    "The open-source compiler that started as a GCC fork"? LLVM is not a compiler. It is a code generator, optimizer and virtual machine, usable as a compiler back-end. It later added a gcc-based front end.

    Also, Apple is currently driving development of an alternate BSD-licensed front end named clang.

    1. Re:Good reporting there, submitter by samkass · · Score: 3, Interesting

      Although Apple states that clang is not designed to replace GCC overall, I would be surprised if Apple wasn't planning on it replacing GCC in their products. It appears to provide more performance, smaller binaries, and a freer license than GCC.

      Apple already reportedly uses it to compile their graphics code so that the same code can run on either a GPU or the CPU regardless of chipset available.

      --
      E pluribus unum
    2. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      and a freer license than GCC.

      What does this mean, exactly? That they want a compiler which they can modify, distribute and not publish the source? You do know that gcc being GPL does not imply that code compiled with it not the resulting binaries are GPL, right?

    3. Re:Good reporting there, submitter by MenTaLguY · · Score: 1

      ...they want a compiler which they can modify, distribute and not publish the source?

      Yes.

      --

      DNA just wants to be free...
    4. Re:Good reporting there, submitter by Enderandrew · · Score: 1

      That's why Apple used a BSD base as opposed to a Linux base for Mac OS X.

      --
      http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
    5. Re:Good reporting there, submitter by ArsonSmith · · Score: 1

      ...and a freer license than GCC.

      Really? I'm glad you weren't around when freeing the slaves was the important issue. Perhaps we should have BSDed the slaves. You know, everyone will release them, but of course anyone else can pick them back up and enslave them for themselves.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    6. Re:Good reporting there, submitter by immcintosh · · Score: 1

      I didn't think that one was too hard to figure out either :P

    7. Re:Good reporting there, submitter by maxume · · Score: 1

      You know perfectly well that he meant freer as in less restrictive. Acting like words only have the meanings that you endorse is tiresome.

      And yes, the GPL is more restrictive than something like BSD. Plenty of people think those restrictions are to good effect, but they are still restrictions in the sense that there are things that can be done with BSD(or similar) code that cannot be done with GPL code.

      --
      Nerd rage is the funniest rage.
    8. Re:Good reporting there, submitter by LizardKing · · Score: 1

      There's some concern in the BSD camps and elsewhere about the switch to GPLv3 for GCC and the GNU binutils. Some of the impetus for the changes in GPLv3 is the use of GCC in the embedded programming world, where the development and target platforms are closed source (usually Windows using Cygwin in the case of the development platform). As embedded applications is where BSD is quite heavily used, without the fanfare that Linux often gets simply because you don't have to make the source code available, companies who prefer BSD operating systems are worried about the implications of their reliance on the GNU toolchain. I don't know about Apple, but they may have similar concerns about the FSF agenda with regard to GPLv3, hence them putting resource into a new frontend for LLVM. Regardless of the politics, I'd very much like to see a better open source compiler than GCC whether it's under the BSD license or GPLv2 (without the "later version" wording).

    9. Re:Good reporting there, submitter by LizardKing · · Score: 2, Informative

      That's why Apple used a BSD base as opposed to a Linux base for Mac OS X.

      No, it's because MacOS X is a continuation of NeXTstep, which was based on a BSD userland and Mach kernel (itself originally developed from the BSD Unix kernel circa version 4.3). At the time NeXTstep was originally developed, Linux didn't exist and the GNU userland was still in its infancy. In addition, I've never seen any evidence that Apple considered a move to a Linux base for MacOS X, and considering how solid NeXTstep and OpenStep were I'd be surprised if they did. Licensing would have been an unlikely issue anyway, as NeXTstep always shipped with GCC as part of the development tools and there are a number of GNU tools in MasOS X.

    10. Re:Good reporting there, submitter by LizardKing · · Score: 1

      We're talking about freedom not GNU Freedom*. If you want to draw politic analogies, then it's a little like comparing BSD liberalism to GNU Marxism with Stallman as Stalin, changing the consitution - sorry, license - as it suits him.

      * A registered trademark of the Free Software Foundation. (I jest).

    11. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      You didn't see the sarcasm, either.

    12. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      GPLv2 (without the "later version" wording).

      You do understand that the usual "or a later version" clause leaves the choice of version to you (or whoever is distributing the code), right?

    13. Re:Good reporting there, submitter by k8to · · Score: 1

      If you're going to go completely off the deep end and call the GPL commie, at least get your commies straight. Stalin isn't marxist.

      --
      -josh
    14. Re:Good reporting there, submitter by Enderandrew · · Score: 1

      Mac OS 9 wasn't Unix based. When they jumped to a Unix base with OS X, Linux had been well established. They choose a BSD base because of the license. OS X isn't open source. The kernel is, but it hasn't always been. At times Apple has closed off the source of the kernel. If they chose a Linux base, OS X would have to be completely open source, and that was never going to fly.

      Apple chose a license that allowed them to take open code, alter, redistribute, and not share the source. Again, the parent examples fits in with their current practices.

      --
      http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
    15. Re:Good reporting there, submitter by samkass · · Score: 1

      What does this mean, exactly? That they want a compiler which they can modify, distribute and not publish the source?

      Obviously that's not their primary motivation since they are, in fact, publishing the source. But I suspect they want the freedom to combine it with any other source they have in any way they deem technically advantageous without the license having anything to say about it. They probably also want the freedom to control the timing and manner of the publication of the source. And yes, they probably want the ability to not publish the source in certain circumstances when they feel that doing so would be detrimental to them.

      GPL is a great license for its own ecosystem, but don't try to pretend that it isn't more restrictive than BSD.

      You do know that gcc being GPL does not imply that code compiled with it not the resulting binaries are GPL, right?

      Yep. This has nothing to do with that. Apple builds developer tools as well as products developed with those tools.

      --
      E pluribus unum
    16. Re:Good reporting there, submitter by Anonymous Coward · · Score: 0

      If they chose a Linux base, OS X would have to be completely open source, and that was never going to fly.

      I don't think so. The kernel would be GPL, along with GNU userland stuff they'd use, but everything else doesn't need to be GPL. They could still use a proprietaty GUI, tookit, etc.

    17. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      What does this mean, exactly? That they want a compiler which they can modify, distribute and not publish the source?

      Obviously that's not their primary motivation since they are, in fact, publishing the source. But I suspect they want the freedom to combine it with any other source they have in any way they deem technically advantageous without the license having anything to say about it. They probably also want the freedom to control the timing and manner of the publication of the source. And yes, they probably want the ability to not publish the source in certain circumstances when they feel that doing so would be detrimental to them.

      Ok, so what they want is more freedom for themselves. Which is quite a different thing from freedom for the user, which is what the GPL set out to protect. You said "it appears to provide a freer license": it is always necessary to be explicit about who gets the extra freedom.

      GPL is a great license for its own ecosystem, but don't try to pretend that it isn't more restrictive than BSD.

      It is less restrictive for the developer, and more restrictive for the user. Restrictiveness is not a totally ordered value.

      In this particular case, according to what you say, Apple wants to be more free so as to be able to restrict what the user can do.

    18. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      You know perfectly well that he meant freer as in less restrictive. Acting like words only have the meanings that you endorse is tiresome.

      Denying that the words have more than one possible meaning is dishonest.

      He meant freer as in "less restrictive for the developer". There are other ways for code to be free.

    19. Re:Good reporting there, submitter by Goaway · · Score: 1

      Which part of "MacOS X is a continuation of NeXTstep" did you not understand? Mac OS X is not a from-scratch project. It was not created right after Mac OS 9. It's entirely based on NeXTstep, which is far older.

    20. Re:Good reporting there, submitter by Goaway · · Score: 1

      No, it leaves the choice with those who drive the development. If the main development branch suddenly decides to go GPL3 only, you are either stuck with an outdated version, or forced to use the GPL3 code.

    21. Re:Good reporting there, submitter by Goaway · · Score: 1

      Ok, so what they want is more freedom for themselves. Which is quite a different thing from freedom for the user, which is what the GPL set out to protect. You said "it appears to provide a freer license": it is always necessary to be explicit about who gets the extra freedom. And the developer is the party bound by the license, not the user. Thus, a license with less restrictions, like BSD, is "more free" in any useful sense of the word.

      You may think it is good to protect the user's interests, but this does not mean the "license is more free". It is less free. Don't conflate what you want with "freedom".
    22. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      That's ridiculous. You are only required to use the GPL3 code if you want to make use of what those developers that opted for the GPL3 worked hard to write. Why would you be entitled to take advantage of their work without acepting their conditions?

    23. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      Ok, so what they want is more freedom for themselves. Which is quite a different thing from freedom for the user, which is what the GPL set out to protect. You said "it appears to provide a freer license": it is always necessary to be explicit about who gets the extra freedom. And the developer is the party bound by the license, not the user. Thus, a license with less restrictions, like BSD, is "more free" in any useful sense of the word.

      The party bound by the license is the distributor. If you do not understand that, you really should not be making comments on the GPL...

      You may think it is good to protect the user's interests, but this does not mean the "license is more free". It is less free. Don't conflate what you want with "freedom".

      What I am saying is that a statement such as "the license is more free" does not mean anything. You have to specify who it provides that extra freedom and what that freedom allows the recipient to do. Likewise, a statement like "it is less free" does not mean anything.

    24. Re:Good reporting there, submitter by Anonymous Coward · · Score: 0

      Hey dumbfuck!

      Do you realize you are doing nothing more than giving yet another example to STAY THE FUCK AWAY from the restrictive and viral GPL and its wackjob supporters like you.

      You are in desperate need of having the shit beat out of you.

    25. Re:Good reporting there, submitter by Anonymous Coward · · Score: 1, Informative
      Did you read a word of the post you're replying to?

      Mac OS 9 wasn't Unix based.
      So what? Who said it was? And who cares anyway? It's completely and utterly irrelevant, because OS X isn't derived from MacOS 9, it's derived from NeXTStep.

      When they jumped to a Unix base with OS X, Linux had been well established.
      But they didn't jump to a Unix base; they replaced MacOS with a new operating system based on NeXTStep. NeXTStep was first developed in the 1980s, many years before Linux even existed at all, let alone became established.

      They choose a BSD base because of the license.
      No, they didn't choose a BSD base at all. They chose NeXTStep, which happened to come with a BSD base. They never had any reason to consider a Linux base, because they already had a perfectly good Unix base. There was no choice made because there was no reason to make a choice.

      If they chose a Linux base, OS X would have to be completely open source, and that was never going to fly.
      Bullshit. You don't know what you're talking about. There is no reason whatsoever why you can't run a closed-source userland on a GPL kernel.
    26. Re:Good reporting there, submitter by Anonymous Coward · · Score: 0

      My understanding is that Apple would like to have tighter integration between their development tools, specifically XCode, the compiler and linker. They can avoid having separate parsing and tokenization in their text editor, have much improved contextual error information, and improve performance. GCC poses both architectural and legal obstacles to this kind of development for Apple right now.

      There's a Google Tech Talk from Chris Lattner that talks about Clang features and benefits:
      http://clang.llvm.org/clang_video-07-25-2007.html

    27. Re:Good reporting there, submitter by Anonymous Coward · · Score: 0

      "GCC poses both architectural and legal obstacles to this kind of development for Apple right now."

      translation:

      GCC is a steaming pile of shit.

      Yes it has been ported to every platform in the world and has made fairly good improvements to code generation and speed, but the actual source code, modularity, and usability for anything other than pure source code compilation is a complete disaster.

      Apple is going to be making a gigantic jump in development tools and support when their LLVM stuff gets to a usable form.

      Linux development tools are going to be left far behind if the attitude that LLVM is nothing more than some sort of 'anti-GPL' conspiracy.

    28. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      As opposed to staying very close to whatever `side' you count yourself in, obviouslt and characteristically proud of the incisiveness of the arguments it brandishes. All Anonymous and all. Very cute!

    29. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      GCC poses both architectural and legal obstacles to this kind of development for Apple right now.

      I do not know about the technical side, but surely there is

    30. Re:Good reporting there, submitter by maxume · · Score: 1

      Who is denying that the words have more than meaning? What exactly do you interpret "acting like words only have the meanings that you endorse" to be talking about?

      My intent was to imply that yes, free often means Free in the way that GNU, etc use it, but that it is tiresome to act like that is the only meaning it has. I'm pretty sure that is what I did, because in the world I live in, when someone says something, it is best to interpret what they are saying in the context of their own words, not in whatever context happens to be rhetorically convenient for me.

      So the very first poster said 'free' and meant, as you clarified, less restrictive for developers, then the OP replied and said "neener-neener that's not free", clearly meaning "Free" and then I said, "he didn't mean Free, so what's your problem?" and then you said, "hey, you are trying to deny that free can mean Free", which has nothing to do with what I was talking about.

      Maybe I misunderstood your intent?

      --
      Nerd rage is the funniest rage.
    31. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      [This time with whole sentences!]

      GCC poses both architectural and legal obstacles to this kind of development for Apple right now.

      I do not know about the technical side, but surely there is another approach to those legal obstacles. For example, the one Sun took with Java.

    32. Re:Good reporting there, submitter by Goaway · · Score: 1

      The party bound by the license is the distributor. And in how many cases is the developer not the distributor? Stop playing semantic games to cloud the issue.
    33. Re:Good reporting there, submitter by samkass · · Score: 1

      Ok, so what they want is more freedom for themselves. Which is quite a different thing from freedom for the user

      They ARE the user, so in this case it's the same.

      --
      E pluribus unum
    34. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      Maybe you have heard about this groups of people called `distribution makers'? You can check http://www.redhat.com/, http://www.debian.org/, http://ubuntu.com/, and so on. I hear there is a whole site dedicated to simply listing linux distros! They surely are not the developers of all the code they package, you know.

      The fact that the GPL is a license on distribution is a hardly a semantic point: it is essentially the whole point of the license!

      You claimed that "the developer is the party bound by the license, not the user": one can but conclude that you have not even read the license (nor the many faqs out there explaining in painstaking detail what the license says...)

    35. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      Oh, come on. They are not. That claim is plainly silly.

    36. Re:Good reporting there, submitter by larry+bagina · · Score: 1

      In the OS 8/9 days, Apple experimented with Linux. The result: mkLinux. That was 1995/1996, before Steve Jobs returned, but Apple was involved until 1998.

      I've heard rumors (from a couple different sources) that Apple considered replacing the OpenStep/OS X BSD kernel with mklinux but considered it unsuitable for technical, not legal, reasons.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    37. Re:Good reporting there, submitter by larry+bagina · · Score: 1

      The FSF requires all GCC contributions to be assigned to the FSF. Apple has contributed code to GCC. What if Apple (or any other contributor) supports the GPL v2, but not v3? The FSF has the legal right to update the license (to GPL v3 or closed source proprietary), but that code was contributed under the GPL v2 license.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    38. Re:Good reporting there, submitter by larry+bagina · · Score: 5, Informative

      Exactly! From the clang readme. Half of these things are a nice feature for XCode/IDE integration.

      III. Current advantages over GCC:

        * Column numbers are fully tracked (no 256 col limit, no GCC-style pruning).
        * All diagnostics have column numbers, includes 'caret diagnostics', and they
            highlight regions of interesting code (e.g. the LHS and RHS of a binop).
        * Full diagnostic customization by client (can format diagnostics however they
            like, e.g. in an IDE or refactoring tool) through DiagnosticClient interface.
        * Built as a framework, can be reused by multiple tools.
        * All languages supported linked into same library (no cc1,cc1obj, ...).
        * mmap's code in read-only, does not dirty the pages like GCC (mem footprint).
        * LLVM License, can be linked into non-GPL projects.
        * Full diagnostic control, per diagnostic. Diagnostics are identified by ID.
        * Significantly faster than GCC at semantic analysis, parsing, preprocessing
            and lexing.
        * Defers exposing platform-specific stuff to as late as possible, tracks use of
            platform-specific features (e.g. #ifdef PPC) to allow 'portable bytecodes'.
        * The lexer doesn't rely on the "lexer hack": it has no notion of scope and
            does not categorize identifiers as types or variables -- this is up to the
            parser to decide.

      Potential Future Features:

        * Fine grained diag control within the source (#pragma enable/disable warning).
        * Better token tracking within macros? (Token came from this line, which is
            a macro argument instantiated here, recursively instantiated here).
        * Fast #import with a module system.
        * Dependency tracking: change to header file doesn't recompile every function
            that texually depends on it: recompile only those functions that need it.
            This is aka 'incremental parsing'.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    39. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      If you do not want to accept the terms under which some piece of code is distributed, you have to write your own. That is quite clear.

    40. Re:Good reporting there, submitter by akihabara · · Score: 1

      Claiming the intent is not to replace GCC is pure propaganda and only there to not get some people's back up. It clearly is intended to replace GCC; ultimately pretty much the whole toolchain in fact; developers openly state they intend it to be a drop-in replacement.

      I think this is very likely; the FSF's toolchain has dug its own grave, being poorly designed and non-modular. It was only a matter of time.

    41. Re:Good reporting there, submitter by Enderandrew · · Score: 1

      So they built upon something existing. That's backwards logic. You insist that because they built upon an existing product, that ruled out them possibly using another existing product because NeXTstep started before Linux was big? That makes zero sense.

      Furthermore, Apple was been one of the biggest pushers of DRM and proprietary standards for years. Not to mention that they've taken credit for innovations and inventions that have existed in the open source community for years. (Virtual desktops come to mind) Given that they weren't even willing to keep the kernel open, what makes you think they'd ever completely abandon DRM and allow their OS to be fully open source? Is there any indication they'd ever consider it?

      Stop trolling.

      --
      http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
    42. Re:Good reporting there, submitter by Goaway · · Score: 1

      You insist that because they built upon an existing product, that ruled out them possibly using another existing product because NeXTstep started before Linux was big? No, using another existing product was ruled out because Steve Jobs was the founder of NeXT. Learn some computing history.

      Furthermore, Apple was been one of the biggest pushers of DRM Bigger than Microsoft?

      and proprietary standards Name two.

      Given that they weren't even willing to keep the kernel open What exactly is http://www.opensource.apple.com/darwinsource/, then?

      Perhaps you should pay a little less attention to internet hysteria, and a little more to actual truth.
    43. Re:Good reporting there, submitter by Goaway · · Score: 1

      Still playing silly semantic games. The fact that there is a second group of distributors makes no difference to the actual argument. That second group is not "users", either. My point that the user is not bound by the license still holds exactly as before.

    44. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      Your point was literally:

      the developer is the party bound by the license, not the user.

      I have never said that the user is bound by the license, as that would be absurdly idiotic, as the license says so itself in the first couple of paragraphs. The developer, too, is not bound by the license. The distributor is who is bound by the license, because it is a copyright license. It is not that hard.

      Still playing silly semantic games. The fact that there is a second group of distributors makes no difference to the actual argument. That second group is not "users", either.

      I have no idea what you are trying to say here. You asked "And in how many cases is the developer not the distributor?" and I pointed you to the easily established fact that most people do not get GPL code from the developers, but from distributors who are not the developers.

      I do not think "semantic games" means what you think it means. From what you write, you seem to think that it means "LALALALALALALALAAL". It doesn't.

    45. Re:Good reporting there, submitter by LiENUS · · Score: 1

      Oh, come on. They are not. That claim is plainly silly.
      that claim makes plenty of sense to me. Most users of OSX aren't likely to be using the compiler regularly (I know my mom hasn't used a compiler on OSX). The only user of the compiler in regards to her computer was apple. Hence apple is the user.
    46. Re:Good reporting there, submitter by LiENUS · · Score: 1

      But they didn't jump to a Unix base; they replaced MacOS with a new operating system based on NeXTStep. NeXTStep was first developed in the 1980s, many years before Linux even existed at all, let alone became established. NeXTSTep was developed in the 1980s by NeXT (Please note that NeXT is a completely separate company from Apple at the time the decision to use NeXTStep was made.) Apple acquired NeXT in 1996, the same year I first started using Linux on my desktop coincidentally. Linux was nowhere near as well developed as it is today, but it was already very far along. By the same token what became OS X was nowhere near as developed as OS X is today. I am certain Apple gave at least some consideration to using Linux. I'm sure they also gave some consideration to licensing Windows NT (Which was at 3.51 and had support for PowerPC at the time) and a bunch of other crazy ideas.
    47. Re:Good reporting there, submitter by Eric+Smith · · Score: 1

      Apple had Unix well before that: A/UX. It was actually pretty nice for its time.

    48. Re:Good reporting there, submitter by Goaway · · Score: 1

      Sigh.

      Did you even make the tiniest effort to understand what my original point was?

    49. Re:Good reporting there, submitter by xouumalperxe · · Score: 1

      Bullshit. You don't know what you're talking about. There is no reason whatsoever why you can't run a closed-source userland on a GPL kernel.

      But you can't link closed source modules into a GPL kernel, and that's an issue with in-kernel DRM, for one, and potentially other technologies that, while not so based on secrecy themselves, Apple would rather keep closed-source.

      This said, NeXTStep was already there, and arguably Apple bought NeXT because of it and related technologies, so there's no good reason to go from those underpinnings to a linux-based system.

    50. Re:Good reporting there, submitter by xouumalperxe · · Score: 1

      Seems that you didn't grasp the whole "free as in freedom" concept, then. I've come to realize that the best way to characterize that "free as in freedom" thing is this: it's not about your freedoms, as a developer or user. It's about the code's freedoms as an entity unto itself. And being closed (like the BSD license allows, for example), is less free than the LGPL, which in turn is less free than the GPL because it allows you to lock up code around it.

      Whether open source must mean free software, and whether free = good are entirelydifferent discussions well worth discussing, but the notion of free software was pretty much envisaged by RMS, and his definition of what makes software free is quite clear.

    51. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      Well, the fact that most users are not going to be using a compiler applies to Fedora and other distros too. It is quite irrelevant.

      Apple can take a GPL-licensed compiler, modify it to their pleasure, use it to compile whatever applications they want, and distribute the resulting binaries. As long as they are not distributing the modified compiler, they are not---I repeat--they are NOT bound by the GPL. There is very little that can be described as "more free" than that.

      Now, if they want to distribute the compiler too, then yes, they become distributors of a derivative work and have to comply with the GPL.

    52. Re:Good reporting there, submitter by Anonymous Coward · · Score: 0

      It's a bit funny you all americans are so ill about "commies" and so proud about capitalism.

      How is it that americans so much adore capitalism while the very time you can proof your adherence, that is, in your own companies, you always prefer basing them over communist principles better than capitalist?

    53. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      Your point was that, since the GPL binds the developer, a license such as BSD is freer. Now, the GPL does not bind the developer, so that argument carries absolutely no weight. There are other arguments to be made, but yours does not take you anywhere.

      After that you said:

      You may think it is good to protect the user's interests, but this does not mean the "license is more free". It is less free. Don't conflate what you want with "freedom".

      I cannot make any sense of this. As I said before, there is no total order on liberties. You appear to believe that `protecting the user' means `less free', while `protecting the developer' means `more free': this is a meaningless statement. As I said, unless you specify who it provides that extra freedom and what that freedom allows the recipient to do, `comparing freeness' does not mean anything.


      You have yet to produce something apart from `sigh's and `stop playing semantic games'. This is quite tiresome...

    54. Re:Good reporting there, submitter by Enderandrew · · Score: 1

      Bill Gates also worked heavily on OS/2 and promised it would be the OS for businesses. What we have today has little to do with DOS or early versions of Windows, but rather NT which they bought.

      And OS X has little to nothing to do with previous iterations of the Mac OS. Steve Jobs had ties to NeXTstep, but that didn't mean Apple had to use it. Again, Apple has abandoned other things, just as Microsoft has.

      I also didn't say Apple was the single biggest pusher of DRM, simply that they have been one of the biggest pushers. iTunes phones home, and FairPlay isn't exactly fair. They have pushed proprietary hardware. They won't allow their software on non-Apple hardware, and charge considerably more for the same hardware. The bundle software in much the same way that Microsoft was found guilty of anti-trust laws. It was deemed illegal to bundle Windows Media Player, yet Apple forced me to download iTunes to get QT. Admittedly, this thankfully eventually changed.

      Again again, I didn't saw Darwin was closed source. I said it has been closed source. Apple has waffled on that.

      --
      http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
    55. Re:Good reporting there, submitter by LiENUS · · Score: 1

      Well, the fact that most users are not going to be using a compiler applies to Fedora and other distros too. It is quite irrelevant. Fedora is very different from OS X. Most Linux software packages are designed from the start to be easy to install by compiling. ./configure --prefix=/usr/local/nut --with-usb; make; make install. Most distros are moving to a system where you use pre-built packages nowadays however even my Ubuntu servers i end up having to compile at least one package by hand to get it where i want it. I don't think I've ever compiled anything on a mac OS X system and the user base apple is targeting is not going to be using the compiler. The user base Fedora and Ubuntu target will be using a compiler its a fact of life with linux.
    56. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      I guess Apple was not just an user, then...

      Well, the fact that most users are not going to be using a compiler applies to Fedora and other distros too. It is quite irrelevant. Fedora is very different from OS X. Most Linux software packages are designed from the start to be easy to install by compiling. ./configure --prefix=/usr/local/nut --with-usb; make; make install. Most distros are moving to a system where you use pre-built packages nowadays however even my Ubuntu servers i end up having to compile at least one package by hand to get it where i want it. I don't think I've ever compiled anything on a mac OS X system and the user base apple is targeting is not going to be using the compiler. The user base Fedora and Ubuntu target will be using a compiler its a fact of life with linux.

      That's not true, really. Neither of those distros install a compiler or gmake by default even. Of course, if you want development tools, you can get them trivially., and they are very much designed to be able to dogfood in a trivial way. But I would never call F8 a distro targetted for developers... I would not be using it otherwise.

    57. Re:Good reporting there, submitter by Fnordulicious · · Score: 1

      What?

      Oh, okay.

    58. Re:Good reporting there, submitter by statusbar · · Score: 1

      Actually, Apple DID evaluate linux before NeXT became MacOSX. They ported linux to apple powerpc hardware under the mach microkernel in 1996.

      http://en.wikipedia.org/wiki/MkLinux

      --jeffk++

      --
      ipv6 is my vpn
    59. Re:Good reporting there, submitter by Goaway · · Score: 1

      Your point was that, since the GPL binds the developer, a license such as BSD is freer. Now, the GPL does not bind the developer, so that argument carries absolutely no weight. There are other arguments to be made, but yours does not take you anywhere. And you dodge the point that the developer is pretty much always also the distributor. The fact that there are other distributors too doesn't change this. Thus, the developer is for all intents and purposes bound by the GPL.

      I cannot make any sense of this. As I said before, there is no total order on liberties. You appear to believe that `protecting the user' means `less free', while `protecting the developer' means `more free': No, I mean that putting more demands on the developer means less free, and putting less demands on the developer means more free. The question of the user's ability to do this or that is entirely secondary, and a separate matter. You can say that "this license is more protective of user's rights" or "less protective", but calling that "free" is a severe misuse of the word "free".

      And playing games with the word "free" is dangerous.
    60. Re:Good reporting there, submitter by Goaway · · Score: 1

      iTunes phones home, It does not. Once again, you believe this because you belive internet hysteria without actually checking up on the facts.

      The bundle software in much the same way that Microsoft was found guilty of anti-trust laws. Bundling software is not and has never been illegal. The reason Microsoft got in trouble was because they did this while in a position of market dominance, in which case there are additional restrictions on what you are allowed to do. You can hardly claim Apple has a monopoly.

      Apple has waffled on that. You mean, the internet threw a hissy fit over an issue that never existed. The source has never been closed.
    61. Re:Good reporting there, submitter by Enderandrew · · Score: 1

      http://blogs.zdnet.com/Apple/?p=75

      Apple even altered the firewall software on Mac OS X to hide the fact that iTunes phones home.

      And the source on Darwin was closed. They refused to release code required to compile and run Darwin. They refused to release code that was part of Darwin.

      You need to check your facts.

      --
      http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
    62. Re:Good reporting there, submitter by LizardKing · · Score: 1

      If you're going to go completely off the deep end and call the GPL commie, at least get your commies straight. Stalin isn't marxist.

      Stalin wasn't a Marxist? He described himself as Marxist-Leninist, and attempted to drag the Soviet Union into the industrial age with the five year plans ostensibly to fit with Marxist preconditions for a Communist state. Marxist apologists like to counter the argument that their doctrine is fundamentally flawed by claiming that Stalin, Mao, et. al. aren't Marxists, while many still admire Trotsky and Lenin. The facts are that regardless of Lenin's alleged deathbed warning about Stalin, it was Lenin and Trotsky who laid the groundwork for the Stalin regime with the Cheka and Red Terror. Just because the inevitable results, in line with Michel's Iron Law of Oligarchy, were authoritarian dictatorships does not mean that their creators weren't working from Marxist precepts. Somewhat ironic when you consider how much selective use of facts Marx made when writing Das Kapital, and the downright misleading way he portrayed the Paris Commune as Communist.

    63. Re:Good reporting there, submitter by Goaway · · Score: 1

      http://blogs.zdnet.com/Apple/?p=75 Right. Internet hysteria. That whole thing was because the iTunes store would recommend music to you based on what you were listening to. This was later changed to not be on by default after people complained. There was never any indication that it was malicious or meant for data mining.

      Apple even altered the firewall software on Mac OS X to hide the fact that iTunes phones home. The OS X firewall does not monitor outgoing connections at all. It would never have shown if iTunes phoned home, and thus "modifying" it would make no sense.

      And the source on Darwin was closed. They refused to release code required to compile and run Darwin. They refused to release code that was part of Darwin. Again, internet hysteria. http://lists.apple.com/archives/darwin-x86/2006/May/msg00008.html

      Like I said. You really need to start questioning what you read on the internet, and not accept every single thing it shouts at you.
    64. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      And you dodge the point that the developer is pretty much always also the distributor. The fact that there are other distributors too doesn't change this. Thus, the developer is for all intents and purposes bound by the GPL.

      Of course a person can assume many roles.

      As long as the developer is only a developer, he can do whatever he pleases with the GPL code written by others he got for free. Now, as soon as he wants to distribute it, there are terms he has to accept. For example, there is quite a lot of modified GPL code in my computer, which I modified from sources I got from others---yet I have not distributed them, so I am 100% unbound by the GPL. Were I to distribute the modified code, thereby becoming a distributor for derived works of thr GPL code I got from others, then yes, qua distributor, I have to comply with the GPL.

      Great anaytical powers are not required to make the distinction, and your trying to make it go away is, well, silly.

    65. Re:Good reporting there, submitter by Goaway · · Score: 1

      I would have thought that everyone could agree that a programmer tinkering around with some source on his computer and then abandoning it would not be of any relevance of interest to the discussion, and could be implicitly ignored.

      I guess I was wrong there.

    66. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      You are fun in a way only sci.math cranks are fun...

      Of course that can be ignored in so far as you are discussing the GPL because the GPL is a distribution license which only affects distribution.

    67. Re:Good reporting there, submitter by DragonWriter · · Score: 1

      When they jumped to a Unix base with OS X, Linux had been well established. They choose a BSD base because of the license.


      No, they chose NeXTStep as the base because of its features, which is why they bought NeXT. From what I understand, the decision wasn't made to "jump to Unix" separately from choosing NeXT, they were looking for a new OS, and considered continuing an internal (non-Unix-based) project to replace MacOS, or purchasing an existing OS and adapting it: there was no separate decision for Unix, then a decision on a license, than a search for an available Unix system that had the right license.

      Apple chose a license that allowed them to take open code, alter, redistribute, and not share the source.


      Arguably, NeXT chose that, for perhaps that reason, when they chose Mach. But the seriously-considered contenders for MacOS X were, as I understand, an internal (proprietary) Apple OS, and an Apple purchase of NeXT, and Apple purchasing some other proprietary OS or OS maker.

    68. Re:Good reporting there, submitter by Anonymous Coward · · Score: 0

      If you do not want to accept the terms under which some piece of code is distributed, you have to write your own. That is quite clear.

      Apparently not, GP said:

      1) FSF forces gcc contributions to *be assigned to the FSF*.
      2) Apple and other corps contribute to gcc because they accepted the gcc GPLv2 license terms.
      3) FSF decides to change gcc to GPLv3 without input from the contributors.

      So the people who did "write their own" did not get a say in the fact that their code was suddened given to a GPLv3 project, so that is part of the reason they may want to contribute to a project with a license that gives them more control over the code they are contributing. That is quite clear.

    69. Re:Good reporting there, submitter by msuarezalvarez · · Score: 1

      So you are saying that the FSF somehow forced Apple and other coorporations to given them the code and te rights on it to change the license. At gun point, I imagine?

  5. Re:Apparently not... by LighterShadeOfBlack · · Score: 1

    http://en.wikipedia.org/wiki/LLVM
    Wikipedia, learn to use it. It wouldn't exactly kill Slashdot editors and contributors to get acquainted with the <acronym> tag though would it?
    --
    Spelling mistakes, grammatical errors, and stupid comments are intentional.
  6. Comment removed by account_deleted · · Score: 3, Informative

    Comment removed based on user account deletion

  7. Extra Performance by Jellybob · · Score: 4, Funny

    Of course the Gentoo users are off recompiling there whole system for the extra performance. It's what they do - why use your computer when you can make it .242% faster with only 15 hours of compiling?

    1. Re:Extra Performance by SanityInAnarchy · · Score: 1

      That's why I left for Ubuntu, but honestly, if I can make it 3x faster with 15 hours of compiling?

      --
      Don't thank God, thank a doctor!
    2. Re:Extra Performance by rcw-home · · Score: 1

      why use your computer when you can make it .242% faster with only 15 hours of compiling?

      but honestly, if I can make it 3x faster with 15 hours of compiling?

      Err, I think you're missing the point.

    3. Re:Extra Performance by eddy · · Score: 1

      Your whole system 3x faster by changing compiler? You never can. There isn't that much performance hidden in there.

      --
      Belief is the currency of delusion.
    4. Re:Extra Performance by Anonymous Coward · · Score: 0

      Of course the Gentoo users are off recompiling there whole system for the extra performance.

      Ever so funny, but there's absolutely no mention in the linked bug report of anyone using LLVM to recompile the whole system. (And yes, I know it's the submitter's fault and not yours.)
    5. Re:Extra Performance by SanityInAnarchy · · Score: 2, Informative

      Actually, I was correcting the point. TFS claims 1.5x-3x speed improvement over gcc.

      Of course, TFS was also dead wrong about Gentoo users trying to build the whole system. Apparently there's an ebuild to install llvm, which seems like an obvious thing to do. There's also mention of Mesa intending to switch to llvm, and other projects might follow, but those are isolated programs, no more shocking or revolutionary than the fact that Eclipse is written in Java.

      --
      Don't thank God, thank a doctor!
    6. Re:Extra Performance by audi100quattro · · Score: 1

      I've tried the v2.1 ebuilds with the 4.0 gcc frontend and gzip/bzip were 10-20% slower on most types of files on my athlon64x2. I'm guessing the optimizations need to be turned on relevant to the codebase, and most are off by default.

      I wish the ebuilds had gcc-config support and the fix_libtool thing might need some fixing too.

    7. Re:Extra Performance by FunkyELF · · Score: 1

      I'm not going to pretend to know anything about the gzip/bzip code but I would guess that processor hungry tools like those are already pretty optimized at the C language level if not assembly.

      Perhaps optimizations like those to trick the gcc compiler into generating faster code has the reverse effect on LLVM?

      Again, I know nothing.

    8. Re:Extra Performance by FunkyELF · · Score: 1

      Yeah, I would bet those are very special cases where you get 3x performance. Of a C program that has 1000 functions probably only a small percentage of those functions could be sped up 3x and they're probably trivial and don't contribute much to the overall runtime of that program.

      If any significant profiling has been done on CPU intensive programs the authors might already be doing optimizations at the C language level.

    9. Re:Extra Performance by jlherren · · Score: 1

      Heh, you're laughing, but there are situations where a few hours of compiling are can be worth a quite small increase in runtime performance. And that's not only for when that gain is more than the time spent compiling, which might only happens when your program has to run for a loooooong time. Imagine a server that gets heavy traffic during the day and is idle during night. Spending 30 nights compiling the server software with a slightly better compiler or better compiler options is no loss, because the server would otherwise be idle anyway. But the performance gain can be noticable during the day and that's an improvement even if the cumulative time saved in execution will never grow larger than the cumulative time spent compiling.

      Anyway, people like making fun of gentoo users trying to get maximum speed, which is totally fine. But speed has never been a reason why I use gentoo. It can't be, because I don't see it being any faster than other systems, in fact, I think some parts of it are slower than other distros (emerge --sync takes a long time, portage tree is stored inefficiently, resolving dependencies takes ages). For me, gentoo is about flexibility and configurability.

    10. Re:Extra Performance by Just+Some+Guy · · Score: 2, Informative

      There isn't that much performance hidden in there.

      Fortunately for us, compiler researchers say you're wrong. LLVM takes the Java-like approach of seeing what parts of your code can be optimized by gathering runtime profiling information, then using that to dynamically recompile parts of your code that really need it. I'd be surprised if that kind of system couldn't squeeze out quite a bit more performance.

      --
      Dewey, what part of this looks like authorities should be involved?
    11. Re:Extra Performance by rcw-home · · Score: 1

      Actually, I was correcting the point.

      The point in front of the 242%. It was a joke.

      *sigh*

    12. Re:Extra Performance by makomk · · Score: 1

      I think the main reason Mesa are interested in LLVM is not so much as a gcc replacement, but to generate code for shaders and the like...

    13. Re:Extra Performance by eddy · · Score: 1

      >Fortunately for us, compiler researchers say you're wrong.

      Historically, Compiler Researchers have always been too optimistic about their optimizations. You can ask them, I'm sure many will agree.

      --
      Belief is the currency of delusion.
  8. Re:Apparently not... by cbart387 · · Score: 3, Informative

    Agreed. I've always been taught that you introduce the full meaning of an acronym before you use it. The acronym may make sense to you, but the reader may not have been exposed to it. This is especially applicable on a tech site, where acronyms are rampant. I'm not even including the acronyms seen only on slashdot (which are very off putting to a first time user by the way). Remember: EVERYONE started as a beginner.

    ... just a pet peeve of mine that I can do a mini-rant on without being off-topic ;)

    --
    Lack of planning on your part does not constitute an emergency on mine.
  9. Re:Apparently not... by Anonymous Coward · · Score: 0

    It was a perfectly reasonable question.
    Dick, learn to stop being one.

  10. Does it do inline asm yet? by Anonymous Coward · · Score: 0

    Last I knew, this didn't have inline assembly. Does it have this yet? I know that a lot of people like to say you shouldn't be using assembly, but for certain uses this is a show stopper. If LLVM wants to truly replace GCC, it should provide this.

    Granted, the small amount I've read about LLVM's design might make this less than straightforward. IIRC, it places much emphasis on generating intermediate, architecture-independent code which can then be compiled into machine code. Some things I read seem to suggest that they want to do JIT (or something like it) of this intermediate language (correct me if I'm wrong).

    1. Re:Does it do inline asm yet? by AcidPenguin9873 · · Score: 2, Informative

      LLVM has supported inline asm since release 1.7, and the support has steadily been getting better at each release, with major improvements in 1.8 and 1.9.

      http://llvm.org/releases/1.7/docs/ReleaseNotes.html
      http://llvm.org/releases/

      The only problem with the x86 inline asm support in 2.2 is the lack of support for the x87 floating point stack in the inline asm register constraints. See "Known Problems" in the 2.2 release notes.

    2. Re:Does it do inline asm yet? by julesh · · Score: 1

      Some things I read seem to suggest that they want to do JIT (or something like it) of this intermediate language (correct me if I'm wrong).

      They already have a JIT compiler for their intermediate language, but it isn't the primary development focus. I think it was more of a "it would be cool if..." kind of thing.

      The main thrust of development is in link-time optimizations and code analysis.

  11. and it still does nothing (misleading) by Anonymous Coward · · Score: 0

    overcoming gcc is not so easy after all Apple trolls.

  12. Re:Apparently not... by QuickFox · · Score: 1

    IAWTP

    --
    Terrorists can't threaten a country's freedom and democracy. Only lawmakers and voters can do that.
  13. Gentoo Users by Enderandrew · · Score: 3, Insightful

    Some Gentoo users just want fine-grained control over their systems. They get exactly the packages they want, configured the way they want, and nothing else. The biggest power of Gentoo isn't compile optimizations, but rather use flags. I want my box to operate exactly how I want it. Gentoo allows me that freedom.

    It does take a good deal more time and effort, but frankly some people enjoy that sort of thing as a hobby, the way others constantly tinker with their car.

    For what it is worth, portage (and the two portage replacements, pauldis and pkgcore) are quite frankly hands down the best package managers out there, and they handle pre-compiled binary packages just as well. I really honestly believe the rest of the Linux world would be greatly benefited by using one package manager, regardless of how they compile or pack their binaries.

    Set a use flag for openSUSE_10.3 and portage knows what packages to grab. It could work.

    --
    http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
  14. Benefit by Enderandrew · · Score: 1

    I don't imagine my whole computer will even run more than 10% faster, let alone 3 times faster. However, there are some really large, clunky codebases such as OpenOffice that could probably really benefit from this. And if part of the benefit comes from assembly in-lining, then code that has large chunks of assembly like emulators, or maybe the kernel might benefit as well. It will likely be up to these packages to try and support llvm rather than vice-versa.

    --
    http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
  15. one pakage manager to rule them all by emj · · Score: 1

    For what it is worth, portage (and the two portage replacements, pauldis and pkgcore) are quite frankly hands down the best package managers out there, and they handle pre-compiled binary packages just as well.


    The problem is that in my view gentoo is often the worst distribution out there, with very low quality packages. Maybe the package manager is great, but it's not really about technical excenlece it's about how easy it is to use. Sadly most things become easy to use after training, and people don't want to train more than once, that's why people are still in Debian.

    But if you have any good highlights of why portage is so much better then please tell me, the one thing I love about debian is this:


    apt-get sources xbattle
    apt-get build-dep xbattle
    # then build manually


    I'm sure there is something similar in portage.
    1. Re:one pakage manager to rule them all by Enderandrew · · Score: 2, Insightful

      There are tons of advantages to portage, but the biggest is use flags. It also handles dependencies far better than apt-get, yast, or anything else I've tried. I've run into broken, dependency hell of other systems. That alone is huge.

      You say the packages in Gentoo are horrible. They are source based packages, the same as you'd get with Debian, or Ubuntu, etc. Each distro does often include distro-specific patches with various packages, but not all. However, I'm not sure which packages are so horrible in Gentoo, as we're just talking about source code.

      If you're not familiar with use flags, I can compile in support for qt widgets, gtk widgets, java, etc, or remove any of these features from openoffice as I see fit. Or I can download a precompiled binary of openoffice. With something like apt-get, you can download sources and the recompile the sources, but apt-get has no way to keep track of whether or not you compiled openoffice with ldap support or not. However, Gentoo keeps track of the use flags for dependency purposes, and to make sure all packages of my systems are compiled with the same options. Or I can set a use flag for one package as opposed to globally if I wish.

      Check this out sometime.

      http://paludis.pioto.org/

      --
      http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
    2. Re:one pakage manager to rule them all by Dan+Ost · · Score: 1

      If you want manual control over the build (or want to make source changes), instead of typing

      emerge foo

      You'd type

      ebuild foo.ebuild fetch unpack compile install qmerge

      and make whatever changes you wanted in between unpack and compile or compile and install (depending on the kinds of changes you wanted to make.

      --

      *sigh* back to work...
    3. Re:one pakage manager to rule them all by Ant+P. · · Score: 1

      I'm sure there is something similar in portage. `emerge --onlydeps xbattle && emerge --fetchonly xbattle` should do it, though then you have to mess around with package.provided so it doesn't uninstall the deps later on.

      I haven't used emerge for a while since I've found paludis does things better (its config files are actually in a consistent format, for one thing...)
    4. Re:one pakage manager to rule them all by emj · · Score: 1

      There are reasons to call packages horrible, ignorance from users, NIH feelings from users and bad integration of developers. What I saw in 2005-6 was that the packages of Gentoo were lower quality than the ones in Debian. I think this was because the Debian way is to include everything, and that is hard to do good which means they have to work more on the packages. The Gentoo way seemed to be about adding as many use flags as possible, I think this leads to packages that hasn't been tested with all features/permutations.

      I think the Gentoo model is very good, I don't believe in Source packages but I think it's an important option to have. As a free software OS the most important part isn't the binary but the source, and this is something I think Red Hat Enterprise Linux should learn (getting patches from them is very hard, and usually it's just a matter of USE flags), but combining testing and freedom to tinker is probably never going to work.

    5. Re:one pakage manager to rule them all by Enderandrew · · Score: 1

      It is important however to separate the package manager and the packages themselves. If nothing else, portage handles dependencies very well, and will even show you a tree of dependencies for your packages.

      --
      http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
  16. LLVM Question... by FunkyELF · · Score: 1

    I remember reading somewhere about some guy targeting javascript so that he could write in any language which has a front-end in LLVM and have it generate javascript.

    I don't know javascript at all...so lets say he did this with Java.

    Could I write a program in C, and have it target a JVM rather than a particular OS/Architecture? Would I get Java array bounds checking of my C code?

    1. Re:LLVM Question... by Anonymous Coward · · Score: 0

      No, his system 'cheats'. Basically he created a large char array to act as the whole system RAM. Then, malloc just returns indices into that array.

      However, you can achieve what you want in a much simpler way that doesn't involve relying on Java or JavaScript safety. Write an LLVM transformation pass that takes every MallocInst and replaces it with one that either a) returns the pointer + a size (called the fat pointer technique) or b) registers the pointer and size in a list on the side elsewhere then does the malloc. Then, the pass also modifies every LoadInst and StoreInst (and free?) to check the validity of the pointers before using them.

      What's neat about this is that you can then statically compile the resulting program. There's no need for a VM to sit in between. If you're really lucky, LLVM will even be successful at optimizing away the safety checks on your load and store instructions.

    2. Re:LLVM Question... by FrangoAssado · · Score: 1
      Sounds interesting, but...

      You're assuming every pointer references a malloc-ed area. While (the equivalent of) this is true for Java, things simply don't work like this in C.

      Consider:

      void g(int *p, int i)
      {
      p[i] = 0; /* how can you check this access? */
      }

      void f(int i)
      {
      int x, a[100], *p;

      p = malloc(100*sizeof(int));
      g(&x, i);
      g(&a[10], i);
      g(p + 50, i);
      free(p);
      }
    3. Re:LLVM Question... by Anonymous Coward · · Score: 0

      The fact you can detect every allocation is at the heart of whole program analysis. Every valid pointer references an allocated area, whether it's malloc'd, alloca'd or a pointer to a global variable (address of function) or somesuch.

      Yes, LLVM compiles "int a[100]" to an AllocaInst which is just like a MallocInst, except that the memory space goes away at the end of the function. To handle it you'd have to instrument the 'ret' instruction with some code that marks all the alloca'd space invalid.

      Yes it's expensive at runtime. That's the price for safety. It does work though.

      Well, It doesn't work for MMIO unless you assume that writes to a constant address are valid, but then you need a list of which ones are valid, etc. That's generally a different beast though -- I believe what SAFEcode does is assume that pointer access on explicit constant addresses (eg. "*((char*)(0x1007)) |= 0x2;") are valid, but a computed addresses should point to an allocated space (or a global, which includes functions).

    4. Re:LLVM Question... by FrangoAssado · · Score: 1

      OK, thanks, I see the feasibility of this scheme.

      But doesn't this mean that you also must pass the start and end of the allocated region together every time you pass a pointer to a function? If that's acceptable for your project, maybe you don't really need C after all... (at least from my admittedly limited experience).

      The constant addressing limitation is also really... eh, limiting. Embedded code usually do things like this (based on code for a game console):

      volatile unsigned short *base = (frame == 0) ? FRAME0_BASE : FRAME1_BASE;
      render_scene(base);

      Granted, a game console is not the place to use such compiler, but don't most embedded programming involve things like this?

      Anyway, that's a cool idea, but I think I see why it's not more widely used...

  17. Re:Apparently not... by setagllib · · Score: 1

    It's an initialism, not an acronym.

    --
    Sam ty sig.
  18. Re:Apparently not... by LighterShadeOfBlack · · Score: 1

    What, you mean you don't pronounce it lulivim?

    Yeah I know, but try finding the <initialism> tag in the HTML specs and you could be a while. I guess technically it should use the <abbr> element, but I'm still used to using <acronym>, largely because IE didn't support <abbr> until IE7.

    Regardless of which tag they use, anything would be better than having to look up this stuff manually.

    --
    Spelling mistakes, grammatical errors, and stupid comments are intentional.
  19. LLVM isn't the only such beastie. by jd · · Score: 1

    Gelato uses OpenIMPACT to do the same thing. From what I understand, OpenIMPACT works on both 32-bit and 64-bit code, with most of the development going into the 64-bit stuff and with most of the interest from the HPC and supercomputer groups (which is where I've most often seen the Gelato distro). Both are source-to-source "compilers" (well, since it's source-to-source, I'd look at them more as a pre-compiler). Not sure how well they do at optimizing between source files. I'm also suspicious of linking (function calls are expensive and - by definition - that's what libraries do). Not sure what you can do about optimizing system calls, which are really expensive. A batch system call would offer all kinds of possibilities for security holes.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  20. Why LLVM is a better platform for optimization by Anonymous Coward · · Score: 0

    LLVM is written in C++, as opposed to C for GCC.

    This difference may seem trivial or unimportant, but writing any complicated transformation can be done in just a fraction of the number lines of code. Fewer lines of code equates to easier to improved code readability, and ultimately - greater reliability.