Skip to content

Releases: orxfun/orx-linked-list

List made generic over pinned vectors

04 Oct 11:12
b1bc306
Compare
Choose a tag to compare

List made generic over pinned vectors. This is important as it allows certain data structures which has known size to use a FixedVec rather than a SplitVec. This is beneficial especially in small collections.

However, default type is set as the split-vec with recursive growth strategy. Therefore, although the type definition is extend by an additional generic parameter, the changes do not break the api.

Furthermore, pointers iterators are provided both for singly and doubly lists.

Equality implementations are extended for convenience.

Major Revision (v3)

16 Sep 15:51
40bd9b8
Compare
Choose a tag to compare

Following the major revision in the underlying self referential collection, the linked list is revised (see here).

  • The crate is converted into no_std.
  • Type signatures are simplified by removing the lifetime parameters.
  • Iterators are enhanced, ring and links iterators are introduced. Iterator performances are enhanced. Benchmarks are revised and results are reported.
  • Extend is implemented.
  • Capabilities of node indices are significantly enhanced:
    • more constant time access and mutation methods are introduced
    • the lists now implement Index and IndexMut
    • the lists can be sliced using the indices
  • Memory policies are simplified, it is made easy to transform the list into auto-reclaim or into lazy-reclaim mode.
  • FromIter and IntoIter are implemented.
  • Clone and Debug are implemented.
  • The issues with miri tests are fixed, now all tests pass.
  • Tests are extended.
  • Benchmarks are extended.
  • Examples are provided.

PinnedVec and implementors upgraded (3.3)

12 Aug 14:41
9fafd7b
Compare
Choose a tag to compare
Merge pull request #31 from orxfun/PinnedVec-and-implementors-upgrade…

…d-(3.3)

PinnedVec and implementors upgraded (3.3)

PinnedVec (2.11) and SelfRefCol (1.6) upgrade

15 Jun 20:58
f6684c3
Compare
Choose a tag to compare
Merge pull request #28 from orxfun/PinnedVec-(2.11)-and-SelfRefCol-(1…

….6)-upgrade

PinnedVec (2.11) and SelfRefCol (1.6) upgrade

orx-pinned-vec version updated to 2.7

07 Apr 18:26
f4d1ca5
Compare
Choose a tag to compare
Merge pull request #26 from orxfun/orx-pinned-vec-version-updated-to-2.7

orx-pinned-vec version updated to 2.7

Keeping `NodeIndex`es valid

16 Mar 21:26
69917d5
Compare
Choose a tag to compare
  • MemoryReclaimPolicy generic argument is added to the list variants Singly and Doubly. In the prior versions, all lists used MemoryReclaimOnThredhold as the memory reclaim policy. This policy is still the default policy. However, the user may prefer to use MemoryReclaimNever.
  • MemoryReclaimNever will make sure that the indices will always be valid.
  • node_utilization and reclaim_closed_nodes methods are exposed. This gives control to the the user to manually manage memory utilization. Note that these methods are crucial when MemoryReclaimNever is used.

Singly/Doubly and `SelfRefCol` migration

27 Feb 22:37
3792902
Compare
Choose a tag to compare
  • List can represent both Singly and Doubly variants.
  • List makes uses of SplitVec with Recursive growth strategy which enables zero-cost append.
  • Time complexities of methods are explicitly documented.
  • Performance improvements achieved.
  • retain and append methods are implemented.
  • Implementation is significantly simplified by using SelfRefCol.