> On Sep 6, 2017, at 7:01 PM, Andrew Trick <[email protected]> wrote:
>
>
>>> On Sep 6, 2017, at 4:54 PM, Taylor Swift <[email protected]> wrote:
>>>
>>> The semantics of buffer.deallocate() needs to be: free `buffer.count` bytes
>>> of memory at `buffer.baseAddress`. So, that will always be the fast path!
>>> Kelvin, do you agree with that?
>>
>> this could be problematic if you have multiple contiguous buffers carved out
>> of the same heap block. i agree that this is the best semantics for buffer
>> pointers but we need the sized backend in Swift before this is possible else
>> we will end up in the same boat we’re in right now with
>> `deallocate(capacity:)` where we would have to make buffer deallocate heap
>> block-based for now and then pull the rug out from underneath users later in
>> order to switch to the improved semantics
>
> If I understand your proposal, it’s only valid to deallocate a buffer that
> was allocated with the same capacity. Anything else should assert.
> -Andy
the proposal isn’t specific enough there and that’s my fault but this seems
like a good solution. in the future if we get a sized backend we can loosen the
assertions and make the partial heap block buffer case defined behavior.
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution