Skip to content

Releases: orxfun/orx-priority-queue

Dual license

06 Feb 10:15
48de51b
Compare
Choose a tag to compare
Merge pull request #34 from orxfun/dual-license-crates

dual-license-crates

Dual license

05 Feb 20:36
e883b1f
Compare
Choose a tag to compare
Merge pull request #33 from orxfun/dual-license

dual-license

Type alias typo in Quarternary is fixed as Quaternary

29 Aug 21:05
1adc3de
Compare
Choose a tag to compare
Merge pull request #21 from orxfun/type-alias-quaternary

type alias quaternary

Remove initialized memory for offset elements

29 Aug 20:50
d2c91ea
Compare
Choose a tag to compare
  • Tree initialization is revised to establish miri safety:
    • miri tests on the prior versions failed due to the uninitialized data in the first offset elements of the vector backing the tree. Note that the implementation guarantees that these elements are never accessed.
    • One potential solution to avoid uninitialized elements was to require Default or PseudoDefault for tree nodes. Most probably, this could have worked in most practical use cases. However, one exception is references. It might be considered a practical case where nodes are references, which would not implement neither Default or PseudoDefault.
    • Since we require Clone, another solution would be to fill the offset elements with the first ever pushed node to the queue. In other words, tree initialization is delayed until the first element is pushed. The concern on this was its potential impact of the additional "is backing vector empty" check on push methods. However, benchmarks show that this check does no measurable impact on the performance.
    • Since the latter solution does not add a trait requirement on keys or values, and since it does not degrade performance, it is implemented in this PR.
    • With the updated & delayed tree initialization without assume_init, all miri tests pass.
  • Minor fix in no-std configurations.
  • Benchmark runs are repeated.
  • Documentation is revised.