> On Aug 12, 2016, at 7:32 PM, Brent Royal-Gordon <br...@architechies.com> 
> wrote:
> 
>> On Aug 12, 2016, at 6:12 PM, Andrew Trick via swift-evolution 
>> <swift-evolution@swift.org> wrote:
>> 
>> This proposal adds basic usability for working with raw memory without 
>> breaking source. The need to provide higher level API for working with raw 
>> memory buffers has always been evident, but making improvements in this area 
>> depended on first introducing `UnsafeRawPointer`. It was not clear until the 
>> final week of source-breaking changes whether SE-0107 would make it into 
>> Swift 3. Now that it has, we should use the little remaining time to improve 
>> the migration experience and encourage correct use of the memory model by 
>> introducing a low-risk additive API.
>> 
>> Proposal:
>> 
>> https://github.com/atrick/swift-evolution/blob/unsafebytes/proposals/NNNN-UnsafeBytes.md
>> 
>> <NNNN-UnsafeBytes.md>
> 
> I've only read a little but so far, but: Is the difference between this and 
> UnsafeBufferPointer that it's built around a raw pointer rather than a bound 
> pointer? If so, would UnsafeRawBufferPointer be a better name?

Yes that’s exactly right. Semantically, reads or writes on `UnsafeBytes` are 
untyped memory accesses. So you can get bytes into or out of it without binding 
memory.

But as you’ll see from the interfaces and examples I’ve shown, 
`UnsafeMutableRawBufferPointer` would be a terrible name. There’s no reason 
from the user’s point of view to link this type to `UnsafeBufferPointer` and 
that names conveys no additionally useful information.  It’s often viewed as 
just a collection of Bytes and potentially an important type for a number of 
public interfaces.

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

Reply via email to