Originally posted by Millennium:
<STRONG>Oh, well. In any case, for the sake of those of us stuck behind modems, what's new? Or are we not supposed to say that?</STRONG>
Hopefully I don't get busted by Apple's over-active legal dept. for posting this, but this is from the PB release notes. I'll post the IB release notes next.
New features
WebObjects 5.0 support
The main purpose of this release is to add support for WebObjects 5.0. WebObjects 5.0 now uses Project Builder as its main IDE instead of the old, obsolete, ProjectBuilderWO. Many miscellaneous fixes and additions have been made to support this. Some of these changes are very specific to WebObjects support, but many also affect any pure Java development or, in some cases, any development with Project Builder. Changes that affect things besides WebObjects are described below.
Check syntax
Project Builder now supports checking the syntax of the file you're editing without invoking a whole build. There are limitations to this feature, currently, especially for projects that depend on generated source or header files since the main build system is basically short-circuited. However, for most projects it should work just fine. Check syntax can be invoked by clicking the little checkmark button in an editor's navigation bar, or by choosing the Check Syntax menu item in the Build menu. The command always acts on the file in the active editor, currently.
In this version of Project Builder, there is a limitation that prevents syntax checking from working properly while the project is being built. As a result, clicking the checkmark button or choosing the Check Syntax menu item while a build is underway currently does nothing.
Implicitly included headers
There is now specific UI in the Build Settings tab of the target editor where you can list header files that will be implicitly included for every compilation unit. This basically maps the to "-include" option in gcc. Any existing -include options you may have in your OTHER_CFLAGS will be automatically extracted and added to this new list. Some IDEs, notably CodeWarrior, call this feature "prefix headers".
In addition to specifying one or more headers to be implicitly included, you can also mark one or more of them to be precompiled. Any marked headers will be automatically precompiled by the build system before your sources are compiled.
One common setup to get the most out of this feature will be to have two implicit headers. The first would contain any #defines that you need to set up globally for your project, and it would include any framework headers you need (such as <Carbon/Carbon.h>. The second header would contain any C++-specific includes or setup. The first header should be marked as precompiled. With this setup, you will be able to take advantage of precompiled headers for all the Carbon API even if you need to have #defines or other settings that would prevent you from being able to use the Carbon precompiled header that is shipped with the system. Note that, in addition to setting up as described above, you will also need to add "-cpp-precomp" to your OTHER_CFLAGS or OTHER_CPLUSPLUSFLAGS in order to get precomps used for C++ compiles.
Persistent window positions
There are two new preferences in the general preferences pane that allow you to control whether window positions are remembered for project windows and for separate editor windows. By default separate editor window positions are remembered, but project window positions are not (when window positions are not remembered, newly opened windows cascade).
Separate editor window positions and sizes are stored as part of the per-user project info which means that it will only work for files that are part of a project and only if the project is actually open.
Source Control Management improvements
There's a new SCM menu command that allows you to discard any changes you have made to a file and to check that file out fresh from the repository.
It is now possible to use SSH for client server CVS. There's no way to control this from the IDE, but if the environment variable that CVS uses for this is set in Project Builder's environment it will make sure to pass that along to the environment for cvs commands it invokes. In the future, we would like to fully support configuring of such options and handle logging in to the server and so on, but this should allow people to get by until such time as these features are added.
Continuing after build errors
There's a new preference in the Build preferences pane to control whether a build should stop as soon as there's an error or not. If you set it to continue, it will try to continue as far as it can even when there are errors. Continuing after errors is often useful when porting a project for the first time since it allows you to get a big batch of errors in a bunch of different files in one build rather than continually having to iterate through building and fixing errors in each source file separately.
Build phase configurability
You can now delete and re-add any kind of build phase. You can also reorder build phases by dragging them. This is an expert feature, and it is possible to make your target's non-buildable by doing this. For example, putting your Frameworks & Libraries phase before your Sources phase is a bad idea. But, for expert users, this can give you some flexibility. And, for targets that do not need a Resource Manager Resources phase, or a Java Archive phase, or whatever, you now can get rid of them.
Build message parsing and display
The parsing and display or build messages has been improved. In particular, errors that occur in headers that are included through a chain of includes are now nested by this include chain so you can see not only what file the error was in, but who included it (recursively).
Editing variable values in the Java debugger
There is now support for changing the value of variables through the debugger's variable listing. This support currently only works when debugging Java. A later release will add this support for C-based languages as well. Double-click a value to edit it.
Documentation integration
An updated set of Carbon documentation that is properly indexed is included with this release. In the 1.0 version of Project Builder, Carbon doc lookup was broken due to this index being missing.
In addition, Project Builder now knows when there is documentation for a particular item and will only show book icons in the Definition find results for items that actually have documentation.
Headermaps are no longer optional
The UI to control headermap use in the target editor is gone. Headermaps are now used for all projects. You should not notice any changes because of this.
Notable Bug Fixes
Target bookmarks now remember the UI setup in the target editor. This means that as you flip back and forth between sources and targets in the editor, the selected tab, scroll position, and other details of the target editor setup will be remembered and restored. It also means that if you create bookmarks in the Bookmarks tab, they will remember the UI configuration at the time the bookmark was created.
There were several leaks that were preventing editors from being fully disposed of when a project window closed. These leaks could cause a bug where opening a file after closing the last open project would load the file into the leaked editor and nothing would ever appear on the screen.
The bug that caused the debugger not to launch the executable you are trying to debug if you had altered any of the Debugger preferences has been fixed.
Cleaning a project no longer removes the entire ProjectHeaders directory (which could be inconvenient if you use a separate location for build products which is shared by several projects).
A bug where having tons of java files could overwhelm the command line length limit has been fixed.
We now offer to and are willing to delete the folder referenced by a folder reference when the user removes the folder reference from a project (if we have permission to do so).
Fixed the bug(s) that caused indexing to fail if you tried to index a project before you had built it.
Java archive products are now cleaned properly when the target is cleaned.
PB now beeps when you double-click a brace and the matching brace cannot be found, and when typing a closing brace for which there is no matching opening brace.
Fixed a bug that caused file saving to fail when owner and group info for the previous version of the file could not be found.
We no longer claim to open .mac files as an image type.
The highlighting of the currently executing line in a source file when debugging has been changed in both appearance and implementation. The new implementation should be more robust in certain cases where editing is happening.
Made sure all places where PB copies or moves files now preserve resource forks and finder info. In particular adding files with the Copy checkbox checked now preserves this stuff.
Batch find commands that make sense are now enabled when a separate editor window is active.
The option to have mig compiles build and use BOTH client and server side APIs has been enabled.
At least one crasher in the indexing code has been fixed.
When building java with indexing turned on so that dependency analysis is used to compile only Java files that need to be rebuilt, we now avoid invoking the java compiler separately for each file needing to be recompiled. There have also been fixes that address the problem of overflowing the command line buffer when a project has lots of java classes that need to be compiled and jarred.
Fields left empty in the simple Product Settings UI will cause their corresponding Info.p[list keys to be removed rather than set to empty string. This is the more correct behavior, in general.
Adding and removing Java files from a target will no longer cause custom NSJavaPath Product Setting keys to get stomped on. We are now smarter about updating only the relevant members of this array.[/LIST]