I just tracked down a bug due to C++ code in the Swift runtime code trying to 
interface with standard library code written in Swift, but getting the ABI 
slightly wrong and leading to some nasty hard-to-reproduce heisenbugs. While 
I've narrowed down the bug in this specific case, it seems like this is a 
potentially continuing source of maintenance bugs, especially as we try to 
bring up the Swift calling convention in the coming year. I'm wondering if 
there's anything we could do to help validate that C++ and Swift code in the 
runtime is correctly interfacing. We could at least check that we're passing 
the right number of arguments by comparing the LLVM IR of the runtime and 
stdlib, perhaps, though this would have to be a fuzzy type-level match since 
Clang and Swift aren't normally going to agree on the exact pointer types of 
arguments.

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

Reply via email to