Document Revision History

This table describes the changes to Universal Binary Programming Guidelines, Second Edition.

DateNotes
2009-02-04

Made minor content additions.

 

Updated Programmatically Detecting a Translated Application with details about the behavior of the sysctl call when working with the proc_native variable.

2007-02-26

Updated for Mac OS X v10.5.

 

Removed the Appendix “Using PowerPlant” because an Open Source version that supports Intel-based Macintosh computers is available. See Metrowerks PowerPlant.

 

Replaced the content in 64-Bit Application Binary Interface with cross-references to documents that are more thorough at describing the ABI.

2007-01-08

Added information on 64-bit and made technical corrections.

 

Added 64-Bit Application Binary Interface.

 

Added a note to OpenGL.

 

Revised the explanation of the return values for the code in Listing A-4.

 

Removed the code example in Archived Bit Fields because it was incorrect.

2006-07-24

Made a few minor technical corrections.

 

Revised Network-Related Data.

 

Clarified how Listing A-4 works.

2006-06-28

Fixed link.

 

Added PostScript Printing.

 

Redirected link from Kernel Extensions Reference to Kernel Framework Reference.

2006-05-23

Removed outdated links and made a few other minor changes.

 

Revised code regarding flippers to use an explicit UInt16 pointer and to assign back to dataptr the advanced countPtr.

 

Updated instructions in Troubleshooting.

 

Added information about the CCSResourcesFileMapped flag to “using PowerPlant”.

 

Removed links to documentation that is no longer relevant.

 

Added a note to “LStream.h” concerning reading and writing bool values.

2006-04-04

Corrected two function names.

 

Revised information in 32-Bit Application Binary Interface so that it now only provides a link to the primary ABI reference.

2006-03-08

Improved wording and added information on Spotlight importers.

 

Added information to Objective-C Runtime: Sending Messages and Objective-C: Messages to nil.

2006-02-07

Improved the wording in several sections.

 

Revised wording in Bit Shifting, Bit Test, Set, and Clear Functions: Carbon and POSIX, Troubleshooting, and Guidelines for Swapping Bytes.

 

Revised code in Listing A-4 by adding a statement to handle versions of Mac OS that pre-date Rosetta.

2006-01-10

Updated content for Mac OS X v10.4.4.

 

Removed the note about preliminary documentation from Introduction to Universal Binary Programming Guidelines.

 

Changed Xcode 2.1 to Xcode 2.2 in various places throughout the document because this is the recommended version for building a universal binary.

 

Updated screenshots.

 

Updated information in Disk Partitions, Finder Information and Low-Level File System Operations, Multithreading, Objective-C: Messages to nil, QuickTime Components, Runtime Code Generation, and Values in an Array.

 

Added the sections Code on the Stack: Disabling Execution, Extensible Firmware Interface (EFI), and Mach Processes: The Task for PID Function.

 

In Rosetta, updated the sections What Can Be Translated? and Forcing an Application to Run Translated.

 

In Rosetta, added the section Programmatically Detecting a Translated Application .

2005-12-06

Made refinements to existing content.

 

Added code that shows how to swap bytes for values in an array. See Values in an Array.

 

Added Automator Scripts, Dashboard Widgets, and QuickTime Metadata Functions.

2005-11-09

Updated for Xcode 2.2; includes pointers to newly revised tools documentation as well as improved guidelines and tips.

 

Revised Building Your Code.

 

Added Debugging.

 

Added information to Pixel Data on how to track down color problems.

 

Added the section Quartz Bitmap Data.

 

Added information about IP addresses and other “false” numerical values.

 

In several places throughout the book, added cross references to newly revised, relevant documentation.

 

Added clarification on the long double data type. See Data Types.

 

Added information about using the PinRect function. See QuickDraw Routines.

 

Added information about the need for Xcode targets to be native. See Build Assumptions and Building Your Code.

 

Corrected information about how ATS for Fonts handles font resources. See Font-Related Resources.

 

Changed extended markup language to extensible markup language.

 

Improved the grammar in Objective-C: Messages to nil.

 

Fixed a link to information on Hyper-Threading Technology. See the See Also section in Guidelines for Specific Scenarios.

 

Made numerous editorial changes throughout.

2005-10-04

Made technical improvements and minor editorial changes throughout.

 

Added a few resources to See Also in Building a Universal Binary.

 

Changed the title of the Appendix Fast Matrix Multiplication to Architecture-Independent Vector-Based Code.

 

Added new sections to the chapter Guidelines for Specific Scenarios. See FireWire Device Access and USB Device Access.

 

Added information about a relevant technical note to QuickTime Components.

 

Added an example of a color issue to Troubleshooting Your Built Application.

 

Revised the section Objective-C: Messages to nil.

 

Revised the code for swapping floating-point values. See Floating-Point Values.

 

Add a reference to SDK Compatibility Guide in the chapter Building a Universal Binary.

 

Made corrections to the section OpenGL.

2005-09-08

Updated a substantial amount of task and conceptual information.

 

Completely replaced information related to PowerPlant.

 

Removed most of the content from Preparing Vector-Based Code because the document AltiVec/SSE Migration Guide provides a more complete discussion of porting AltiVec code to SSE.

 

Removed most of the content from the appendix titled Application Binary Interface because the document OS X ABI Function Call Guide provides a more complete description of the IA-32 ABI for Intel-based Macintosh computers.

 

Added a section—Java Applications—that provides information about Java on Intel-based Macintosh computers, including what happens under Rosetta. Added cross-references to a technical note on this topic to Rosetta.

2005-08-11

Numerous minor technical and editorial changes throughout.

 

Removed the appendix titled x86 Equivalent Instructions for AltiVec Instructions.”

2005-07-07

Made numerous minor technical refinements and fixed a few typographical errors.

2005-06-17

Fixed typographical and linking errors. Made several improvements to technical content.

2005-06-07

New document that describes the architectural differences between PowerPC and Intel and provides tips for writing code that can run on both.