digitalmars.D - .NET introduces Span<T>, basically D slices
- =?UTF-8?B?THXDrXM=?= Marques (5/5) Nov 18 2017 https://github.com/dotnet/corefxlab/blob/master/docs/specs/span.md
- Walter Bright (3/8) Nov 18 2017 It's on hackernews too.
-
Rumbu
(6/11)
Nov 19 2017
Sorry to disappoint, but Span
is something else. The .net - Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (7/12) Nov 19 2017 Seems to be a C# version of C++ gsl::span:
-
flamencofantasy
(8/20)
Nov 21 2017
Actually Span
is a lot more like D slices in that it can use - Guy (4/27) Nov 25 2017 It's funny you say that because they just announced the
- Ola Fosheim Grostad (8/10) Nov 26 2017 Well, basic dataflow pipelines with implicit transfer of buffer
https://github.com/dotnet/corefxlab/blob/master/docs/specs/span.md Seems like D wisdom is creeping in. For instance, the Data Pipelines section basically explains why ranges/slices and algorithms are nice and relevant: <https://github.com/dotnet/corefxlab/blob/master/docs/specs/span.md#data-pipelines>
Nov 18 2017
On 11/18/2017 6:16 PM, Luís Marques wrote:https://github.com/dotnet/corefxlab/blob/master/docs/specs/span.md Seems like D wisdom is creeping in. For instance, the Data Pipelines section basically explains why ranges/slices and algorithms are nice and relevant: <https://github.com/dotnet/corefxlab/blob/master/docs/specs/span.md#data-pipelines>It's on hackernews too. https://news.ycombinator.com/
Nov 18 2017
On Sunday, 19 November 2017 at 02:16:36 UTC, Luís Marques wrote:https://github.com/dotnet/corefxlab/blob/master/docs/specs/span.md Seems like D wisdom is creeping in. For instance, the Data Pipelines section basically explains why ranges/slices and algorithms are nice and relevant: <https://github.com/dotnet/corefxlab/blob/master/docs/specs/span.md#data-pipelines>Sorry to disappoint, but Span<T> is something else. The .net equivalent of D slices is in fact the not so popular ArraySegment<T> available in .net since 2008. Span<T> will allow access to unmanaged and stack memory in the same way as using a standard array.
Nov 19 2017
On Sunday, 19 November 2017 at 14:46:32 UTC, Rumbu wrote:Sorry to disappoint, but Span<T> is something else. The .net equivalent of D slices is in fact the not so popular ArraySegment<T> available in .net since 2008. Span<T> will allow access to unmanaged and stack memory in the same way as using a standard array.https://github.com/Microsoft/GSL/blob/master/include/gsl/span But yes, as I understand it, it will only allow shrinking the view, so it is a proper pointer-like type with sub-typing like behaviour. It might appear in C++20 as array_view eventually… not sure.
Nov 19 2017
On Sunday, 19 November 2017 at 14:46:32 UTC, Rumbu wrote:On Sunday, 19 November 2017 at 02:16:36 UTC, Luís Marques wrote:Actually Span<T> is a lot more like D slices in that it can use any type of memory. ArraySegment<T> can only be initialized with an array type and thus is very far from being like a D slice. I use D slices exclusively with non-GC memory or mapped files and similarly I can now make use of Span<T> but I was never able to employ ArraySegment<T>.https://github.com/dotnet/corefxlab/blob/master/docs/specs/span.md Seems like D wisdom is creeping in. For instance, the Data Pipelines section basically explains why ranges/slices and algorithms are nice and relevant: <https://github.com/dotnet/corefxlab/blob/master/docs/specs/span.md#data-pipelines>Sorry to disappoint, but Span<T> is something else. The .net equivalent of D slices is in fact the not so popular ArraySegment<T> available in .net since 2008. Span<T> will allow access to unmanaged and stack memory in the same way as using a standard array.
Nov 21 2017
On Tuesday, 21 November 2017 at 19:39:19 UTC, flamencofantasy wrote:On Sunday, 19 November 2017 at 14:46:32 UTC, Rumbu wrote:It's funny you say that because they just announced the introduction of ranges and I believe they return Spans.On Sunday, 19 November 2017 at 02:16:36 UTC, Luís Marques wrote:Actually Span<T> is a lot more like D slices in that it can use any type of memory. ArraySegment<T> can only be initialized with an array type and thus is very far from being like a D slice. I use D slices exclusively with non-GC memory or mapped files and similarly I can now make use of Span<T> but I was never able to employ ArraySegment<T>.https://github.com/dotnet/corefxlab/blob/master/docs/specs/span.md Seems like D wisdom is creeping in. For instance, the Data Pipelines section basically explains why ranges/slices and algorithms are nice and relevant: <https://github.com/dotnet/corefxlab/blob/master/docs/specs/span.md#data-pipelines>Sorry to disappoint, but Span<T> is something else. The .net equivalent of D slices is in fact the not so popular ArraySegment<T> available in .net since 2008. Span<T> will allow access to unmanaged and stack memory in the same way as using a standard array.
Nov 25 2017
On Sunday, 26 November 2017 at 05:36:15 UTC, Guy wrote:It's funny you say that because they just announced the introduction of ranges and I believe they return Spans.Well, basic dataflow pipelines with implicit transfer of buffer ownership. So it is a language feature with implicit RAII lifetime management, which is why Span is limited to the stack. Then they have a counterpart to Span called Memory that can be stored on th GC heap. A reasonable tradeoff, but a general constraint would have been more interesting.
Nov 26 2017