Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux build failure -- error: cannot inherit from class 'NSLock' (compiled with Swift 6.0) because it has overridable members that could not be loaded in Swift 5.10 #2621

Open
4 of 18 tasks
clackary opened this issue Aug 19, 2024 · 2 comments

Comments

@clackary
Copy link

Short description of the issue:

RxSwift fails to build on Ubuntu 22.04 against 2024-07-22 nightly Swift toolchains (and newer).

Expected outcome:

Top of RxSwift main (also reproduced with 6.5.0) builds successfully against 2024-07-15 toolchain, but starting failing against newer toolchains, as of 2024-07-22 and later.

What actually happens:

/project/RxSwift/Sources/RxSwift/AtomicInt.swift:11:13: error: cannot inherit from class 'NSLock' (compiled with Swift 6.0) because it has overridable members that could not be loaded in Swift 5.10
 9 | import Foundation
10 | 
11 | final class AtomicInt: NSLock {
   |             `- error: cannot inherit from class 'NSLock' (compiled with Swift 6.0) because it has overridable members that could not be loaded in Swift 5.10
12 |     fileprivate var value: Int32
13 |     public init(_ value: Int32 = 0) {

Self contained code example that reproduces the issue:

Build errors are thrown out of Sources/RxSwift/AtomicInt.swift, but it also reproduces with a simple inherit from NSLock.

import Foundation

class FooLock: NSLock {}

RxSwift/RxCocoa/RxBlocking/RxTest version/commit

6491a16

Platform/Environment

  • iOS
  • macOS
  • tvOS
  • watchOS
  • playgrounds
  • Linux, Ubuntu 22.04

How easy is to reproduce? (chances of successful reproduce after running the self contained code)

  • easy, 100% repro
  • sometimes, 10%-100%
  • hard, 2% - 10%
  • extremely hard, %0 - 2%

Xcode version:

N/A

⚠️ Fields below are optional for general issues or in case those questions aren't related to your issue, but filling them out will increase the chances of getting your issue resolved. ⚠️

Installation method:

  • CocoaPods
  • Carthage
  • Git submodules

I have multiple versions of Xcode installed:
(so we can know if this is a potential cause of your issue)

  • yes (which ones)
  • no

Level of RxSwift knowledge:
(this is so we can understand your level of knowledge
and formulate the response in an appropriate manner)

  • just starting
  • I have a small code base
  • I have a significant code base
@clackary
Copy link
Author

I figured there's a chance this is a regression out of swift-corelibs-foundation, so I filed a similar issue over there -- apple/swift-corelibs-foundation#5076

If that doesn't go anywhere, this could in theory be resolved within RxSwift by refactoring away from AtomicInt: NSLock inheritance.

@clackary
Copy link
Author

Looks like this same failure is showing up in the swift package index testing: https://swiftpackageindex.com/builds/7B923645-D50A-4667-B129-33056F5C7599

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant