std.experimental.collection.functional.slist

JDemler via Digitalmars-d digitalmars-d at puremagic.com
Thu Jun 18 17:01:14 PDT 2015


On Thursday, 18 June 2015 at 23:32:03 UTC, Andrei Alexandrescu 
wrote:
> First pass illustrating the basic data layout:
>
> http://dpaste.dzfl.pl/0d4a589ad6f5
>
> Code is obviously barebones but passes tests and works with 
> allocators.
>
> Notes:
>
> * I managed to not store one allocator per node, but there's 
> one allocator per range. That's needed if we want "orphan 
> ranges" to work, i.e. ranges that survive the list they came 
> from. This is a clasic convenience vs. efficiency thing.
>
> * There's a refcount per node because any given node may belong 
> to multiple lists.
>
> * Refcounting is interesting because many nodes are only used 
> by the previous node. So destroying a list is... funny. Never 
> saw or wrote code like this previously. See nukeTransitively.
>
> All in all things seem convex. Please destroy appropriately.
>
>
> Thanks,
>
> Andrei

Before being able to compile your code i have some very basic 
questions:

1. Where can I find 'std/experimental/allocator.d'? The compiler 
seems to want it and i cannot find it in either 
https://github.com/andralex/phobos/tree/allocator/std/experimental/allocator or https://github.com/D-Programming-Language/phobos/tree/master/std/experimental

2. What is the rationale behind a singly linked list? Or is it 
just to experiment with collections and allocators?


More information about the Digitalmars-d mailing list