Xcode 2.3 is now available.

Xcode 2.3 is now available.

Beyond fixing a boatload of bugs and numerous performance improvements, Xcode 2.3 adds DWARF as a native symbol format. DWARF yields a significantly higher fidelity debugging experience, especially for complex C++ code, while also reducing the memory requirements of the linker.

Full release notes available on Apple’s developer tools web site.

Xcode 2.3 also includes a new distributed build subsystem called Dedicated Network Builds. The preferences pane is a bit fragile — don’t poke at it too hard — but the underlying technology is some neat stuff.

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.

As one can imagine, there is considerably more to this technology than is described above.



6 Responses to “Xcode 2.3 is now available.”

  1. Xcode 2.3 at fusion94.org says:

    […] Bill Bumgarner describes it as such: The key here is the new distributed build subsystem called Dedicated Network Builds. […]

  2. Daniel J. Luke says:

    I know you probably can’t do anything about it, but it would be nice if Apple provided a torrent, it’s looking like it will take over 2 hours for me to get the download (and I’m no where near maxing my connection). It would also be nice if it didn’t require an ADC login to download, as it makes it slightly more annoying to install on remote machines, but that’s really a minor issue (and something I doubt will change).

  3. Allan says:

    915 megs! Haven’t you guys ever heard of, you know, patches?
    </grumble>

  4. Nate says:

    Personally – I will take full installs and larger downloads over patches that may or may not work completely correct – any day of the week. This is software development tools we are talking about. We don’t need more bugs or glitches.

    Of course I only install the combo Mac OS X Updates also, so it might just be me..

    With that said, it would be nice if the built in software update handled development tools, and documentation updates.

  5. robert says:

    I’m not sure the built-in software update mechanism could handle the dev tools update as the most efficient and secure way to install a new version of the tools is to run the uninstall perl script. This avoids all the bugs and glitches you are talking about and which are reported from times to times on the xcode mailing list.

    What could be interesting from Apple would be to provide more detailed update information without having to install the new version.

  6. Alex says:

    Somehow this changed the behavior of Build&Run for WO projects. Had to turn of continue after error (which used to have to be on to continue after the first error) as it now runs the executable even if an error happens during a build. Why would there ever be a switch that would enable running a previous executable after this build failed?

Leave a Reply

Line and paragraph breaks automatic.
XHTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>