Skip to content

Releases: TysonAndre/pecl-teds

1.3.0

10 Nov 13:41
1f053e5
Compare
Choose a tag to compare
  • Optimize Teds\Deque insert() and offsetUnset() calls with offsets when they're closer
    to the front of the deque than the end of the Deque.
  • Add Teds\strict_equals($v1, $v2): bool with stricter NAN handling than ===.
  • Regenerate function arginfo with namespaced C symbols from stub.php files.

1.2.8

27 Oct 01:03
Compare
Choose a tag to compare
  • Same as 1.2.7 other than the version and tests folder.
  • Update expected test output of the unit test tests/misc/strict_hash_array_recursion_32bit.phpt

1.2.7

22 Oct 04:50
6dfb2a3
Compare
Choose a tag to compare
  • Fix an edge case in Teds\strict_hash for different arrays with reference cycles
    where php's strict equality operator would return true: '==='.
    (and for Teds\unique_values, Teds\StrictHashSet, and Teds\StrictHashMap)
    '$x === $y' should now always imply that 'Teds\strict_hash($x) === Teds\strict_hash($y)'

1.2.6

11 Oct 11:42
856d8a1
Compare
Choose a tag to compare
  • Fix a build warning in clang for placeholders indicating that a data structure was constructed/unserialized.
  • Fix a build warning after change to expected return type of count_elements object handler implementation.

1.2.5

10 Oct 20:32
Compare
Choose a tag to compare
  • Reduce memory usage by refactoring the way properties/fields of data structures are returned, for var_export/var_dump/debug_zval_dump/array type casts/serialize.
    In php 8.3+, this should reduce the impact of calling var_export/var_dump/debug_zval_dump on memory usage, and avoid the side effect of keeping around references to fields after those calls..
    In all php versions, consistently return temporary arrays for remaining data structures in serialize() and array type casts that will be freed after being used.

1.2.4

14 Aug 18:36
f7b646a
Compare
Choose a tag to compare
  • Fix test failures/deprecation notices seen in PHP 8.2.

1.2.3

06 Mar 21:38
b66df6e
Compare
Choose a tag to compare
  • Make pop() on Sequences affect iterators the same way that $o->offsetUnset(count($o) - 1) would.
    (Move iterators pointing to the removed entry backwards by 1)
  • Make pop() on MutableIterable move iterators pointing to that entry backwards.
  • Properly convert references to non-references in some Collection constructors/unserializers and Teds\unique_values()

1.2.2

06 Mar 17:39
1478552
Compare
Choose a tag to compare
  • Fix bugs in Teds\StrictHashSet/Teds\StrictHashMap iteration behavior.
  • Fix bug constructing balanced tree in Teds\StrictTreeSet/Teds\StrictTreeMap from array/unserializing, where certain sizes resulted in trees not maintaining the balancing invariant.
  • Fix bug when constructing Teds\IntVector from array when promoting type but not keeping reserved capacity.
  • Fix bugs in Teds\StrictSortedVectorSet::__construct

1.2.1

05 Mar 16:34
Compare
Choose a tag to compare
  • Update documentation
  • Make iteration of Teds\StrictSortedVectorSet and Teds\StrictSortedVectorMap account for removals and additions.
  • Make removal in Teds\StrictTreeSet and Teds\StrictTreeMap move iterators to the previous node if the iterator pointed to the removed node.
    Add a state for iterators being prior to the start of the tree.
    Use the state of being before the first value of the tree when calling InternalIterator::rewind on an empty tree or removing an iterator pointing to the first value in a tree.
  • Make repacking/removals in Teds\StrictHashSet and Teds\StrictHashMap move InternalIterator positions.
  • Change iteration behavior of Teds\Deque to be like Vector, make shift/pop behave the same way as offsetUnset with respect to iteration.
    (If the iterator is moved to be before the start of the deque, calling next will move it to the front, and other changes to the Deque will have no effect)

1.2.0

04 Mar 02:22
Compare
Choose a tag to compare
  • Add Teds\SortedIntVectorSet - a Set implementation represented in a way similar to an Teds\IntVector with unique sorted integers.
    (This may be useful for reducing memory usage and speeding up unserialization, when unserializing large Sets of integers which change infrequently. See benchmarks/benchmark_vector_unserialize.php)
  • Add Teds\ImmutableSortedStringSet - an immutable Set implementation containing a list of unique strings sorted with strcmp.
    (This may be useful for reducing memory usage and speeding up unserialization, when unserializing large Sets of strings which change infrequently to check values for membership in a Set. See benchmarks/benchmark_string_set.php)
  • Add Teds\ImmutableSortedIntSet - an immutable Set implementation containing a list of unique integers sorted by increasing value.
    (This may be useful for reducing memory usage and speeding up unserialization, when unserializing large Sets of integers which change infrequently to check values for membership in a Set.)
  • Rename Teds\BitSet to Teds\BitVector and add an alias
  • Add Teds\Sequence::insert(int $offset, mixed ...$values) to the Sequence interfaces and implementations
  • Add first/last to the Teds\Sequence interface.
  • Fix edge cases with var_export/var_dump/debug_zval_dump and cyclic data structures in debug builds and php 8.2.0-dev.
  • Make iteration account for offsetUnset/insert/shift/unshift in Sequences.