IMHO on Linux NSKeyedArchiver should always use mangled names. If we want 
cross-platform archives, we should set up standard substitutions, but given 
that Swift classes exposed to Objective-C are archived with their full names it 
doesn't make sense to use "half the name" in the archive.

Jordan

> On Dec 19, 2015, at 13:23 , Philippe Hausler via swift-corelibs-dev 
> <swift-corelibs-dev@swift.org> wrote:
> 
> Somewhat; the mangled symbols are technically searchable by dlsym but that 
> seems like a hack. Perhaps one of the stdlib/compiler team might be able to 
> speak more on this than myself and they may have suggestions for a better 
> way. Foundation is at a special spot in which we can sometimes get special 
> runtime considerations for these types of things. 
> 
> The tricksy spot would be cases where you would need to fetch a class without 
> the module name. 
> 
> For example NSUUID is defined by it’s module name Foundation.NSUUID; in that 
> a program could have it’s own NSUUID that is totally different (naming it the 
> same thing would be confusing to read and potentially viewed as bad form but 
> it can be done…). That would result in MyApplication.NSUUID to define the 
> symbolic name of the item. From the perspective of NSKeyedArchiver it will 
> encode things as NSUUID (without the namespace) in that in the realm of objc 
> there can be only one.
> 
> The tl;dr is that there is no manifest of classes or table of names stored in 
> the binaries; just symbols.
> 
>> On Dec 18, 2015, at 10:57 PM, Luke Howard <lu...@padl.com> wrote:
>> 
>> 
>>> Specifically there is no NSClassFromString yet. I would say if you are 
>>> looking for a place to start, perhaps coming up with a good strategy for 
>>> accomplishing that in a uniform manner (for both Foundation classes as well 
>>> as user classes) would be a good step in the right direction to getting 
>>> this started.
>> 
>> Does Swift have enough runtime metadata to do this for native Swift classes?
>> 
>> -- Luke
> 
> _______________________________________________
> swift-corelibs-dev mailing list
> swift-corelibs-dev@swift.org
> https://lists.swift.org/mailman/listinfo/swift-corelibs-dev

_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev

Reply via email to