64-bit vs 32-but Objective-C Runtime differenes [WAS]Re: Xcode Debugger: Cannot Step Into a Method in a x86_64 architecture build
64-bit vs 32-but Objective-C Runtime differenes [WAS]Re: Xcode Debugger: Cannot Step Into a Method in a x86_64 architecture build
- Subject: 64-bit vs 32-but Objective-C Runtime differenes [WAS]Re: Xcode Debugger: Cannot Step Into a Method in a x86_64 architecture build
- From: Andreas Grosam <email@hidden>
- Date: Wed, 14 Jan 2009 11:36:57 +0100
On 14.01.2009, at 05:11, Nick Zitzmann wrote:
On Jan 13, 2009, at 2:54 PM, Sean McBride wrote:
I advise against going 32bit-only at this time because the tools
are not
fully baked IMHO.
Assuming Sean meant "64-bit-only", I second that, and add that a
lot of people are still using older Power Mac G4s and first edition
MacBooks, etc. which do not support 64-bit addressing at all, and I
see no reason to leave them out in the cold yet.
Yes, 64-bit -- I did understand that he meant 64 bit. And I totally
agree, too. I have two older Mac running 10.4.x and I hate to see it
that a great application would only install on 10.5 and later.
Although it is getting slightly OT (hence a new topic), it is
important to note that there are many 32-bit machines out there.
The problem is that Objective-C++ 2.0-32-bit and Objective-C++ 2.0-64-
bit are different in that the C++ exception scheme is implemented in
64-bit (including stack-unwinding) which allows to use C++
programming idoms that rely on their d-tors being called propperly.
For pure Objective-C-2.0 this "problem" does not exist, though.
See <http://developer.apple.com/ReleaseNotes/Cocoa/RN-ObjectiveC/
index.html> 64-bit Zero-Cost C++-Compatible Exceptions
This has the effect, that source code might be illegal (with erratic
behavoir) on 32-bit but is perfect on 64-bit. It is not what you
control with a compiler switch, like a "language dialect". The
behavior is implemented differently.
So when you write your source code that relies on the features that
are only implemented in 64-bit, your program will not work in 32-bit.
The compiler will not even issue a warning.
I'm a bit confused about whether we should use these 64-bit only
features in Xcode/Cocoa/iPhone programming, as it has been mentioned
as great improvements to the language several times from Apple
evangelists -- or if we should remove any C++ traces and use pure
Objective-C. The easiest way to solve the problem for Objective-C++
developers is that there are no language dependencies for different
architectures (by adding them into 32-bit as well).
If this were C++, Java, C#, etc. -- dependencies on architecture were
clearly a no go. IMHO, these differences are a bug.
Andreas
That said, the 64-bit frameworks have matured quite a bit by now,
and the public resistance has probably worn off as well, so I think
it's now feasible to launch a 4-way universal binary, but yeah, you
have to do your debugging in 32-bit for now.
Nick Zitzmann
<http://seiryu.home.comcast.net/>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden