[swift-evolution] [Review] SE-0101: Rename sizeof and related functions to comply with API Guidelines

Matthew Johnson matthew at anandabits.com
Thu Jun 30 19:12:56 CDT 2016



Sent from my iPad

> On Jun 30, 2016, at 6:59 PM, Erica Sadun via swift-evolution <swift-evolution at swift.org> wrote:
> 
> 
>>> On Jun 30, 2016, at 5:47 PM, James Berry <jberry at rogueorbit.com> wrote:
>>> 
>>> 
>>> On Jun 30, 2016, at 4:05 PM, Dave Abrahams via swift-evolution <swift-evolution at swift.org> wrote:
>>> on Thu Jun 30 2016, Erica Sadun <erica-AT-ericasadun.com> wrote:
>>> 
>>>>> On Jun 30, 2016, at 4:41 PM, Dave Abrahams <dabrahams at apple.com> wrote:
>>>>>> I mentioned this in a comment on the gist already, but I'm really not
>>>>>> digging the "array" in `arraySpacing`. We've already moved from top-level
>>>>>> "stride" to "memory layout spacing," gaining plenty of clarity. I'm
>>>>>> skeptical that the "array" adds anything more. Moreover, it muddies the
>>>>>> waters by mentioning a specific type (Array) in a context where you're
>>>>>> querying the memory layout properties of another type.
>>>>> 
>>>>> OK, I agree with that.  If we have “alignment” rather than
>>>>> “defaultAlignment,” I suppose we can have plain “spacing.”
>>>> 
>>>> No way to last-second sell you on interval rather than spacing?
>>> 
>>> If you can explain why it's better.
>>> 
>>>> // Returns the least possible interval between distinct instances of
>>>> /// `T` in memory.  The result is always positive.
>>> 
>>> For me, “interval” doesn't go with “size” and “alignment,” which are all
>>> about physical distances and locations.  There are all kinds of
>>> “intervals,” e.g. time intervals.
>> 
>> Hmm. Sounds like stride to me. stride or byteStride?
>> 
>> James
> 
> FAQ: "Why aren't you using the obvious phrase `stride` for something that clearly 
> returns the memory stride?"
> 
> ANSWER: "As stride already has a well-established meaning in the standard library,
> this proposal changes the name to spacing, providing a simple but correct name that
> works well enough in its intended use. Measuring memory is sufficiently esoteric
> that we prefer to reserve `stride` for a more common use case."

Counter: some words have more than one well established meaning when used in different contexts.  'spacing' isn't too bad here (much better than 'arraySpacing') but sticking to the term of art 'stride' would be best IMO.  As James mentioned, spacing implies empty space *between* items whereas stride matches the meaning of this property *exactly* (which is why it is the term of art).

If a programmer can't distinguish between a 'stride' property on MemoryLayout and the 'stride' function they probably have no business doing anything which requires use of MemoryLayout in the first place.

> 
> -- E
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160630/d6a82ed9/attachment.html>


More information about the swift-evolution mailing list