Post a Comment
Hate to pee in your wheaties but OS X is built using Xcode. Openstep and NeXTSTEP used Project Builder to build the operating system.
The internal build system for an Operating System being different than an application, one does take into account the tools to build the kernel so on and so forth that are not actually part of Xcode but are custom to Apple, as par for the course.
However, if you think Final Cut Pro or any Apple Development or App specific application to be small then I'd love to see your project.
"Hate to pee in your wheaties but OS X is built using Xcode. Openstep and NeXTSTEP used Project Builder to build the operating system. "
Does XCode function without a GUI? If not, and OSX is built on it, where does the GUI come from?
OSX may be made on gcc, but I'm struggling to see how OSX could be built with a tool that requires OSX to run.
[rolls eyes]
How does a compiler work without a host operating system? how does a compiler compile itself?
Good lord, and as for the complaining; does anyone here actually spend the time and update their software? XCode 2.2 is released - along with the updates, GCC 4.0.1 corrects some file bloat which someone here is complaining about.
So before whinge, whine, complain and belly ache; spend a wee bit of time researching whether it has already been corrected via patch or update, becuse shock horror, some companies actually do that! support their own products! :-)
How does a compiler work without a host operating system? how does a compiler compile itself?
I'm not sure exactly what people are debating. There is, indeed, a chicken-and-egg problem, but precisely determining what is possible really needs to be done in light of the evolutionary nature of software.
In theory, an early, not-publicly-released version of XCode could have been written to run on MacOS 9 and used to develop OSX. Newer versions of OSX and XCode could then be developed on older versions of OSX and XCode.
After all, neither the chicken nor the egg just magically came into existence; they each evolved from previous versions of each other. But I have no idea what the real story is behind the development of OSX and XCode.
Edited 2005-11-30 17:04
"After all, neither the chicken nor the egg just magically came into existence; they each evolved from previous versions of each other."
Sure... this my comment is VERY off-topic but I feel it important to say that your comment is a very darwinistic way of thinking.
I find it interesting that so few are willing to consider the possibility that either the chicken or egg were first created... rather than they being evolved from a lesser being like you suggested.
Creationist theory can be approached just as scientifically as a darwinistic theory. It all boils down to there having to be something that created the objects which set this process into motion. If you accept the notion that the matter simply always was... then you can't negate the possibility of a being that always was that created these things.
But I digress...
ok, back to your OS discussion.
Edited 2005-11-30 18:07
Actually, the only reason I used the chicken-and-egg analogy was because I thought people would be able to understand what I was talking about.
My analogy is flawed. Inanimate objects and ideas do not "evolve"; they are the result of intelligent (or sometimes not-so-intelligent) design by beings with vastly superior reasoning capabilities. In other words, if we could let a beta CD of Amiga OS 4.0 sit for hundreds of millions of years and later examine it, we would be very surprised if it evolved into the hypothetical "gold" release version.
Darwinistic theory implies that inanimate matter somehow became intelligent and began improving itself. Add a few parts sophistry, ego, and self-deception; beat vigorously for a few hundred million years; and suddenly you've got geeks with iPods.
Social debates can be spun 'round and 'round endlessly until everyone's too dizzy too think straight. I'm so sick of it all that I don't want to do anything more than work in a few half-hearted digs at the prevailing theories of the day.
I'm in the process of porting a "vertical market" suite of old software from MPW (!) to XCode. I use CodeWarrior as intermediate for this process that roughly consists of ANSI-C-ification, update to Universal Headers 3.3 and finally Carbonizing before the jump to X can be done.
The switch to Xcode is indeed the easiest part of the work, but I noticed the following:
- Importing does NOT (*) work with the old versions (Pro 5) of Codewarrior that we have. Pro 5.3 is a special version, because it is the latest that can still generate 68K code. Believe it or not, there are still a few 68K machines out there I possibly might have to support. For import to work, you probably want CW Pro 9. The new 10 is newer than the documents, so something might be b0rked. (* edited:) Hmm. Maybe because I just did not have Classic on the G5. Anyway.
- Initially, XCode has a steep learning curve with its stacked compilation flag logic. It can be quite overwhelming. Best is to take one of the sample projects and build up from there. I did so, and in the overall scope of the project it took much less time to just drop in my source files than to figure out what flags to set and what to enter in which .plist file.
- XCode is abysmally slow, compared to CW on 9. (CW on X feels sluggish, too, but at least inherits the fast compiler). Regular parallel CW-on-9 and XCode work would require two machines, where one supports 9 and the other is fast enough for XCode (Dual G5 suggested). You might be lucky with a late model MDD G4 or TiPB to do both. You could maybe get along in Classic by building with your old CW while debugging with a special version of CW Pro 8 from Metrowerks.
- Convert to linefeeds!!! I have had cases where XCode would get line numbers wrong, making the debugger useless. You also want LFs for subversion diffs to work.
That said, once you get the hang, and a very fast machine, XCode is quite pretty - and free, of course. The early versions were a bit flakey, but with 2.1+ it has gained a good amount of solidity, too (if only it was faster than with a snail interpreting java on a slide rule VM).
Rich
Edited 2005-11-30 10:21
> Hmmm, Codewarrior 6 Pro does 68000 dev for me. CW 9 doesn't, but then its running under MacOS X anyway.
Yes. You're right. It was the Pascal compiler that disappeared after 5. I mixed that up. Eventually 68K did go though. (I wonder now, and this actually keeps me on topic, whether it would be feasible to do a GCC-68K build of an XCode project, or at least XCode-compliant source)
> The 68000 compiler never went off the radar also, because they used it in the PalmOS version of CW.
Did you know you could run 5.x for Mac, plus a (then?) free dev pack for PalmOS? As a special bonus this package would build Mac-native Palm API apps...
I am dealing with a project with millions lines of code, and i have a very good experience with Xcode. Its fast, very stable, and yes we made the transition from CodeWarrior to Xcode a few months ago, and its was very smooth. Xcode offer a large set of features that help a lot, i give credit to that. Its not a one minute task, sure, but thats not a headache with a clean project. Xcode has grown very well since the first version, it got fast (for example code completion is largely improved in 2.1), stable and very rich featured. The last version 2.1 offers a lot of new improvements and features. Some are aimed to catch up and go beyond some CodeWarrior features (breakpoints actions, conditions and watchpoints, integrated unit testing), some are Xcode only. The new build configurations (a matrix of settings) are very powerful and really simplify the setting of different values for multiple projects or targets independently or accross the sames ones and are very powerful for managing dependencies accross multiple targets. I find it very powerful for very large projects. And a so powerful development environment for free, i can not ask more!!!!
Its like that everything that Apple is saying is marketing, come one, ......you better read the document and stop trolling!!!!
Its fast, very stable, and yes we made the transition from CodeWarrior to Xcode a few months ago, and its was very smooth.
I envy you.
you better read the document and stop trolling!!!!
I wish I were a troll. If I made this up, then Xcode would not abort importing CodeWarrior projects with errors like this:
2005-11-30 10:28:01.885 Xcode[414] CodeWarrior XML export file not generated for the following reason: {
NSAppleScriptErrorBriefMessage = "Can't make U00abclass ctnrU00bb of alias "stew:dev:BuildAllMac (CW8)ForXcodeExport.mcp" into type alias.";
NSAppleScriptErrorMessage = "Can't make U00abclass ctnrU00bb of alias "stew:dev:wxWindows21:BuildAllMac (CW8)ForXcodeExport.mcp" into type alias.";
NSAppleScriptErrorNumber = -1700;
NSAppleScriptErrorRange = <00000000 00000000 >;
}
If I were making this up, Xcode would resolve three-level dependancies correctly and relink my app.
If I were making this up, I wouldn't have to wait a minute for Xcode to fully load and parse a preprocessed source file.
If I were making this up, Xcode wouldn't produce a 450MB binary (debug build) or take twenty minutes to link (release build with dead code stripping).
Reading that document gave me nothing I didn't learn the hard way a year ago. Boy I wish I were a troll and Xcode was as good as Apple wants me to think it is. Then my life would be a lot easier.
It's easier than you may think, and this article gets you started.
Of course there is going to be a dedicated team at Redmond trying to figure out how to screw this up.
Present MS Mac apps are built on CW, I wouldn't trust their first X-Code offerings.
Neither would I trust Adobe's firsts either, but at least they have a friend in Apple to get over the bumps.
I think Apple is doing a rather fine job of supporting the developer's transition over to the Mactels. No other company would be able to offer an importer, and "universal binaries" so easily. Do you think Linux or Microsoft could EVER do something like this?
By the time Leopard comes around, the one single OS install disc will boot & install on both PPC and Intel machines. Amazing.
I'm glad you at least acknowledge that Darwinism is a theory.. in that it is backed up by evidence and based on known facts. I assume you use the word "sophistry" in its lesser-understood meaning, being that people dare to demand their knowledge be backed up by observation rather than extrapolated from a 2000-yr old folk-myth.




