[swift-corelibs-dev] NSCoding methods

Luke Howard lukeh at padl.com
Tue Dec 29 07:03:39 CST 2015

OK, so I’ve cleaned up the commit history for the NSCoding branch, you can find it here still:

https://github.com/lhoward/swift-corelibs-foundation/tree/lhoward/nscoding <https://github.com/lhoward/swift-corelibs-foundation/tree/lhoward/nscoding>

I haven’t opened a pull request as I’d like to get it working on Linux first. Having a bit of trouble though. (I’m using Ubuntu 15.10 with the latest snapshot.)

Firstly, build-wise:

* Changing anything in Foundation/ seems to trigger a recompile of everything Swift. Is there a way to do correct dependency analysis? My clock is OK.

* swift/utils/build-script with —debug-foundation still seems to build a release version. I worked around by building everything debug, but that takes up a lot of disk space.

* lldb crashes all the time when printing variables (actually I also see this on OS X as well with the snapshot)

Related to testing:

* Something weird is going on with casting over which completely breaks NSKeyedArchiver. I can reproduce it with the following:

    let foo = (NSMutableArray() as? AnyObject) as? NSCoding

which the compiler tells me always succeeds (as I believe it should), but at runtime returns foo==nil. No issue if it is a locally defined class that conforms to NSCoding. It’s failing in _dynamicCastToExistential()’s check for _conformsToProtocols() but I haven’t dug deeper yet.

FYI: my LD_LIBRARY_PATH is pointing to the right libswiftCore/libFoundation. I removed the module maps for Foundation/CoreFoundation from the snapshot directory.

* Subclassing NSObject fails outside Foundation (see SR-272) is also an issue but not a blocking one

— Luke
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-corelibs-dev/attachments/20151230/677d4f77/attachment.html>

More information about the swift-corelibs-dev mailing list