Re: Cocoa and dead-code stripping
Re: Cocoa and dead-code stripping
- Subject: Re: Cocoa and dead-code stripping
- From: Andrew Demkin <email@hidden>
- Date: Tue, 3 Jul 2007 09:58:18 -0700
On Jul 3, 2007, at 7:50 AM, Clark Cox wrote:
On 7/2/07, Andrew Demkin <email@hidden> wrote:
On Jul 2, 2007, at 8:28 PM, Wade Tregaskis wrote:
>> The way this would work is to have the development tools scan all
>> message selector references (and class literal references) and
>> strip all methods and classes that aren't referenced. This process
>> would repeat until the tool can no longer perform any more
stripping.
>
> O rly?
>
> .h
> IBOutlet id myTextField;
>
> .m
> NSString *selectorName = [myTextField stringValue];
> SEL newSelector = NSSelectorFromString(selectorName);
> [myObject performSelector:newSelector];
Yes, this is exactly the sort of example which I tried to cover in my
original posting when I said,
Of course, there's still the probability that some references
won't be known at compile-time, and for these methods and
classes,
a tagging technique would be necessary to suppress the
stripping.
Tagging would not work, as *any* method can be called dynamically at
runtime. You'd have to tag every single method--which would defeat the
purpose.
In this specific case, perhaps the best thing to do would be to
disable the hypothetical automatic stripping. So what? That doesn't
mean that stripping wouldn't work for more common cases.
Let me put it another way. Forget Objective-C. This example would be
no different than having a C-based program that allows a user to
input strings. Then, the program could turn around and use CFBundle
APIs to resolve C functions to invoke. Does that mean that automatic
code stripping is not possible for C code, or that it's not useful?
Of course not.
Andrew
_______________________________________________
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