Rxswift: Xcode 8.3 broke RxSwift releases

Created on 3 Apr 2017  路  4Comments  路  Source: ReactiveX/RxSwift

鈿狅笍 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:

  • I've removed binary release of RxSwift 3.3.1 (was built using Xcode 8.3 and faulty Swift 3.1 compiler)
  • If you need to ship consider only using 3.0.x version of the Swift compiler (Xcode 8.2.1)
  • If you need to ship using Xcode 8.3, ship using Debug version of the library, looks like unit tests pass on debug configuration

We'll try to create some workarounds :( What a nightmare.

bug warning

All 4 comments

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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

angerman picture angerman  路  3Comments

apoloa picture apoloa  路  3Comments

acecilia picture acecilia  路  3Comments

trungp picture trungp  路  3Comments

trant picture trant  路  3Comments