Re: 10.4 v. 10.5 SDK question
Re: 10.4 v. 10.5 SDK question
- Subject: Re: 10.4 v. 10.5 SDK question
- From: Steve Cronin <email@hidden>
- Date: Sat, 18 Oct 2008 08:55:58 -0500
Ken;
Once again, thanks for the exemplary response!
(You are a great resource for the Cocoa community!)
So... while yes, the 10.5 SDK does have bug fixes, using it and
deploying to 10.4 potentially bifurcates the product into different
behaviors.
(It is really tough to determine where and when these differences
might show up but the possibility exists -.> maddening from a support
perspective)
Since my goal was to deploy to 10.4 all along, by using the 10.4 SDK,
the app will behave the same on both 10.4 and 10.5 (and 10.6) -->
simpler from a support perspective.
In some cases the behavior might be consistently wrong perhaps but any
such incorrectness can be cured on both OSes by the same workaround --
> simpler development and testing
Simpler development, simpler code, simpler testing, simpler support
- yeah!
Thanks for helping me better understand and for keeping my life simple!
Steve
On Oct 18, 2008, at 2:19 AM, Ken Thomases wrote:
On Oct 18, 2008, at 1:36 AM, Steve Cronin wrote:
...(bug fixes) which are only enabled for binaries linked against
the 10.5 SDK. This is both a good and bad thing. It means your
program works consistently on Tiger and Leopard, which makes
testing easier. But it might behave consistently incorrectly due
to the bugs. Check the various Leopard release notes for specifics.
I'm afraid I don't understand this comment.
What do you mean "..behave consistently incorrectly due to the
bugs.."?
I mean that, where there's a bug, an application linked against the
10.4 SDK will continue to get the buggy behavior from the framework,
even when running on Leopard. Consistency. Whatever workaround you
have for the bug will continue to work correctly on Leopard.
If you link against the 10.5 SDK, then the application will get one
kind of behavior when running on Tiger and get a different behavior
when running on Leopard. Inconsistency. Any workaround for the
Tiger bug may cause trouble when running on Leopard, but failure to
work around the bug will cause trouble when running on Tiger. You
have to write your code with this in mind, and you have to test both
possibilities.
Can you refer me to a specific item you might be thinking of here?
Well, any of the bugs fixes listed in the release notes which note
that the new behavior only occurs for applications linked against
10.5. For example, in the AppKit release notes, see the item titled
"KeyValueObserving notifications for IBOutlets during Nib loading".
Consider how easy it would be to unwittingly code an application
that relies either on the old behavior which would break with the
new behavior, or vice versa.
So in sum, I think what you are saying is:
Stick w/ 10.4 SDK as the safest path.
However there might be bug fixes which you could benefit from by
using the 10.5 SDK.
To determine whether or not you actually do benefit from 10.5 means
you have to learn more about it by reading the Release Notes.
Does that sound right?
Yup.
So based on this reading of your comments and a few minutes with
the XCode documentation I scan the AppKit Release Notes for Leopard
and find the following:
NSCompoundPredicateFor applications linked on Mac OS X 10.5
"Leopard" or later, initializing an NSCompoundPredicate now copies
the subpredicates array rather than retaining it. Applications
linked on Mac OS X 10.4 "Tiger" continue to only retain the
subpredicates array for binary compatibility.
Well this appears germane to my application as I do use compound
predicates.
Judging by the scope the Release Notes and the speed with which I
could locate even one germane issue I am convinced that my original
instinct to use the 10.5 SDK because the code base is better IS
correct.
But I am puzzled by your "good and bad thing" comment...
Well, consider this: if the bug fix were purely good, why would
Apple maintain backward compatibility for apps which are linked
against the 10.4 SDK?
And remember, if you link against the 10.5 SDK but support
deployment on 10.4, then you still have to cope with the case where
NSCompoundPredicate merely retains rather than copying its
subpredicates array, because that's what will happen when it's run
on 10.4. So, your code has to be safe under both behaviors rather
than just having one behavior to worry about.
Cheers,
Ken
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden