Requiring Xcode 7.3 to build Swift master for Apple platforms?


(Grant Paul) #1

The latest available version of the Darwin linker (ld64) on opensource.apple.com is the version from Xcode 7.0. It would be great if Swift master didn’t depend on new linker functionality until a newer version of the linker source is available with the fix, so Swift could be compiled with from-source toolchains.

Grant

···

Xcode 7.3 included a fix for the Apple linker that's necessary to support some of the metadata format changes we're making in Swift 3. I have some workarounds in place that I'd like to remove since they suppress linker coalescing of some constant strings. Would anyone object to us requiring using Xcode 7.3 to develop Swift for OS X and other Apple platforms? If not, we could conditionalize the workarounds behind a flag, though that's additional complexity and testing surface I'd like to avoid.

-Joe


(Ted Kremenek) #2

Hi Grant,

On OS X generally speaking we plan on staying with the latest released tools. It simplifies the development model and allows the project to take advantage of advances in the toolchain. Unless there is a strong compelling reason, we don't wish to hold Swift development back when there are released versions of the tools that provide necessary functionality to move Swift forward.

The other pragmatic reality is that it takes bandwidth and resources to actively maintain that Swift works on older toolchains. Within Apple, we're always working on the next generation of the tools as well, and as Swift develops we are actively working on maintaining Swift working on the latest released Xcode but also the one in development. Supporting an older Xcode would be something I don't think we reasonably could support.

Is your main objection here based on principle that Swift should be able to be always built from from-source toolchains on Darwin, or something else?

Ted

···

On Apr 3, 2016, at 9:34 PM, Grant Paul via swift-dev <swift-dev@swift.org> wrote:

The latest available version of the Darwin linker (ld64) on opensource.apple.com is the version from Xcode 7.0. It would be great if Swift master didn’t depend on new linker functionality until a newer version of the linker source is available with the fix, so Swift could be compiled with from-source toolchains.

Grant

Xcode 7.3 included a fix for the Apple linker that's necessary to support some of the metadata format changes we're making in Swift 3. I have some workarounds in place that I'd like to remove since they suppress linker coalescing of some constant strings. Would anyone object to us requiring using Xcode 7.3 to develop Swift for OS X and other Apple platforms? If not, we could conditionalize the workarounds behind a flag, though that's additional complexity and testing surface I'd like to avoid.

-Joe

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