[ADC] – Mac OS X 10.6 10A286 Beta Build

snowleopard3_01Vazou. E o HMBT/OSXBrazil vem em primeira mão falar sobre o novo build do Snow Leopard, o 10A286:

(Colarei o Seed note pois é mais fácil)

THE INFORMATION CONTAINED IN THIS MESSAGE IS UNDER NON-DISCLOSURE


Mac OS X version 10.6 Snow Leopard build 10A286 Developer Seed Note

Mac OS X 10.6 Snow Leopard is the next major release of Mac OS X.

As this is a pre-release build, it is not advisable to use this software on a production system with information on it that you depend on for your business.

Please be aware that you will not be able to revert back to your previous system after updating. Please install this update on a system you are prepared to erase if necessary.

Installation Instructions

A. Install Snow Leopard using hard disk partitions:

Requirements:

Three hard disk partitions internal or external (you could use 2 but 3 recommended)

Hard disk partitions setup:

Partition 1 – download Snow Leopard disk image here

Partition 2 – restore disk image onto this partition

Partition 3 – partition to install Snow Leopard on

(Partition 3 is optional, you can install onto Partition 1 if you only have 2 partitions)

Procedure:

1. Boot off partition 1, using Disk Utility, restore the Snow Leopard DVD Disk Image onto partition 2

2. Boot off partition 2 and install Snow Leopard onto partition 3

OR if you only have 2 partitions:

2. Boot off partition 2 and install Snow Leopard onto partition 1

Note: Use System Preferences : Startup Disk to pick startup volume

OR

B. Burn bootable DVD for installation:

Requirements:

1. A DVD drive capable of burning double-layer DVDs

Here’s how to check to see if you have such a drive:

- Launch “Systems Profiler”

- Under Hardware, click on “Disc Burning”

- Under “DVD-Write”, if “+R DL” is listed then your machine has the ability to burn double layer DVD discs.

2. A blank DVD+R DL media

Procedure:

1. Launch Disk Utility

2. Click the Burn button in the Toolbar

3. Navigate to and select the downloaded DVD disk image then click the Open button

4. Insert a blank DVD+R DL disc into your DVD burner

5. Click the Burn button

After burning, install Snow Leopard from the burned DVD.

New Content

This seed contains some major new changes in the following areas:

QuickTime Player

The new QuickTime Player has a new minimal UI and is focused on playback.

Finder

Finder includes a new Cocoa Desktop, Info Window and Contextual Menu

Safari

Safari 4 beta is included in the seed as the default browser.

Known Issues

  • Remote Installs over Airport may cause panics (A workaround is to install via Ethernet or DVD.)
  • Booting from the install DVD can take a long time
  • Some settings are not migrated from the previous system when upgrading, including file sharing, sharing name and energy saver settings.
  • Finder issues: Icon previews will not appear on the Desktop, selecting Clean Up does not change icon placement on the Desktop. Sometimes the Finder and Desktop will stop responding to input. A workaround is to restart Finder.
  • iTunes will sometimes lock up when an iPhone is connected. A workaround is to rename or delete ~/Library/Lockdown)
  • Microsoft Office 2004 applications can hang when using the File->Open menu. A workaround is to open the file by opening it in Finder.)
  • On newer MacBook Pros, the screen’s backlight will not come on when booting into the installer if the brightness is set below 6.
  • Hibernation is not working on machines with Nvidia graphics cards and will result in a frozen machine.
  • The Time Machine UI cannot be activated in Finder and Mail in some cases.
  • The linker creates a bad image when the minimum OS target is set to Mac OS X 10.5 and weak external symbols are used. (A workaround is to set Mac OS X 10.4 or 10.6 as the minimum OS target.)
  • Xcode often crashes when navigating in documentation using the navigation buttons.
  • We do not recommended installing this seed on the Nehalem Mac Pros.

Developer Notes

64-bit


We strongly encourage you to start developing and testing 64-bit versions of your KEXTs.  To help you along we’ve included the 64-bit transition guide with the seed.

    • Launch Xcode in Snow Leopard
    • Go to Help menu
    • Select Documentation Viewer
    • Search for “64-bit Transition Guide”

Or use the following link to access the guide in the Apple Developer Connection documentation library:

http://developer.apple.com/snowleopard/library/documentation/Darwin/Conceptual/64bitPorting/intro/chapter_1_section_1.html

As well, the ADC features a wealth of information about 64-bit development, including documentation and sessions from WWDC08.

https://connect.apple.com/

We’ve also enabled the 64-bit kernel, for development purposes only, in this seed on the following configurations:

Machine Model name K64 status
Early 2008 Mac Pro MacPro3,1 Default
Early 2008 Xserve Xserve2,1 Default
MacBook Pro 15/17 MacBookPro4,1 Default
iMac iMac8,1 Capable
UniBody MacBook Pro 15 MacBookPro5,1 Default
UniBody MacBook Pro 17 MacBookPro5,2 Default

Using 10A286 and one of the K64-capable machines listed above, simply boot the Mac with the ’6′ and ’4′ keys held down to use the 64-bit kernel. Observe that uname -v reports RELEASE_X86_64.  Machines listed as “Default” will run K64 automatically when loaded with 10A286.

You can also set arch=x86_64 in your boot-args NVRAM variable, using nvram(8). When you’re done, you can remove the boot-arg, or if you can no longer boot into an OS to unset it, hold command-option-P-R to zap NVRAM.

If you just want one partition to boot x86_64, edit the file /Library/Preferences/SystemConfiguration/com.apple.Boot.plist and add arch=x86_64 to the kernel flags.

If some functionality is not working and you must revert to using the 32-bit kernel, you can either reboot with the ’3′ and ’2′ keys held down or set arch=i386 in your boot-args.

Kernel debugging is essentially unchanged from the existing 32-bit environment. When starting up gdb, you can explicitly pass -a i386 or -a x86_64. When using kextutil to generate symbols, you can also pass
an explicit -arch x86_64.

Blocks

As of this seed (March 2009) the runtime and compiler will no longer be retaining __block objects when a referencing Block is copied, nor will it release the last value found in that variable when the variable is recovered.  Nor will it Block_copy and Block_release a __block Block variable.


Background:
As part of the Blocks language feature we introduced a new storage type, __block, used to mark local variables that are mutable from within a Block and that have a lifetime that can extend beyond the defining function’s activation record (a.k.a. call frame, stack frame).  Extended lifetimes occur when a referencing Block is copied using Block_copy (or the -copy method in Objective-C).  In those cases the __block storage is also copied to the heap and is recovered after its last use from either the activation frame or a referencing Block.

When the __block variable is of a simple type such as an integer or a float there nothing more to be done than simply make a bit copy of the value.  It is analogous to the “assign” style of @property accessors in Objective-C.  Prior to this release we have been treating variables of types Block as if they had a “copy” style and variables of type Objective-C object as if they had a “retain” style.  We are eliminating this special treatment of objects and Blocks in favor of uniformly treating __block variables as simple “assign” bit copies.  (Under Garbage Collection the assignment incorporates a write-barrier)

The dominant use of __block object variables has been in use with synchronous APIs where the variable is initialized to nil and the Block code is used to search for and set it to a non-nil result. __block variables are difficult to use in asynchronous situations where one thread assigns a value and another thread reads the result.  These require either atomic assignments or locking as well as some policy of informing that the data is ready.  In a retain-release world (e.g. non-GC) there is the further significant complication of releasing the old value (if any) and retaining the new one.

Garbage Collection

Resurrections are now fatal; if the garbage collector detects a resurrection, it will log as much information about the object being resurrected as can be gleaned and then call abort().  This behavior can be turned off by setting the AUTO_RESURRECTION_ABORT environment variable to false.

Xcode

Project Snapshots are not functional in this seed. Please refrain from making new snapshots or restoring from a snapshot.

Interface Builder

Copying and Pasting Bindings and Connections

Beginning with this release of Interface Builder, bindings and connections are copied and pasted with objects. Previously, bindings and connections were only copied and pasted if both ends of the binding or connection were copied and pasted together.

Custom Cell

The library now contains a generic NSCell instance that can be used to place custom NSCell subclasses in instance of NSMatrix, and NSTableView.

Development Target

In addition to the deployment target, Interface Builder now has the concept of a development target. The development target can be configured in the Document Info Panel. Some features of Interface Builder are only compatible with newer releases. Attempting to use one of these features will result in a warning or error in the document if the development target doesn’t support the feature. For example, attributes set in the identity inspector’s new “User Defined Runtime Attributes” slice are only available with Interface Builder versions 3.2 and later.

XIB File Enhancements

When the development target of an XIB file is set to Interface Builder 3.2 or later, Interface Builder will generate more compact and readable XML. The XML that is generated is incompatible with versions of Interface Builder prior to 3.2. Choosing a development target prior to 3.2 will cause Interface Builder to generate compatible XIB files. The development target for all existing XIB files is 3.0.

Resizing While Maintaining Aspect Ratio

Holding the shift key while resizing a view in Interface Builder now maintains the original aspect ratio of the resized view.

Zoom and Tablet Support

Using Interface Builder with UI zooming, or a tablet input device no longer causes dragged controls to drift away from the mouse.

WebObjects
The WebObjects developer support package is not included in the Xcode Tools distributed with this seed of Snow Leopard. The package may be downloaded from Apple Developer Connection.

New/Changed API

  • NSURLConnection and related classes have been extended to support client certificates and server trust evaluation as methods of authentication.
  • Kernel and Extensions: kextload now sends an RPC load request to kextd, allowing loading kexts from C code and non-root user loading. BSD kexts can now enable and manage autounload via reference counting. A full list of changes and more information is available at http://developer.apple.com/snowleopard/library/releasenotes/Darwin/index.html.

Bug Reporting

This build is being provided to you for testing and development purposes. Should you encounter any problems, please submit a bug report using the online Bug Reporter at <http://bugreporter.apple.com/>. Please make sure to include “10.6 (10A286)” in the bug title and description. This information will ensure that your bug is processed quickly.

When submitting a bug report, please make sure to include a Summary, Steps to Reproduce, Actual Results, Expected Results, the System Profile Report, and any other relevant information that is necessary to process the report.

IMPORTANT: Engineering requires additional information for crashing bugs, kernel panics, and hanging issues.

Crashing Bugs: Crash logs are required for crashing bugs. Crash logs can be located in ~/Library/Logs/CrashReporter

Kernel Panics: Backtraces, which contain vital information for investigating kernel panics, are required for kernel panic issues. Backtraces can be saved to nvram on restart shutdown, then copied to the panic.log file on restart. The panic.log file can be found in /Library/Logs/PanicReporter.

Hanging Issues: When an application is hung, a Sample should be provided. This can be done using the Activity Monitor (/Applications/Utilities/). To generate a Sample using this utility, click on the hung application name, then from the View Menu select “Sample Process”.

For complete instructions on submitting bug reports, please visit the Bug Reporting page at <http://developer.apple.com/bugreporter/>

Legal Notices

The software identified above is Apple Confidential Information and your use of such software is subject to the Apple Developer Connection Programs Terms and Conditions, including the Prototype License and Confidentiality Agreement attached thereto. Distributing the software to anyone other than an ADC member who is working for the same entity as you is considered a violation of your agreement with Apple and is damaging to both Apple and those who develop for the Apple platform. We sincerely appreciate your efforts to keep this software Confidential.

You agree that you will not export or reexport any of the software or Confidential Information received from Apple (a) into (or to a national or resident of) any U.S. embargoed countries (currently, Cuba, Iran, Libya, North Korea, Sudan, or Syria) without first obtaining proper authorization from the U.S. Government; or (b) to anyone on the U.S. Treasury Department’s list of Specially Designated Nationals or the U.S. Department of Commerce Denied Person’s List or Entity List.  You also agree that you will not use said software for any purposes where prohibited by United States law, including, without limitation, the development, design, manufacture or production of nuclear, missile, chemical or biological weapons.

This seed note is an appendix to the Prototype License and Confidentiality Agreement between Apple Computer, Inc. and the addressee.

THE INFORMATION CONTAINED IN THIS MESSAGE IS UNDER NON-DISCLOSURE