鈿狅笍 It looks like there is significant number of regressions in Swift 3.1 compiler 鈿狅笍
The problems occur in Release builds when optimizations are turned on.
It looks like Debug versions work ok so far, but more investigations are needed.
The build server didn't detect issues because it's still running compiler 3.0.x version.
Plan:
We'll try to create some workarounds :( What a nightmare.
By some miracle, it looks like all of the Swift 3.1 compiler bugs have affected only unit tests projects :)
We've detected two Swift 3.1 compiler anomalies that were affecting this project.
It seems that both of them only affected unit tests and not the library itself.
We've upgraded travis to Xcode 8.3 and will probably release a small patch release later this week with unit tests officially passing with Xcode 8.3 on build server, just to be on the safe side.
We will also attach a binary in the upcoming patch release.
We've done what we can to make sure the project is compatible with Swift 3.1 compiler, but there are obviously some issues regarding compiler stability in release configuration.
STR 1
final class LongNight: Error {
}
LongNight() as Error as NSError // <-- runtime crash
STR 2
class Test {
init() {
print("Created")
}
deinit {
print("This is never called")
}
}
for _ in [1, 2] {
let e0 = Test()
let e1 = Test()
for e in [e0, e1] {
}
}
I found a Swift3.1 bug between Error and NSError.
https://bugs.swift.org/browse/SR-4414
Although it is not directly related, I hope to it help you.
Hi @tarunon ,
It would be great if you could also report that other one.