> On Jul 4, 2016, at 5:32 PM, Andrew Trick via swift-evolution > <swift-evolution@swift.org> wrote: > > >> On Jun 28, 2016, at 11:05 PM, Chris Lattner <clatt...@apple.com >> <mailto:clatt...@apple.com>> wrote: >> >> Hello Swift community, >> >> The review of “SE-0107: UnsafeRawPointer API” begins now and runs through >> July 4, 2016. The proposal is available here: >> >> >> https://github.com/apple/swift-evolution/blob/master/proposals/0107-unsaferawpointer.md >> >> <https://github.com/apple/swift-evolution/blob/master/proposals/0107-unsaferawpointer.md> > >
I'm revising this proposal based on last week's feedback. A few of the additive APIs are removed and a number of UnsafePointer and UnsafeRawPointer methods are renamed. Here is a PR for the revision. Note that the examples in the proposal text still need to be updated: https://github.com/apple/swift-evolution/pull/420 I updated the short-form summary of the API: https://github.com/atrick/swift-evolution/blob/3122ace9d2fb55072ebd7395c7353fcbf497318a/proposals/0107-unsaferawpointer.md#full-unsaferawpointer-api The full UnsafeRawPointer API with doc comments is here: https://github.com/atrick/swift/blob/22e3a2885e4236888ec447a7148acf633d8544f5/stdlib/public/core/UnsafeRawPointer.swift.gyb The UnsafePointer and UnsafeRawPointer changes are on this branch: https://github.com/atrick/swift/commits/rawptr If you wish to comment line-by-line on the detailed docs or implementation, you can do so here: https://github.com/apple/swift/pull/3437 --- I should preemptively answer the question "why do UnsafeRawPointer methods take an explicit type argument when it can be inferred?". Such as: rawPtr.initializeMemory(as: Int.self, ...) These methods don't simply operate on values of some type, they actively bind memory to that type. At the point of use, that type needs to be explicit to convey that fact. It's important for readability, comprehension, and correctness. We cannot rely on type inferrence on some expression which can change without the original author's intervention resulting in subtle miscompiles. --- The only concern I have about this version of the proposal is this method name: func copyBytes(from: UnsafeRawPointer, count: Int) because `count` usually refers to a number of values. I think it should be: func copy(bytes: Int, from: UnsafeRawPointer) -Andy
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution