Details of changes in new Leopard w/ Xcode DP6 seed

Discussion in 'macOS' started by machead2007, Mar 1, 2007.

  1. machead2007 macrumors newbie

    Mar 1, 2007
    Changes in Leopard Since 9A343

    - Performance optimizations
    - More powerful search queries

    iSync Plug-in Maker
    - Fixed Package format : Installer packages created with a prior version must be regenerated with this new version of iSync Plug-in Maker.
    - Added support for Modem Script bundles : A new pane has been added to edit the Modem Script settings of a phone. The export options now allow to export a Modem Script bundle along with an iSync Phone Plugin. (Limitation: exported Modem Script bundles are not yet supported by Leopard)

    - Address Book enhancements for taking pictures
    - Safari compatibility for rich text editing
    - Updated Sharing Preference Pane with additional options for sharepoints and access controls. Shares are acessible through the Shared icon in the Finder Sidebar

    What's New (since Xcode 3.0 Developer Preview 5)

    • When you select Help -> Xcode News a new dialog box appears. The content for this dialog box is drawn from the ADR website and shows
    current developer-related news and information. A check box allows you to prevent the dialog from reopening on subsequent launches. To
    prevent it from opening at all for Xcode 3.0:
    defaults write XCSuppressSplashForBuild -array 3.0
    • When creating a new file or adding a file to a project, Xcode will no longer automatically add that file to a Copy Files build phase when instructed to add that file to a particular target. Instead, files must be added to Copy Files build phases using drag-drop. (Exception: When adding a file to a target which contains only a single Copy Files build phase - and no other build phases other than Shell Script build phases, i.e. the target's whole purpose is to copy files to that one location - then files added to that target will be added to the sole build phase.) This fixes a scenario in which files (such as private header files) can incorrectly end up being built into a product in an improper location.
    • A significant problem was fixed that involved a failure to close Xcode projects when their project windows closed. The project objects would
    remain in memory, increasing memory usage and causing problems if the project were to be reopened.
    • New projects created from the Xcode C++ templates have a default setting in their targets' debug configuration that activates the libstdc++
    debug mode. The libstdc++ debug mode provides extensive run time error checking of the C++ library use. This does negatively impact both
    code size and run time and thus is not recommended for release targets. To deactivate this feature for debug targets, remove
    _GLIBCXX_DEBUG=1and _GLIBCXX_DEBUG_PEDANTIC=1 from the Preprocessor Macros setting in the debug target info preprocessing settings.
    • Command-line tool to open a file in the editor: A command line tool /usr/bin/xed allows you to open existing files, create new untitled or
    named files, and pipe text from standard input into Xcode's editor. You can use this as your EDITOR shell variable for command-line operations
    on text. See man xed for details.
    • Open Quickly: Open Quickly now will find symbols (at the point of definition) as well as files: command-shift-D and type a symbol name, and you'll go there. When searching for files, Open Quickly now correctly searches the User Header Search Paths.
    • You can now duplicate Targets and Executables.
    • Inspector windows will now successfully close in response to command-W.

    Document Management
    • We are now taking advantage of new Cocoa default behavior and underlying support. Text documents are auto-saved so changes are not lost if
    Xcode crashes; this may cause interesting interactions with tools that change the backing text files on disk while they are open in Xcode. Files
    deleted from a project are now moved to the Trash rather than being deleted outright. When deleting items from a project, Xcode will no longer
    offer to delete system frameworks, libraries, headers, or any other files outside your project root.

    • The Workspace now allows you to perform Build, Clean, and other arbitrary Actions on directories in the Workspace. You define the actions in a
    sheet invoked from the Workspace toolbar icons. Results of the actions are shown in standard Xcode build result windows. This allows the
    Workspace with its embedded (or separate) editor to be used as a development environment for makefile-based, script-language, or HTML-
    based projects.
    • Automator workflows are now available in the Xcode menu; they will migrate elsewhere in the next seed.

    • There is a top-level Edit menu command to modernize your code to new Objective C 2.0 features. Refactoring allows you to accept or reject
    offered refactorings on a file-by-file basis.
    • The Extract Function / Method transformation will have the newly generated functions return values where appropriate.
    • Renaming: Refactoring now supports renaming typedef type identifiers. Refactorings that rename classes also now rename categories and
    protocols associated with those classes. Refactorings that rename files now reflect the file name changes properly in the SCM repository.
    • A new checkbox in the Move Up refactoring allows you to move up instance variables and their accessor methods.
    • A new "Move Down" refactoring has been added.

    • The Snapshot backing store is now mounted in /tmp due to restrictions on the overall path length of mount points, which caused mounting to
    fail for users with usernames greater than 8 characters.
    • Snapshots are now stored in a dynamically-created sparse disk image, which by default is located in a cache in the user's home directory but
    which can be relocated at will. The user can add password protection to the snapshot cache as desired for data security, and mark Spotlight to
    not index the mounted volume.

    Project Find
    • RegEx find now finds multiple matches on the same line.
    • Project Find for Symbols is working again.
    • Find Definition searches now supports Ends With.

    • Arrays and STL data types visible during debugging: C arrays, NSArray types, and STL containers can now be viewed directly in the debugger
    Variables view and in Data Tips. The first 10 elements are shown, and buttons allow you to see the next, previous, and last 10 items.
    • The Run Log menu item has been removed from Windows > Tools. The unified log in the Debugger now acts as a Run Log, the gdb console, and
    standard IO window.

    Text Editor
    • Inter-word movement is improved in identifiers.
    • Code Completion:
    - Now completes the “most likely” completion inline, like Mail, Terminal, and other applications. Accept the offered completion with Tab, or
    invoke the classic completion menu with Option-Escape. Keys to cycle through completions and jump to the next argument placeholder are
    detailed in the Edit menu. Code completion works for filenames in #include statements and build settings in .xcconfig files.
    - Now prefers certain case-sensitive completions more favorably, which should allow you to, for example, enter 'nsarr' and have it completed
    to NSArray and also have "Fl" complete to a local variable 'Floatation' rather than 'float.'
    - Code completion of functions with multiple parameters now adds a space after the comma separating parameter
    - Auto-completed text is now all drawn in gray (rather than some gray, some black, some selected, some not). This makes the behavior when
    cancelling a completion more intuitive.
    - When using 'Next Completion', the inserted text is colored as plain text, rather than gray. This should help imply that the test is in no way
    temporary. Additional editing operations cause the text to be colored according to your syntax coloring preferences.
    • Syntax Coloring:
    - The Xcode Default color theme is much more readable than in previous versions, and there are a number of new themes. Both uncolored and
    syntax-colored text are placed on the Pasteboard for copy and text drag operations.
    - The source editor's word selection and navigation algorithms have been tied to syntax coloring, so wrapping will not break identifiers.
    - Comments in preprocessor macros are now colored as comments.
    - C syntax appearing in preprocessor macros is now colored appropriately.

    • Objective-C 2.0 @property syntax is now scanned by the indexer, and properties are registered in the index for refactoring, navigation,
    modeling, and searching.

    Source Code Importer
    • Common language keywords are now excluded from the Spotlight index for source files, so searching for common English words like "while" and "for" will not hit every C source file.

    Documentation Viewer
    • The documentation window has a new user interface for searching, which is inspired by Mail. In place of the status view that displayed the
    current search criteria is a button bar that contains four groups of search options: search type (API, Book Title, Full-Text), doc set scope (All Doc
    Sets or Selected Doc Sets), language filter (All Languages or a user-defined set of languages), and match type (Starts With or Contains). Placing all of the search options in one control clarifies what the current search criteria is and makes it easy to change search options. Selecting a
    different search criterion refreshes the search results, expect when searching in Full-Text mode. In Full-Text mode, with the cursor in the search field, press return to initiate the search. The control for switching to TOC browse mode is now a toolbar item. When in TOC browse mode, the search criteria bar fades away as none of the search options apply to TOC browse mode.
    • Documentation Sets for Xcode's Documentation Viewer are now updated via an RSS feed.
    • Xcode's Documentation Preferences allows you to specify additional locations for Xcode to search to find and load documentation sets.
    • The Documentation window has a new pop-up menu (in the lower left corner) that gives access to commands that act on documentation sets. It
    also includes a New Subscription... command to let you subscribe to documentation RSS/Atom feeds.
    • A 'Get Documentation Set Info' command has been added to the action menu at the bottom left of the documentation window. It displays name,
    identifier, copyright, feed URL, and other information about the selected documentation set. Using the action menu at the bottom-left of the
    documentation window, you can set the frequency that documentation set subscriptions will be checked for changes.
    • In the documentation viewer, selecting a class in the class navigator pop-up that doesn't have documentation opens the source file of that class in an editor window. Before this change, selecting a class that doesn't have documentation has no effect.

    Research Assistant
    • The Research Assistant now handles all C APIs in the Unix man pages, section 3.
    • The Research Assistant shows more complete availability information, showing the OS versions an API was available per architecture (ppc, i386,
    ppc64, and x86_64. In the case of deprecation, it also provides information on substitute API or technologies.
    • The Research Assistant now shows more information on deprecation and availability for 64-bit APIs.

    Build System
    • The Build Results window finally has a horizontal scrollbar for the viewing of long errors, warnings, and pathnames.

    Build Settings Inspector
    • Parallel Target Builds: A checkbox in the Project Inspector allows all aggregate targets in the project to build their dependent targets in parallel when possible. This means that you can build a short command-line tool while preprocessing your header files for your main application. This is especially useful on multiprocessor machines and while using Distributed Network Builds or distcc. NOTE: Using parallel target builds may reveal implicit dependencies that have been masked by the serial building of targets. Turning on parallel target builds may result in intermittent and hard-to-reproduce build failures due to one target needing the outout of another that has not yet been built. Inspect your project carefully and ensure that each target has its Direct Dependents set correctly before enabling Parallel Target builds.

    Unit Testing Support
    • 32-bit/64-bit Unit Tests: Unit Tests now run as many architectures as posible on the build machine. Unit tests on Intel will attempt to run the
    32-bit PowerPC unit tests in Rosetta, and tests on 64-bit machines will run both 64-bit and 32-bit architectures.
    • otest and CPlusTestRig are now four-way Universal executables.

    Source Code Management
    • SCM comparison operations are now done in a split view editor in Xcode itself, rather than in FileMerge.
    • CVS repositories with broken symlinks in the repository itself would cause Xcode to be unable to perform any SCM operations in the repository.
    The CVS errors from such broken symlinks are now being ignored.

    Core Data Mapping Model
    • The Core Data Mapping Model now has a tab to connect your data model directly to SyncServices.
    • In the Core Data Mapping Model you may now set a relationship as its own inverse.

    • There is a new static linker (ld) based on ld64.
    - It is used for all four architectures.
    - The new linker verifies all Objective-C code was compiled with the same garbage collection settings.
    - The new linker supports wild cards in -exported_symbols_list files.
    - The new linker synthesizes branch islands for final linked images (dylibs, bundles, and main executables). In those cases, the compiler
    option -mlong-branch (aka -mlongcall) is no longer needed. kexts are not final linked images and may still need to be compiled with -
    - There is a new option -why_live that can be used to determine why a symbol was not dead code eliminated.
    - There is a new -rpath option for embedding search paths in linked images.
    - There is a linker option -classic_linker which forces the old linker to be used.

    • There is an updated version of CHUD in this seed.
  2. Blurg Guest

    May 3, 2005
    Looks great, thanks for posting this. I'm really looking forward to XCode 3.
  3. gnasher729 macrumors G5


    Nov 25, 2005
    No thanks at all for your post.

    You are in clear breach of the NDA that you or your company signed with Apple. Absolutely unprofessional, and if had done that and my company found out, I would be fired immediately.

    I sincerely hope that Apple finds your identity.
  4. bonafide macrumors regular

    Feb 26, 2007
    Breach or no breach tell me when it's coming out and what the new iMacs are going to have in them. Ha.. :)
  5. machead2007 thread starter macrumors newbie

    Mar 1, 2007
    In the past, Apple has used March 24th as the magical date to release new products so that's what I'm putting my money on. I can't really say for certain what the improvements to the iMacs will be since none of that gets disclosed to ADC members.

    Speaking of disclosure, I respect your opinion gnasher. However, in my opinion and despite what terms Apple has laid out, I feel that I am helping Apple by furthering the anticipation of Leopard's release. By informing their main consumer base, it gets people talking which may or may not make it's way to a new customer who hasn't heard of the joy that is Mac. I understand that there are rules to follow and policies to adhere to but if I didn't post the changes someone else would. Maybe today, maybe a week from now, but it would happen. I think in terms of degree. To me, posting changes and updates to a Leopard seed is toward the lower end of the spectrum as opposed to releasing a torrent of the new build which is on the higher end of the spectrum and out of the question. But I know my opinion may be deemed incorrect or inappropriate by others and if so, I will gladly remove the post or the admins will do it for me. In addition, lets keep in mind that before you saw my post, you saw the title of the post in the main forum page, and assuming you didn't click the link just for a feeble attempt to come down on someone who violated the NDA (which would make you guilty of a very dull and unrewarding life), who were interested to find out what had happened with this new release. Therefore, if you want to get technical, you are at fault as well for reading information which you knew violated Apple's policies. Furthermore, again if you want to be technical, I encourage you to read up on the forum rules (Things Not to Do #4, in particular). I'm fairly certain that most people in this forum would appreciate my post and argue that your response could be construed as negative. Again, I could be wrong and if so, feel free to call me out on it and I'll remove the thread.

    But I digress.

Share This Page