<commit_before>---
layout: post
title: ! 'Issue #24'
author: jsq
---

Welcome to issue #24! As noted last week, the first Swift 3 preview branch was cut and now there's a [Swift 3.0 Preview 1](https://github.com/apple/swift/milestones/Swift%203.0%20Preview%201) milestone on GitHub tracking pull requests to be included. Currently there are 34 closed and 13 open.

In other news, Apple also released new betas for [iOS](https://developer.apple.com/news/?id=05232016c), [tvOS](https://developer.apple.com/news/?id=05232016b), and [OS X](https://developer.apple.com/news/?id=0232016a).

<!--excerpt-->

### Starter tasks

{% include task_remind.html %}

### Commits and pull requests

<NAME> [fixed](https://github.com/apple/swift-corelibs-foundation/pull/380) a memory leak in `NSMutableData` and `NSData` in corelibs-foundation.

<NAME> [merged](https://github.com/apple/swift-corelibs-foundation/pull/378) changes to remove the use of `OpaquePointer` in corelibs-foundation, for [SE-0017](https://github.com/apple/swift-evolution/blob/master/proposals/0017-convert-unmanaged-to-use-unsafepointer.md).

<NAME> [implemented](https://github.com/apple/swift/pull/2640) proposal [SE-0062](https://github.com/apple/swift-evolution/blob/master/proposals/0062-objc-keypaths.md), *Referencing Objective-C key-paths*.

<NAME> added [Objective-C support](https://github.com/apple/swift-package-manager/pull/360) and [C++ support](https://github.com/apple/swift-package-manager/pull/362) to ClangModules for SwiftPM.

### Accepted proposals

<NAME>'s proposal, [SE-0088](https://github.com/apple/swift-evolution/blob/master/proposals/0088-libdispatch-for-swift3.md): *Modernize libdispatch for Swift 3 naming conventions*, was [accepted](https://lists.swift.org/pipermail/swift-evolution-announce/2016-May/000163.html) **with revisions** for Swift 3.

> The community and core team are both very positive about this massive improvement to the libdispatch APIs.  Much of the discussion has centered around specific details in the proposal - for example the “.asynchronously” method on `DispatchQueue`.  This great discussion leads to several requested revisions in the proposal:
>
> - Rename the `DispatchQueue.[a]synchronously` methods to ".async” and ".sync”, to follow the term of art.
> - Rename `DispatchIO` `setHighWater`, `setLowWater` --> `setLimit(highWater:)`, `setLimit(lowWater:)`
> - Rename `setTargetQueue(queue:)` and `DispatchSource.setTimer`
> - Rename Semaphore, Group and WorkItem: `.wait(timeout:)` --> `wait()` and `wait(withTimeout:)`
> - Expand source handler methods to take the same arguments as `async()`
> - Expand `DispatchQueue.after` to take the same arguments as `async()` in addition to the `when:` argument
>
> Thank you to <NAME> proposing this, and for all of the implementation work that has gone into this so far!

### Amended proposals

Proposal [SE-0022](https://github.com/apple/swift-evolution/blob/master/proposals/0022-objc-selectors.md): *Referencing the Objective-C selector of a method* has been [amended](https://lists.swift.org/pipermail/swift-evolution-announce/2016-May/000164.html). You can find the diff [here](https://github.com/apple/swift-evolution/commit/1dfd6cd4fc2e9874d5db8aef6a5f41d6556b2ca2).

> <NAME>, who undertook the work to implement the related proposal [SE-0064](https://github.com/apple/swift-evolution/blob/master/proposals/0064-property-selectors.md), "Referencing the Objective-C selector of property getters and setters", noted that by accepting arbitrary expressions inside a `#selector` expression, we made it difficult to handle the getter and setter selector cases introduced by [SE-0064](https://github.com/apple/swift-evolution/blob/master/proposals/0064-property-selectors.md). It was not the original proposal's attempt to accept arbitrary expressions, only expressions that happened to form a valid method reference, and the amendment seeks to clarify this intent.
<commit_msg>[24] draft<commit_after>---
layout: post
title: ! 'Issue #24'
author: jsq
---

Welcome to issue #24! As noted last week, the first Swift 3 preview branch was cut and now there's a [Swift 3.0 Preview 1](https://github.com/apple/swift/milestones/Swift%203.0%20Preview%201) milestone on GitHub tracking pull requests to be included. Currently there are 34 closed and 13 open.

In other news, Apple also released new betas for [iOS](https://developer.apple.com/news/?id=05232016c), [tvOS](https://developer.apple.com/news/?id=05232016b), and [OS X](https://developer.apple.com/news/?id=0232016a).

<!--excerpt-->

### Starter tasks

{% include task_remind.html %}

### Commits and pull requests

<NAME> [fixed](https://github.com/apple/swift-corelibs-foundation/pull/380) a memory leak in `NSMutableData` and `NSData` in corelibs-foundation.

<NAME> [submitted](https://github.com/apple/swift-corelibs-foundation/pull/381) a pull request to port corelibs-foundation to Cygwin.

<NAME> [merged](https://github.com/apple/swift-corelibs-foundation/pull/378) changes to remove the use of `OpaquePointer` in corelibs-foundation, for [SE-0017](https://github.com/apple/swift-evolution/blob/master/proposals/0017-convert-unmanaged-to-use-unsafepointer.md).

<NAME> [implemented](https://github.com/apple/swift/pull/2640) proposal [SE-0062](https://github.com/apple/swift-evolution/blob/master/proposals/0062-objc-keypaths.md), *Referencing Objective-C key-paths*.

<NAME> added [Objective-C support](https://github.com/apple/swift-package-manager/pull/360) and [C++ support](https://github.com/apple/swift-package-manager/pull/362) to ClangModules for SwiftPM.

### Accepted proposals

<NAME>'s proposal, [SE-0088](https://github.com/apple/swift-evolution/blob/master/proposals/0088-libdispatch-for-swift3.md): *Modernize libdispatch for Swift 3 naming conventions*, was [accepted](https://lists.swift.org/pipermail/swift-evolution-announce/2016-May/000163.html) **with revisions** for Swift 3.

> The community and core team are both very positive about this massive improvement to the libdispatch APIs.  Much of the discussion has centered around specific details in the proposal - for example the “.asynchronously” method on `DispatchQueue`.  This great discussion leads to several requested revisions in the proposal:
>
> - Rename the `DispatchQueue.[a]synchronously` methods to ".async” and ".sync”, to follow the term of art.
> - Rename `DispatchIO` `setHighWater`, `setLowWater` --> `setLimit(highWater:)`, `setLimit(lowWater:)`
> - Rename `setTargetQueue(queue:)` and `DispatchSource.setTimer`
> - Rename Semaphore, Group and WorkItem: `.wait(timeout:)` --> `wait()` and `wait(withTimeout:)`
> - Expand source handler methods to take the same arguments as `async()`
> - Expand `DispatchQueue.after` to take the same arguments as `async()` in addition to the `when:` argument
>
> Thank you to <NAME> proposing this, and for all of the implementation work that has gone into this so far!

### Amended proposals

Proposal [SE-0022](https://github.com/apple/swift-evolution/blob/master/proposals/0022-objc-selectors.md): *Referencing the Objective-C selector of a method* has been [amended](https://lists.swift.org/pipermail/swift-evolution-announce/2016-May/000164.html). You can find the diff [here](https://github.com/apple/swift-evolution/commit/1dfd6cd4fc2e9874d5db8aef6a5f41d6556b2ca2).

> <NAME>, who undertook the work to implement the related proposal [SE-0064](https://github.com/apple/swift-evolution/blob/master/proposals/0064-property-selectors.md), "Referencing the Objective-C selector of property getters and setters", noted that by accepting arbitrary expressions inside a `#selector` expression, we made it difficult to handle the getter and setter selector cases introduced by [SE-0064](https://github.com/apple/swift-evolution/blob/master/proposals/0064-property-selectors.md). It was not the original proposal's attempt to accept arbitrary expressions, only expressions that happened to form a valid method reference, and the amendment seeks to clarify this intent.

{'fraction_non_alphanumeric': 0.12954658694569007, 'fraction_numerical': 0.03824115595416044, 'mean_word_length': 5.157208588957055, 'pattern_counts': {'":': 0, '<': 20, '<?xml version=': 0, '>': 46, 'https://': 37, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1659614', 'n_tokens_mistral': 2730, 'n_tokens_neox': 2368, 'n_words': 717}