This week brought us Xcode 7.3 beta2 — the first official Xcode release that bundles Swift 2.2 and includes contributions from the Swift.org open source community! I never thought I would see release notes like this. It really is incredible to see community-driven changes in the What’s New sections with links to GitHub. Clearly, the next big step for Apple should be open sourcing Xcode. 😉
Did you notice the new swift-integration-tests repository on GitHub? According to the history it looks like this repo has been around since the initial open source announcement, but until now has been private. As you might guess, it includes tests. More specifically, “Automated tests for validating the generated Swift snapshots behave correctly”.
But wait, there’s more!
Another new repository appeared over the past week, swift-internals. It contains this site. According to the welcome page, the site “hosts internal documentation for the Swift compiler and standard library, as well as the development version of the Swift API Guidelines.”. 😦 Unfortunately, it only contains the API guidelines at the moment. Documentation for the Swift compiler sounds like it would be great for contributors. Also, does this mean Nate Cook can shutdown SwiftDoc.org? 😄
Commits and pull requests
Doug Gregor also implemented SE-0022, “Referencing the Objective-C selector of a method”. (Yes, it was accepted.) No more stringly-typed Objective-C selectors! I enjoyed the live tweeting experience. 😂 You can check out the commits here: dccf315, 7c0e087, 89834f8, f7407f6.
Brian Gesiak submitted a pull request that implements the asynchronous testing API in corelibs-xctest. It mirrors the Objective-C XCTest API, adding the familiar methods
Nate Cook added an in-place merge sort to the standard library. From the description: “This sort algorithm is both stable and offers a significant speed increase (1.5x-10x or more) in many common sorting scenarios.” 😎
William Dillon added support for ARMv6 (original Raspberry Pi) and fixed some ARMv7 bugs.
@tinysun212 started a port to cygwin.
Brian Croom submitted a pull request to corelibs-xctest to discuss compatibility between Darwin XCTest and corelibs-xctest.
This proposal aims to eliminate Swift’s screaming snake case like
__FUNCTION__and replacing instances with a common octothorpe-prefixed lower camel case
The following three proposals are now under review. These proposals are related and thus the reviews are running concurrently:
- SE-0023, API Design Guidelines
- SE-0006, Apply API Guidelines to the Standard Library
- SE-0005, Better Translation of Objective-C APIs Into Swift
Nicole Jacque notes that there is a new snapshot naming format. From now on, development version snapshots will begin with
swift-DEVELOPMENT-SNAPSHOT to clearly distinguish between release snapshots.
Dmitri Gribenko investigated and greatly reduced
StdlibUnittest build time.
StdlibUnittest is an internal library that is used to write tests for the stdlib, parts of the runtime, and the compiler.
But there is an issue: today, StdlibUnittest takes a long time to build. […]
These time measurements show that the build time of the combined module is greater than the sum of the build times of the pieces, and much more so when the optimization is turned on. We can make a conjecture that the optimizer is not scaling well with the module size.
And finally — if you feel like Swift is changing too fast or if you are simply interested in trying something new, may I suggest TrumpScript? 😂 Let’s make programming great again.™