What’s New in the December 2002 Developer Tools Release Introduction

The Developer Tools CD includes everything you need to begin developing applications for Mac OS X, including tools, documentation, and software. For the latest information and updates to Mac OS X development tools, documentation, code samples, and technical notes, please visit http://developer.apple.com/macosx. We encourage developers to join the Apple Developer Connection, which provides the most convenient access to Mac OS X development resources, including technical support and prerelease software. For information, visit http://www.apple.com/developer.

Compatibility and Installation
Important! Please read the compatibility notes and installation instructions in the “About Developer Tools” document.

What's New
This section describes major changes in the December 2002 Developer Tools, compared with the July 2002 release. Minor changes were also made in several components other than those listed below. After installation, release notes containing detailed information on the changes can be found in /Developer/Documentation/ReleaseNotes, and they can be accessed from the Help menu within Project Builder. • Project Builder 2.1 has some significant new features: Support for external editors: • You can use arbitrary editors for different file types. • Project Builder will show you build errors in your external editor when you use BBEdit or emacs. Build system features: • Project Builder will now do multiple compiles at the same time on machines with more than one processor. • Project Builder’s header dependency analysis is improved. • Project Builder now links executables in a more optimal manner. • You can now set compile flags on a per-file basis. • Assembler flags are now separate from flags to the compiler.

-

-

Interface to customize key bindings. Better CVS integration. The CodeWarrior project importer has been vastly improved. Miscellaneous interface improvements: • You can now sort files, targets, and build phase objects in a project. • You can display line numbers on the same line as your source. • The breakpoint gutter has been improved. JavaDoc documentation is now indexed so that it can be used with Project Builder’s integrated documentation. Improved text encoding support. There is support for dynamic C++ types in the debugger.

-

Please read the release notes from Project Builder’s Help ‡ Show Release Notes menu item for more details. • gcc3.1 has several bug fixes. In addition: - an optimization has been made to speed up searching for header files. If your command lines have a lot of –I directives to add directories to the compiler’s search path, this optimization should help your compile time. - The HTML documentation for the compiler is missing from the release. You can find it on the web at: http://developer.apple.com/techpubs/macosx/DeveloperTools/gcc3/gcc/index.html http://developer.apple.com/techpubs/macosx/DeveloperTools/gcc3/cpp/index.html • AppleScript Studio 1.2.1 adds enhanced dictionary support. The sample projects will now run on both Mac OS X 10.1 systems as well as Mac OS X 10.2. Please read the AppleScript Studio release notes for more information. • CHUD 2.5.1 is now on the CD. CHUD is a set of tools for low-level system debugging and profiling. To install, open the disk image, and follow the instructions. • AppleScript Editor 2.0 Beta is now available in the Pre-release Software folder. Please read the “About These Packages.rtf” file in the Pre-release Software folder for more details. Note that this package requires Mac OS X 10.2.3 or higher. • The jikes Java compiler has been updated to version 1.17. • PackageMaker has some new features: Drag-and-drop functionality in the list editor.

-

Inline attribute editing. Progress sheet for status during package creation. Package completion dialog.

• Sherlock SDK – There is now an SDK available to develop your own Sherlock channels. See /Developer/Examples/Sherlock for sample channels and the online documentation for more information. • DiscRecording SDK – There are now sample projects demonstrating the DiscRecording framework. Please see /Developer/Examples/DiscRecording/About Disc Recording Examples.rtf for more information. • CoreAudio SDK – There are more examples in /Developer/Examples/CoreAudio. Please see /Developer/Examples/CoreAudio/ReadMe.rtf for more information. • FireWire SDK – There is now a complete SDK for developing for FireWire devices. Please see /Developer/Examples/IOKit/firewire for the samples. • ForceFeedback SDK – The header files necessary to take advantage of Mac OS X 10.2.3’s ForceFeedback framework have been added. • AvailabilityMacros – You can now control which OS version you want to target your application for using the AvailabilityMacros. Please see /Developer/Documentation/ReleaseNotes/AvailabilityMacros.h for more details. • New and updated documentation. Lots of new documentation content is included in this release. Please check the various “what’s new” portions of the documentation for more information.

What Was New in the July 2002 Developer Tools Release
The July 2002 Developer Tools should be used only when running Mac OS X version 10.2. For development on Mac OS X 10.1, use the April 2002 Developer Tools or an earlier release. This section describes major changes in the July 2002 Developer Tools, compared with the April 2002 release. Features which were included in Beta form in the April 2002 release are now final in this release. Minor changes were also made in some other components. After installation, various release notes can be found in /Developer/Documentation/ReleaseNotes, which can be accessed from the release notes shown within Project Builder.

• The gcc 3.1 compiler is now the default compiler on the system. It can be used with C, C++, Objective-C, and Objective-C++ source code. Projects that do not explicitly set a compiler will now use gcc 3.1. We recommend that all projects start using gcc 3.1 unless there are overriding reasons not to. Essentially the entire Mac OS X version 10.2 release has been compiled with gcc 3.1. gcc 3.1 offers the following benefits over gcc 2.95: Faster compilation times due to a new precompiled header mechanism. Now C++ code can take advantage of precompiled headers as well. Please refer to the GCC3 release note for more information. Significantly better code optimization and generation. If you avoided turning on optimization in the past, now would be a good time to try it again. Better C++ support. In addition to supporting precompiled headers for C++, gcc 3 contains the following improvements: • A more stable and efficient application binary interface (ABI). • A new C++ standard library, including better support for the Standard Template Library. • Better compliance with the ISO C99 and ISO ANSI C++ specifications.

-

The new gcc3 C++ ABI requires recompiling all C++ libraries and frameworks. You may need to stay with the older gcc 2.95 compiler if you are building Kernel Extensions or IOKit Drivers that must also run on Mac OS X version 10.1, or if you are linking with third-party C++ libraries for which you do not have source code. If you need to switch back to gcc 2.95, please read the GCC3 release notes for information on how to do that using the gcc_select command or within Project Builder for a specific project. • Project Builder 2.0.1 has some significant new features, in additional to the final version of the highly configurable multiple window user interface. Please read the release notes from Project Builder’s Help ‡ Show Release Notes menu item for more details. Additional new features include: MPW-inspired scripting: • Execution of shell script snippets inline in any text buffer within Project Builder. • Customization of Project Builder’s menu bar by adding new menus and menu items that invoke shell scripts when chosen. Build system features:

-

• • • • -

Support for gcc 3.1’s new “Persistent Front End” precompiled header mechanism, so that C++ projects can now also get faster compile times. New target editor user interface. “Install” builds from the IDE using a Build Style. Various other enhancements.

Debugger features: • Formatting of values in variable list. • View Variable in Window. • Watch Expression window. Batch Find now supports full-text documentation content searches with relevancyranked search results.

-

• Interface Builder 2.3 now supports the new Metal look, and includes other enhancements for Cocoa and Carbon user interface features. Please read the Release Notes included in Interface Builder for full details. • AppleScript Studio 1.2 adds new functionality, including support for document-based applications, pasteboard support, drag and drop, and various other enhancements. Many of the sample applications have been enhanced to take advantage of these new features. Please read the AppleScript Studio release notes for more information. • New and updated documentation. Lots of new documentation content is included in this release. Please check the various “what’s new” portions of the documentation for more information. Documentation changes include the following: Updated System Overview book. Aqua Human Interface Guidelines updated for Mac OS X 10.2. Updated Cocoa and Carbon documentation Updated Darwin documentation, such as the UNIX Porting Guide. Lots more…

What Was New in the April 2002 Developer Tools
This April 2002 release of the Developer Tools includes the following major additions and updates, compared with the December 2001 release. Minor changes were also made in some other components. After installation, various release notes can be found in /Developer/Documentation/ReleaseNotes, which can be accessed from the release notes shown within Project Builder.

• The gcc 3 compiler is included as pre-release, beta software intended for evaluation purposes. It can be used with C, C++, Objective-C, and Objective-C++ source code. For information on how to switch to gcc 3 for evaluation purposes, please read the GCC3 release notes and the Project Builder release notes. • Project Builder 2.0 Beta has many changes; please read the release notes included in Project Builder for details. The most major changes are: The overall user interface is now highly configurable, in response to user demand. There are three primary default configurations – “Single Window” (the previous UI), “Some Windows”, or “Many Windows”, and you can customize the UI from there if necessary. Support for using the gcc3 compiler. Note that the gcc 2.95.2 compiler is still the default (/usr/bin/cc), but it is easy to switch a project to use gcc, or switch the system default as a whole.

-

• Interface Builder 2.2.1 includes some bug fixes; please read the Release Notes included in Interface Builder for full details. In addition, the Interface Builder examples in /Developer/Examples/InterfaceBuilder/ are updated to use typed outlets where applicable. • AppleScript Studio 1.1 adds new functionality, including new classes (such as user-defaults) and new commands, as well as fixes a number of bugs. In addition, a beta version of revised documentation is included, as well as a preliminary version of a new Inside Mac OS X: AppleScript Studio Terminology Reference manual. NOTE: The AppleScript Studio tutorial application formerly known as “Watson” is now called “Mail Search”, but the documentation has not yet been updated to reflect that. • Changes in the gdb debugger for C-based languages include: Hardware (page-protection) watchpoint support. Significant bug fixes for improved stability, for example when stepping over code that generates signals. Better support for debugging C++ code, particularly for gcc3-compiled code

• Thread Viewer includes several improvements and bug fixes. Backtraces can be copied from Thread Viewer and pasted into bug reports. Thread Viewer has an experimental feature that graphs additional metrics such as the number of calls to lock functions or malloc. • Sampler will display its reports in terms of the number of seconds, percentage of total time, or number of samples where a function was found on the call stack. This version also fixes a bug that appeared after Mac OS X 10.1.2 where launching a CFM binary in Sampler would crash Sampler. Sampler now watches the program with a separate, high-priority thread, so sampling data should be more accurate.

• New and updated documentation. Lots of new documentation content is included in this release. Please check the various “what’s new” portions of the documentation for more information. Documentation changes include the following: Cocoa API reference documentation is now complete! Updated Carbon documentation Updated Darwin documentation MachO Runtime Architecture manual (preliminary draft) Updated Project Builder documentation Beta versions of AppleScript Studio documentation: • Building Applications with AppleScript Studio (updated) • AppleScript Studio Terminology Reference (new)

What Was New in the December 2001 Developer Tools
The December 2001 release of the Developer Tools included the following additions and updates, compared with the September 2001 release of the Developer Tools • AppleScript Studio is the flagship feature of this release. For more information about AppleScript Studio, please read the “About AppleScript Studio” document. • Project Builder 1.1.1 adds support for AppleScript Studio. Some new features such as syntaxaware indentation were added. In addition, many bugs were fixed. Please read the release notes included in Project Builder for full details. The Project Builder file format has not been changed in this release. Projects saved with this new version of Project Builder can also be opened with earlier versions. • Performance improvements were made in the underlying gcc 2.95.2 compiler and gdb debugger for C-based languages: In the September 2001 developer tools, when compiling in Project Builder, gcc was generating too much duplicate source code indexing data, resulting in a major build performance regression. That has been fixed. Debugging startup speed has been improved, especially if you have breakpoint expressions which contain ObjectiveC methods (e.g., “-[NSException raise]”). Debugging stepping speed has been significantly improved.

-

• Interface Builder 2.2 includes enhancements such as:

-

Views and menus can be popped out of their containers and dragged, while preserving their connections. Objects can be logically grouped during design without embedding them in a container. The size and position of objects can be locked. For Cocoa applications, “typed outlets” ensure connections are made to objects of the correct type. Various other enhancements for Cocoa UI editing have been made.

Please read the Release Notes included in Interface Builder for full details. • New and updated documentation. Lots of new documentation content is included in this release. Please check the various “what’s new” portions of the documentation for more information. New documentation includes the following: Development Tools: • updated Project Builder and Interface Builder Help documentation • a PDF version of the Project Builder Help, in English and Japanese Cocoa developer documentation • substantial new material • reorganization for easier access Carbon: • Quartz 2D API reference • Locale Utilities Reference • Unicode Utilities Reference • Dock Manager Reference Java API documentation: • You can access this from the Developer Help Center menu item in Project Builder’s Help menu. Go to the Java section, then on the Java Developer Documentation page, click on “Javadoc” under Related Resources. • It can also be viewed in the JavaBrowser application, but you first need to fix a path preference. In JavaBrower’s Preferences, in the Book pane (middle icon), change the path in the JavaVM.framework to end with Documentation/Reference/Java, instead of Documentation/Java, then close and reopen the JavaBrowser application. QuickTime: • QuickTime 5 API documentation, searchable from Project Builder • Inside QuickTime: Interactive Movies • Inside QuickTime: Virtual Reality Darwin: • Writing an Audio Device Driver • Writing Device Drivers for Mass Storage Devices Networking: • CFNetwork • System Configuration Framework

-

-

-

• Additional and updated source code examples for: - AppleScript Studio - CoreAudio

What Was New in the September 2001 Developer Tools
The September 2001 release of the Developer Tools included the following additions and updates, compared with the May 2001 release of the Developer Tools • Two-level namespace support in the linker. This is now the default behavior of the linker. This may require some project source code changes, especially for bundles. Please read the Two-Level Namespaces release note for more information. • Objective-C++ support in gcc 2.95.2 and Project Builder, allowing you to more easily: - create Cocoa applications which use existing C++ libraries - add Cocoa user interfaces to C++ applications Please read the Objective-C++ release note for more information. • Project Builder 1.1, which includes major new features such as: - a class browser for Java, Objective-C, C++, and Objective-C++ - integrated viewing of developer documentation, including API spec sheets, conceptual documentation, release notes, and more - significant improvements in speed and robustness of source code indexing and symbol popups - faster gdb debugger startup and better control of symbol loading in shared libraries - the Jikes 1.14 Java compiler - project templates for Interface Builder palettes and Screen Saver plug-ins Please read the Release Notes included in Project Builder for full details. Also, note that the Project Builder project file format has been changed. Projects saved with this new version of Project Builder will not open with earlier versions. • Interface Builder 2.1, which includes major new features such as: - user interface improvements, such as for class editing and container content editing - flagging of potential missed connections for Cocoa - checking for compatibility of nibs with versions of Mac OS X - keyboard navigation checking mode for Cocoa - various other enhancements for Carbon and Cocoa UI editing Please read the Release Notes included in Interface Builder for full details. • Thread Viewer, a new performance analysis tool in /Developer/Applications for analyzing application thread behavior. There have also been minor enhancements and fixes to MallocDebug and Sampler. • Updated documentation, including: - updates to Cocoa and Carbon documentation - updated Aqua Human Interface Guidelines documentation

-

new Screen Saver and Preferences Pane documentation

• Apple Help SDK, including developer docs, html templates, and a version of the Help Indexing Tool that runs on Mac OS X. (This content is in the Developer Documentation package, along with the new /Developer/Applications/Apple Help Indexing Tool.app.) • Additional source code examples for: - Printing SDK - QuickTime Java 5.0.1 - fixes to other examples including SimpleText and GLUTExamples Note -- Crash Reporter (which catches crashes in any application) is supplied in Mac OS X itself rather than with the Developer Tools. In Mac OS X 10.1, Crash Reporter is now enabled on a per-user basis through the Console application’s Preferences panel, rather than by editing /etc/hostconfig. There is no need to reboot to activate or de-activate Crash Reporter now.

© 2002 Apple Computer, Inc. All rights reserved. Apple, the Apple logo, Mac, and Macintosh are trademarks of Apple Computer, Inc., registered in the U.S. and other countries.