<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Jul 1, 2016 at 12:03 AM, Dave Abrahams via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class=""><br>
on Thu Jun 30 2016, John McCall &lt;rjmccall-AT-apple.com&gt; wrote:<br>
<br>
&gt;&gt; On Jun 30, 2016, at 6:12 PM, Dave Abrahams via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br>
</span><div><div class="h5">&gt;&gt; on Thu Jun 30 2016, Matthew Johnson &lt;matthew-AT-anandabits.com &lt;<a href="http://matthew-at-anandabits.com/" rel="noreferrer" target="_blank">http://matthew-at-anandabits.com/</a>&gt;&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; Sent from my iPad<br>
&gt;&gt;&gt;<br>
&gt;<br>
&gt;&gt;&gt;&gt; On Jun 30, 2016, at 6:59 PM, Erica Sadun via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; On Jun 30, 2016, at 5:47 PM, James Berry &lt;<a href="mailto:jberry@rogueorbit.com">jberry@rogueorbit.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; On Jun 30, 2016, at 4:05 PM, Dave Abrahams via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt; on Thu Jun 30 2016, Erica Sadun &lt;erica-AT-ericasadun.com&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; On Jun 30, 2016, at 4:41 PM, Dave Abrahams &lt;<a href="mailto:dabrahams@apple.com">dabrahams@apple.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; I mentioned this in a comment on the gist already, but I&#39;m really not<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; digging the &quot;array&quot; in `arraySpacing`. We&#39;ve already moved from top-level<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &quot;stride&quot; to &quot;memory layout spacing,&quot; gaining plenty of clarity. I&#39;m<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; skeptical that the &quot;array&quot; adds anything more. Moreover, it muddies the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; waters by mentioning a specific type (Array) in a context where you&#39;re<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; querying the memory layout properties of another type.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; OK, I agree with that.  If we have “alignment” rather than<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; “defaultAlignment,” I suppose we can have plain “spacing.”<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; No way to last-second sell you on interval rather than spacing?<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; If you can explain why it&#39;s better.<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; // Returns the least possible interval between distinct instances of<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; /// `T` in memory.  The result is always positive.<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; For me, “interval” doesn&#39;t go with “size” and “alignment,” which are all<br>
&gt;&gt;&gt;&gt;&gt;&gt; about physical distances and locations.  There are all kinds of<br>
&gt;&gt;&gt;&gt;&gt;&gt; “intervals,” e.g. time intervals.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Hmm. Sounds like stride to me. stride or byteStride?<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; James<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; FAQ: &quot;Why aren&#39;t you using the obvious phrase `stride` for something that clearly<br>
&gt;&gt;&gt;&gt; returns the memory stride?&quot;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; ANSWER: &quot;As stride already has a well-established meaning in the standard library,<br>
&gt;&gt;&gt;&gt; this proposal changes the name to spacing, providing a simple but correct name that<br>
&gt;&gt;&gt;&gt; works well enough in its intended use. Measuring memory is sufficiently esoteric<br>
&gt;&gt;&gt;&gt; that we prefer to reserve `stride` for a more common use case.&quot;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Counter: some words have more than one well established meaning when<br>
&gt;&gt;&gt; used in different contexts.  &#39;spacing&#39; isn&#39;t too bad here (much better<br>
&gt;&gt;&gt; than &#39;arraySpacing&#39;) but sticking to the term of art &#39;stride&#39; would be<br>
&gt;&gt;&gt; best IMO.  As James mentioned, spacing implies empty space *between*<br>
&gt;&gt;&gt; items whereas stride matches the meaning of this property *exactly*<br>
&gt;&gt;&gt; (which is why it is the term of art).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; If a programmer can&#39;t distinguish between a &#39;stride&#39; property on<br>
&gt;&gt;&gt; MemoryLayout and the &#39;stride&#39; function they probably have no business<br>
&gt;&gt;&gt; doing anything which requires use of MemoryLayout in the first place.<br>
&gt;&gt;<br>
&gt;&gt; I don&#39;t believe that “stride” *is* the accepted term of art for this<br>
&gt;&gt; meaning.  I never heard of the idea of types having an intrinsic<br>
&gt;&gt; “stride” until I arrived on the Swift project.  That usage came from<br>
&gt;&gt; “strideof.”<br>
&gt;&gt;<br>
&gt;&gt; If you all swear up and down that you&#39;ve been talking about “the stride<br>
&gt;&gt; of a type” for more than 2 years, I won&#39;t fight you on this.<br>
&gt;&gt; Otherwise... well, I still won&#39;t fight; I&#39;m being crushed by an<br>
&gt;&gt; avalanche of bikesheds and I can&#39;t muster the energy ;-&gt;... but I&#39;ll<br>
&gt;&gt; forever be plagued by doubts about the name.<br>
&gt;<br>
&gt; As the person who originally picked &quot;stride&quot; here, I agree that I&#39;ve never<br>
&gt; heard of people talking about the &quot;stride&quot; of a type; people talk about striding<br>
&gt; over an array, and they talk about the size of one&#39;s stride, and that size<br>
&gt; can be measured in bytes.  That&#39;s all I was thinking.<br>
&gt;<br>
&gt; However, I was just picking a name for an internal implementation concept;<br>
&gt; I did not expect it to be used in the standard library.<br>
&gt;<br>
&gt; I don&#39;t really like &quot;spacing&quot;; it sounds too much like a synonym for &quot;padding&quot;,<br>
&gt; i.e. the amount of empty space between elements rather than the total amount<br>
&gt; of space for each element.  But I don&#39;t mean to re-open wounds; if people<br>
&gt; have settled on &quot;spacing&quot;, have at it.<br>
<br>
</div></div>Better names are always welcome if you can come up with one.<br></blockquote><div><br></div><div>FWIW, courtesy of the thesaurus, curated to eliminate clearly unsuitable words:<br><div>breadth, dimension, expanse, interval, period, space, span, stretch, width</div></div><div><br></div><div>Of these, span might be the most OK.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div class=""><div class="h5"><br>
--<br>
Dave<br>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</div></div></blockquote></div><br></div></div>