Releases: TysonAndre/pecl-teds
Releases · TysonAndre/pecl-teds
1.3.0
- 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
- 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
- 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
- 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
- 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
- Fix test failures/deprecation notices seen in PHP 8.2.
1.2.3
- 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
- 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
- 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
- Add
Teds\SortedIntVectorSet
- a Set implementation represented in a way similar to anTeds\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
toTeds\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.