Community News: Latest PECL Releases (01.18.2022)
Latest PECL Releases:
Audiomack – https://audiomack.com
Open LMS – https://openlms.net
BlueHost – https://bluehost.com
Object Cache Pro for WordPress – https://objectcache.pro
Avtandil Kikabidze – https://github.com/akalongman
Zaher Ghaibeh – https://github.com/zaherg
BatchLabs – https://batch.com
Luis Zarate – https://github.com/jlzaratec
Fix a segfault in RedisArray::del [d2f2a7d9] (Pavlo Yatsukhnenko)
* Add Tedsarray_value_first(), Tedsarray_value_last()
* Add `Tedsstable_compare($v1, $v2): int` for a stable comparison function of arbitrary values. (see tests/misc/stable_compare.phpt).
Like strcmp, this returns a negative value for less than, and positive for greater than, and 0 for equality.
Note that php’s `<` operator is not stable. `’10‘ < ‚0a‘ < ‚1b‘ < ‚9‘ < ’10’`.
stable_compare fixes that by strictly ordering:
`null < false < true < int,float < string < array < object < resource`.
(objects and resources are compared by id, and arrays are compared recursively. Numbers are compared numerically. If an int is equal to a float, then the int is first)
(strings use strcmp)
* Make Deque iteration account for calls to shift/unshift tracking the position of the front of the Deque.
Calls to shift/unshift will do the following:
– Increase/Decrease the value returned by the iterator’s key() by the number of elements added/removed to/from the front of the Deque. (`$deque[$iteratorKey] === $iteratorValue` at the time the key and value are returned).
– Repeated calls to shift will cause valid() to return false if the iterator’s position ends up before the start of the Deque at the time iteration resumes.
– They will not cause the remaining values to be iterated over more than once or skipped.
– Basic Windows CI (build and test) @cmb69 (#154)
– Fix Windows builds @cmb69 (#153)
– Revert „Issue #150 – pass AST_RECURSE token to exec_recursive_descent()“ @mkaminski1988 (#152)
Dereference values to always get the underlying value @crocodele (#151)
– Added prefix to boost/context API names
– Optimized configure options
* Update test expectations for php 8.2.0-dev. Add `#[AllowDynamicProperties]` Attribute to some tests to avoid notices.
* In php 8.1+, make igbinary_unserialize check to see if an equivalent interned string already exists when unserializing object property names, array keys, and class names
and use that instead of creating a brand new string.
(This deliberately doesn’t create a new interned string if one doesn’t already exist.)
(Before this change, igbinary would deduplicate strings when serializing, but would not check if strings were interned by PHP itself when unserializing)
* Avoid debug build assertion failure for `HT_ASSERT_RC1` the same way as PHP’s unserialize – this is a case where ostensibly there are no other references to the array being unserialized.
* No new changes in 3.19.3