[swift-evolution] [Review] SE-0101: Rename sizeof and related functions to comply with API Guidelines
Matthew Johnson
matthew at anandabits.com
Thu Jun 30 20:21:26 CDT 2016
> On Jun 30, 2016, at 8:12 PM, Dave Abrahams <dabrahams at apple.com> wrote:
>
>
> on Thu Jun 30 2016, Matthew Johnson <matthew-AT-anandabits.com <http://matthew-at-anandabits.com/>> wrote:
>
>> 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.
>
> I don't believe that “stride” *is* the accepted term of art for this
> meaning. I never heard of the idea of types having an intrinsic
> “stride” until I arrived on the Swift project. That usage came from
> “strideof.”
>
> If you all swear up and down that you've been talking about “the stride
> of a type” for more than 2 years, I won't fight you on this.
> Otherwise... well, I still won't fight; I'm being crushed by an
> avalanche of bikesheds and I can't muster the energy ;->... but I'll
> forever be plagued by doubts about the name.
I was just throwing in my 2 cents and planned to leave it at that. The primary reason I chimed in is because I didn’t find the rationale in the “answer” compelling. This isn’t something I feel like bike shedding any further over either.
https://en.wikipedia.org/wiki/Stride_of_an_array
Maybe stride isn’t as common as I thought it was (if it was I’m sure you would have heard of it before Swift) but it certainly predates Swift in usage.
-Matthew
>
> --
> Dave
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160630/1c383070/attachment.html>
More information about the swift-evolution
mailing list