Slashdot Mirror


Intel Ports Developer Tools to Mac OS X

turnitover writes "According to eWEEK, "Intel Corp. will port its software developer tools to Mac OS X and will ship its first beta later this year, the chip maker told developers on Tuesday at its first-ever session on Mac OS X at the Intel Developer Forum in San Francisco." This, as Apple is working on its first Intel-based Macs, due sometime in 2006. Will the promise of the same feature set and the same tools (for Windows, Mac and Linux) mean the future of cross-platform development is here?"

37 of 259 comments (clear)

  1. the promise? by mov_eax_eax · · Score: 4, Insightful

    Will the promise of the same feature set and the same tools (for Windows, Mac and Linux) mean the future of cross-platform development is here?
    the present of cross plataform is already here, it's called GCC.

    1. Re:the promise? by foo(foo(foo(bar))) · · Score: 4, Funny

      funny.... I thought it was called Java

    2. Re:the promise? by McGiraf · · Score: 5, Funny

      Assembler?

    3. Re:the promise? by ZG-Rules · · Score: 3, Interesting

      I'm not knocking GCC, it's great - but ICC creates the fastest code for Intel processors and probably the fastest code for AMD processors too. I expect a barrage of flames for saying this, but there's loads of evidence out there for it.

      Imagine an x86 Mac and a PPC64 Mac (G5) of equivalent specs, running OSX of the right flavour, both compiled with GCC. You'd expect them to both perform the same right? Now take your x86 OSX and recompile it with ICC and you get an immediate speed improvement... wouldn't you?

      Just because Apple support GCC (and will continue doing so unless ICC for OSX suddenly becomes free or they start charging for XCode) doesn't mean they shouldn't compile their entire O/S with ICC to take advantage of the speed.

    4. Re:the promise? by Anonymous Coward · · Score: 5, Insightful

      This here is a great example of why there's no need to be so mean to people. FLAGGR comes off looking like a huge jerk simply because he wanted to be mean to mov_eax_eax. Even if mov_eax_eax had been wrong, correcting him politely would have been much nicer than the venomous reply that was actually posted.

      No one is going to think you're cool just because you're mean to someone. You'll get more respect if you reply in a nicer fashion; and who knows, maybe the politeness will come back to you in the future.

    5. Re:the promise? by Guy+Harris · · Score: 4, Insightful
      Just because Apple support GCC (and will continue doing so unless ICC for OSX suddenly becomes free or they start charging for XCode) doesn't mean they shouldn't compile their entire O/S with ICC to take advantage of the speed.

      If, however, the article is correct when it says that "The Intel tools ... will not provide a compiler for Objective C", that means that they couldn't compile the entire OS with ICC.

    6. Re:the promise? by Anonymous Coward · · Score: 3, Informative

      Actually, ICC isn't really that much faster than GCC for most software. It only makes a significant difference for code that's inherently vectorizable, can make good use of SSE/SSE2 (and SSE3 if you enable it), and where that code is actually running for a significant portion of the time.

      In other words - the math-heavy parts of games, scientific applications, and media encoders / decoders.

      For just about everything else, ICC's advantages vanish. ICC basically speeds up the bits that the P4 architecture is already good at, but only on the P4s. On AMD systems, ICC is insignificantly faster.

      Don't get me wrong - ICC is a good compiler, which generates extremely good code for a particular architecture. It's just not orders of magnitude better than other compilers.

    7. Re:the promise? by TheRaven64 · · Score: 4, Interesting

      Objective-C is really just a thin wrapper around C. All of the runtimes methods are exposed as C functions (take a look in /usr/include/objc/ - you can do some quite shiny things calling the runtime methods from your code). In early implementations, a very simple pre-processor translated Objective-C into C and then compiled the C. It is possible that Apple could return to this route - I don't know how much optimisation is done at the Objective-C level that is not done at the C level, but I suspect it is not a huge amount.

      --
      I am TheRaven on Soylent News
  2. Intel Ports Developer Tools to OS X by Dorsai42 · · Score: 5, Funny

    Wow, who'd have expected something like this?

    --
    If you forget about the future, the future will forget about you.
  3. What is old is new again by jockm · · Score: 5, Informative

    This was a part of NextStep/OpenStep from way back. The application could have multiple binaries. So it would not be common to see a single app bundle that would run on OpenStep 68K, OpenStep x86, and OpenStep for Win32. Even the original Rhapsody was going to be like this supporting Rhapsody PPC, Rhapsody x86, Rhapsody on Win32.

    --

    What do you know I wrote a novel
    1. Re:What is old is new again by _|()|\| · · Score: 3, Informative
      Maybe Jobs doesn't like his apps being called fat?

      OS X 10.4 uses fat binaries. For example, Apple recently botched a security update by failing to ship a fat binary for the BSD layer. This is what it's supposed to look like:

      $ file /usr/lib/libSystem.B.dylib
      /usr/lib/libSystem.B.dylib: Mach-O fat file with 2 architectures
      /usr/lib/libSystem.B.dylib (for architecture ppc): Mach-O dynamically linked shared library ppc
      /usr/lib/libSystem.B.dylib (for architecture ppc64): Mach-O 64-bit dynamically linked shared library ppc64
      Apple's GCC has built-in support for fat binaries:
      $ gcc -o hello hello.m -arch ppc -arch ppc64
      $ file hello
      hello: Mach-O fat file with 2 architectures
      hello (for architecture ppc): Mach-O executable ppc
      hello (for architecture ppc64): Mach-O 64-bit executable ppc64
      If I had the right SDK installed, I could have added -arch i386. Building fat binaries with GCC and ICC will probably require the use of lipo(1).
  4. Re:WTF????? by larry+bagina · · Score: 5, Informative
    No, intel is porting their x86 compilers to run under MacOS/intel. The same compilers that already run under windows and linux.

    Apple will still be using GCC.

    --
    Do you even lift?

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

  5. ho hum? by Anonymous Coward · · Score: 5, Insightful

    So it doesn't compile ObjC-Cocoa apps.... And Apple is abandoning the Classic environment available on the x86 platform...

    And there's no IOKit....

    So what's this going to compile? Core Foundation apps and Carbon apps without any vector code?

    Ummmm. Well, it's a start.

    1. Re:ho hum? by larry+bagina · · Score: 5, Funny

      It also includes a Fortran compiler.

      --
      Do you even lift?

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

    2. Re:ho hum? by javaxman · · Score: 3, Insightful
      So what's this going to compile? Core Foundation apps and Carbon apps without any vector code?

      Just a wild guess, but what is most of the Darwin codebase ? Oh...

  6. Crossplatform? by klingens · · Score: 5, Insightful

    Yes it's crossplatform alright if the compiler in question works for x86, x86 and you guessed it: x86.

    What's making the porting hard in case of different software ecologies is not the compiler, cause gcc is really crossplatform and ubiquitous for years now. It's all those OS and otherwise libraries (gtk vs. cocoa vs. GDI) which do it. And I don't see Intel selling any crossplatform versions of those

  7. The future is sort of here... by wealthychef · · Score: 4, Insightful
    Will the promise of the same feature set and the same tools (for Windows, Mac and Linux) mean the future of cross-platform development is here?"

    Yes, if you define "cross platform" as being restricted to Windows, Mac and Linux. Also, this does not include PPC, which is another platform that Mac runs on. I am not optimistic that this is any sort of harbinger of great things, but it will be very nice to have three platforms that share the *same* hardware architecture, roughtly speaking.

    --
    Currently hooked on AMP
  8. before anyone says it by ArbitraryConstant · · Score: 5, Informative

    Before anyone says it, this won't replace GCC on XCode. Intel's compiler is expensive and is not 100% compatible with GCC. It also doesn't support PowerPC so as long as they're supporting both architechtures they can't use ICC exclusively.

    It'll be an option for people that need better performance on x86. Any collaboration is so that ICC can be hooked into XCode in an easy to use way.

    --
    I rarely criticize things I don't care about.
  9. A Big Deal by Nom+du+Keyboard · · Score: 4, Interesting
    Intel sure keeps making a big deal of this Apple deal. Considering that 90%+ of their processors will still go into Windows-based systems that won't run OS-X (not, at least, if Apple can prevent it), and the first Apple+Intel systems are still a year away if not more, there sure seems to be a lot of Intel/Apple news press releases.

    Is Intel trying to make us forget about all those IBM-powered XBox 360, PS3, and Revolution systems to come?

    --
    "It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
    1. Re:A Big Deal by Darth · · Score: 5, Insightful

      Now that all the major options for desktop systems run on intel, they want to see os competition. Erosion of Microsoft's desktop monopoly by Apple no longer equates to loss of market share for intel. Now they'd like to see Microsoft's influence reduced and be the only 800 lb. gorilla in the x86 world.

      I dont think they are focused on IBM powered consoles as much as they are focused on being the last monopoly standing in the desktop market....or at least making sure that if AMD takes them down in court, nobody else is standing either.

      --
      Darth --
      Nil Mortifi, Sine Lucre
    2. Re:A Big Deal by harlows_monkeys · · Score: 5, Insightful
      Intel has been trying for years to advance the PC, but they keep getting held back by the mass-market nature of the platform. People would rather have older technology very cheaply than better technology that costs more.

      With Apple, they've finally got a company that doesn't care about all that legacy PC crap. Apple will build the x86 machines that Intel has always wanted.

      That's why Intel considers this to be such a big deal.

  10. Cross-Platform Development by linguae · · Score: 4, Insightful
    Will the promise of the same feature set and the same tools (for Windows, Mac and Linux) mean the future of cross-platform development is here?"

    Because all mainstream personal computers will use the same x86 processor in the next two years, certain programmers who deal with assembly issues will be relieved. However, we still have Carbon/Cocoa, Win32, and GTK/QT/POSIX to deal with.

    And we currently have cross-platform tools. It's called the GNU toolkit (autoconf, gcc, gdb, gmake, and a few other handy applications that are used on just about every platform availiable).

  11. Re:WTF????? by A.K.A_Magnet · · Score: 5, Insightful

    Apple is switching from gcc to intel's compiler? What the hell is going on here, all of a sudden apple is becomeing less OSS friendly...

    IBM compilers (xl* compilers) were proprietary software and still were ported to OS X too, and AFAIK had better performances than gcc on PPC970 (even though Apple did help on optimizing gcc on G4/G5), just like ICC is better than gcc on x86 for most purposes (check benchmarks for yourselves).

    No I'm not an Apple fanboy (please! I don't have any Apples nor plan to buy any) and I don't care much about Intel either. I'm more a free software guy trying to run only free software as far as I can for different reasons... And still I don't see how Apple could be less OSS friendly just because some other company (may it be Intel or not) releases closed softwares.

    Where does it say Apple will stop using gcc themselves (and distributing it with OSX)? gcc runs on plenty of hardware and os'es ... ICC only runs on x86. OS X had its native "made by processor designers' home company(tm)" compiler when it was (and still is) on PowerPC, now that Apple's going to Intel, it just seems logical that Intel does this. At least to show a little support to Apple.

    However, I'm not saying Apple is supporting "open source" software. I'd say that they're using FOSS smartly for now, but I don't see them in the OSS camp.

    Lastly, ICC having better results than gcc gives the gcc team a great challenge and gcc4 is already a big improvement. ICC on OSX gives more choices to OSX developpers who would need good optimization for intensive arithmetic operations (where ICC shines). Anyway, gcc has strictly nothing to fear from icc, they're aimed at totally different "markets", and gcc is free, so what's to fear? :)

  12. Short answer? No by Sycraft-fu · · Score: 5, Informative

    Longer answer: No, because Intel's tools aren't what people develop with. They make use of Intel's compiler to generate better binaries, but the development is done in Visual Studio (ICC plugs right in).

    You still find that by and large Windows apps are developed in Visual Studio because, despite what you may have heard, it's a really, really slick IDE, many programmers claim it's the best ever. Also, since it's from Microsoft, it supports all the Windows stuff (like DirectX) very well.

    So the Intel tools peing ported to OS-X make no difference at all. Cross platform will be no easier or harder for it, it'll just mean faster apps on the Mac.

    1. Re:Short answer? No by Slack3r78 · · Score: 4, Interesting

      However, what it does mean is that ICC will also plug into X-Code, meaning binaries for Mactel machines will be *fast*. While I don't care for many of Intel's products, their compilers are superb (so long as you're using an Intel chip).

      One of the great farces of the PPC Macs, in my mind, was the weight Mac users put into Altivec. Yes, it's a solid vector process, but, as I understand it, GCC doesn't vectorize for Altivec -- meaning, quite simply, that Altivec optimizations had to be done by hand. On the other hand, ICC is generally lauded for its ability to vectorize code in a manner that lends to performance increases thanks to the SSE/2/3 vector units on Pentium chips.

      There've already been a lot of reports that OS X on x86 is faster than on PPC, the availability of Intel compilers for the platform will only make that difference more dramatic.

    2. Re:Short answer? No by mattjb0010 · · Score: 3, Informative

      GCC doesn't vectorize for Altivec

      This used to be true, and as you point out this did create a fallacy that all Mac apps are magically faster because the chip has AltiVec. However this changed with the latest version of XCode and gcc 4.0, see here. This also applies to gcc4.0 on x86 with SSEn.

  13. Re:Foul! by oscast · · Score: 4, Insightful

    >"When Apple tried to "prove" that the G5 was "better" than the Intel, it purposely didn't use the Intel tools, but used the GNU tools instead."

    Yes, that was to level the playing field... not to show which one was faster... because Apple could have used their own compiler and got faster results too... but the goal was to see which was faster... and then the G5 was indeed faster.

    >"Their desire to use the Intel tools now demonstrates that they didn't use the Intel tools in their G5/Intel benchmarks because they knew Intel tools outperform GNU for Intel."

    You're right but then, they never said otherwise. You, like so many others equated the use of GNU rather than Intels compiler as a means of skewing the results when it was about creating a level playing field.

  14. No by harlows_monkeys · · Score: 5, Informative
    Will the promise of the same feature set and the same tools (for Windows, Mac and Linux) mean the future of cross-platform development is here?

    No. If you write a Mac app using Cocoa, it's only going to run on OS X, regardless of what compiler and other tools you use to build it. If you write a Windows app using the Win32 API, it's only going to run on Windows, regardless of what compiler and other tools you use. Same with Linux.

    Conversely, if you write a portable app (or, more realistically, a portable library to use in your non-portable apps), then it will be easy to make it work on different compilers and with different tools on the various platforms, so having the Intel tools everywhere doesn't help that much.

    Heck, gcc is widely used now on OS X and Linux, and is readily available for Windows, yet you don't see a great flood of cross-platform development. The Intel tools won't change that.

  15. Re:Foul! by harlows_monkeys · · Score: 4, Informative
    Yes, that was to level the playing field... not to show which one was faster... because Apple could have used their own compiler and got faster results too... but the goal was to see which was faster... and then the G5 was indeed faster.

    Using gcc on x86 and G5 doesn't in any way whatsoever "level the playing field", since they are NOT the same compiler. The only way to level the playing field is to use the best compiler available for each processor, so that the comparison is indeed comparing the best performance that is available on each.

  16. AltiVec ona a x86 compiler? by Squashee · · Score: 3, Insightful

    Can someone please shead some light over the AltiVec part ocf the article?

    Why would Intel even consider supporting AltiVec in a compiler for x86? This just sounds bizarr, considering altivec only exists in the PPC world...

    Maby they really mean compiler-level conversion of AltiVec calls to SSE calls?

    --
    When in doubt, act determined. Business 101
    1. Re:AltiVec ona a x86 compiler? by Matthias+Wiesmann · · Score: 4, Interesting
      The trick is that nobody programs in Altivec assembly. Altivec programming was done using intrinsic C functions that would map directly on the right Altivec instruction. Usually the c-functions had the same name as the opcodes. There is a special keyword "vector" to identify vector data.

      If intel's compiler supports in some way those intrinsic functions (A large part might be doable as macros) and maps them to the relevant SSE instructions then Altivec optimized programs would a) still compile b) use the already vectorized code to generate vector assembly. I is beyond me how easily you can map one vector instruction set on the other. There certainly won't be a 1 to 1 mapping.

  17. Cross-platform development started in 1996 by teutonic_leech · · Score: 3, Informative

    Remember - a little-known language called 'Java'? ;-)

  18. So PPC machines get left behind by SiliconTrip · · Score: 3, Interesting

    The article states that this compiler WILL NOT produce ppc binaries.

    So does this mean that developers who use this compiler will be producing x86 only binaries and ignoring all the existing Mac PPC hardware?

    --
    Not happy Jan.

  19. Re:MOD PARENT UP! by dgatwood · · Score: 5, Informative
    First of all, since Xcode is free and ICC isn't, it's probably safe to assume that this Xcode enhancement would be available from Intel, not Apple, hence replace gcc, it presumably would not.

    Second, I think Xcode just gets its compiler list from reading a series of compiler definition files. As long as you build the definition file correctly, it would just be another compiler you can select from the pop-up list in the target inspector, IIRC. Xcode has supported gcc 2.95/3.0/3.3/4.0 for a while now, so this really isn't anything different from that perspective beyond its name not starting with 'g'.... :-)

    Finally, with respect to the question of it only being useful for people who aren't trying to do PowerPC versions of their software, that's not entirely true. A universal binary is just a couple of ordinary binaries glued together with lipo(1). Build the PowerPC side with gcc (or xlc) and the x86 side with the ICC compiler, glue them together, and you're done. In fact, that's exactly how universal binary builds work when gcc is used by itself....

    --

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

  20. Can't wait by wandazulu · · Score: 3, Interesting

    Just like on the G5, I have some apps that have a cocoa/obj-c front end to a pure 64 bit c++-based set of libraries written using xlC for performance reasons. I'll be happy to do the same thing on an Intel-based mac when it becomes generally available (and assuming that it'll also support 64-bit addressing).

    Frankly, I don't see the need for Intel to worry about obj-c much...I would think the gains are not really worth it...if you're doing something graphically intense, then you're presumably going to target the gpu, and if it's mathmatically intense, you'd probably want straight C or C++ with templates.

    Hell, if I thought it'd be even faster (and I knew how to program in it), I'd write my libraries in Fortran.

  21. This is terrible by iopred · · Score: 3, Insightful

    Please RTFA, noone said they would use ICC on PPC, its just stating that ICC will be able to produce binaries for OSX. Heck, if this article didnt exist, I would be upset. Damned if I would use GCC over ICC, ESPECIALLY, if I was positive the only chip the binary would be used on is an Intel chip. ICC may not be the best for Windows Development seeing as the large numbers of AMD processors are abound, but this makes perfect sense for OSX.

  22. Re:MOD PARENT UP! by Halo1 · · Score: 3, Interesting
    Xcode has supported gcc 2.95/3.0/3.3/4.0 for a while now, so this really isn't anything different from that perspective beyond its name not starting with 'g'.... :-)
    Unfortunately, that's not true. Several people have already tried to add support for other compilers to Xcode and apart from using script build phases, there doesn't seem to be a solution currently. If you start editing Xcode's gcc description files to change them for working with another compiler (i.e., to expose the command line options via the GUI), you only get Xcode crashes.

    Of course, Apple could modify Xcode and add support for ICC, but it's not just a matter of editing some file... Integration in Xcode of compilers other than what Apple supports out-of-the-box is currently a nightmare.

    --
    Donate free food here