Dynamic array and slices (need Walter and Andrei decision)
deadalnix
deadalnix at gmail.com
Thu May 30 11:46:16 PDT 2013
On Thursday, 30 May 2013 at 18:25:08 UTC, Maxim Fomin wrote:
> In neighbor thread (especially from 5 page
> http://forum.dlang.org/thread/mailman.175.1369540733.13711.digitalmars-d@puremagic.com?page=5)
> there is discussion about current state of definitions in D
> related to slices, slice expressions and arrays. There is
> significant contradiction between documentation in different
> parts of the D site and people who interpret it.
>
> Problem boils down to following:
>
> - in array and type official spec page, dynamic array is
> defined as T[] type as "Dynamic arrays consist of a length and
> a pointer to the array data.". The page also describes what
> slicing is. Also expression page defines what SliceExpression
> is. Internally dmd follows these conventions.
>
> - in articles part of the site there is article "D Slices"
> written by Steven Schveighoffer, which abolishes current
> relevant parts of current spec. According to the article,
> dynamic array is runtime managed memory which in implementation
> specific manner provides some set of operation related to
> arrays. According to the article T[] is by no means a dynamic
> array, but a slice. The article explicitly claims that spec is
> wrong.
>
> So, there is contradiction between what T[] is. Either it is a
> slice (and what is more important, not a dynamic array type)
> which point by druntime managed dynamic array, or is object of
> type dynamic array, which may point to heap or stack memory.
>
> Discussion shows that there is no clear consensus on this, so
> there is need for Walter and Andrei to comment on this.
An array IS a slice. A slice IS an array. Nothing contradict
anything.
More information about the Digitalmars-d
mailing list