Responses inline; 

> On Dec 28, 2015, at 5:01 AM, Luke Howard via swift-corelibs-dev 
> <swift-corelibs-dev@swift.org> wrote:
> 
> 
>> On 27 Dec 2015, at 9:31 PM, Luke Howard via swift-corelibs-dev 
>> <swift-corelibs-dev@swift.org> wrote:
>> 
>> I’ve implemented but not extensively tested decodeValueOfObjCType(). Do we 
>> need to support NSConcreteValue?
> 
> I started looking at NSConcreteValue (commit 1a9fe560) and decoding it is 
> fine (notwithstanding implementing all the special cases).
> 
> What’s the plan for instantiating concrete of NSValue though?
> 
> * Class clusters seem impossible to implement in Swift

Yep, there are a few things in the evolution list to propose this.

> * Factory methods are an API change

We need factory init methods to make this work which is not yet supported by 
the language. 

> * NSValue becoming concrete seems to muck up CF bridging (also, fragile base 
> class problem)

It will end up being a real rats nest to even get it close to working. In the 
end we will have two choices if we don’t have factory init methods, we can have 
NSValue or have NSNumber. My guess is that NSNumber is more commonly used in 
swift than NSValue.

> * I looked a little into using ManagedBuffer to size instances dynamically 
> but it’s not much help by the time init() is called

If need be somethings can be dropped out to C as well

> * A lookaside table works and is straightforward to implement, but is pretty 
> ugly

Not certain what you mean there; each NSValue is just a identity of a key in a 
dictionary to a NSConcreteValue that the methods forward to? That would mean 
that each method call would be a dictionary lookup… that does not sound 
scalable from a performance standpoint.

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


In summary - I think perhaps it would be better to start thinking about 
batching up parts of the NSCoder work and getting it merged before tackling 
NSValue
_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev

Reply via email to