Apple has released a new version of Xcode. From the release notes:"> Apple has released a new version of Xcode. From the release notes: "> Apple has released a new version of Xcode. From the release notes: " />
23 May 2006
This article will take 1 minute to read
Xcode 2.3 is the latest release of Apple Computer’s integrated development environment for Mac OS X. This release adresses many known issues and is a recommended upgrade for all Xcode users of versions 2.2.1 or earlier.
Changes to Xcode 2.3
* New DWARF debugging format for improved debugging fidelity and efficient utilization of disk space * New Distributed Network Build (DNB) scalable build architecture * Numerous enhancements and bug fixes</blockquote>
Bill Bumgarner describes it as such:
The key here is the new distributed build subsystem called Dedicated Network Builds.
While DistCC remains as the solution of choice for ad-hoc builds on small networks, Dedicated Network Builds [DNB] focuses on accelerating large projects where a farm of machines can be dedicated as builders. In particular, DNB shines with large C++ projects.
Behind the scenes, DNB distributes compilation jobs from your local machine — the recruiter — to the builder machines — the volunteers — using a set of daemons to connect everything together. On the recruiter, a daemon monitors the filesystem to ensure that changes made to the filesystem will cause the remote volunteer caches to be invalidated in an appropriately minimalist fashion.
The volunteers execute the jobs against a mirrored copy of the recruiter’s local filesystem, source, headers, compiler and all. As such, the only dependency between your local machine and the builders is that they are both the same architecture (ppc or i386) and they are running very close to the same version of Mac OS X (i.e. 10.4.5 will be compatible with 10.4.6, but not 10.3.9).
A great deal of effort went into ensuring that cache management wouldn’t swamp the recruiter’s network connection. There is still a hefty cache warmup hit, but the volunteers have the ability to resolve cache misses amongst themselves as well as resolving cache misses against their own local filesystem, when possible.