HHVM 4.31.0
HHVM 4.31 is released! This release marks the end of support for 4.25; 4.26–4.30 remain supported, as do the LTS releases 3.30 and 4.8.
Highlights
- Added new
HH\Lib\SQL\Queryobject, andAsyncMysqlConnection::queryAsync()method; this is an alternative to::queryf().Queryobjects:- are constructed with a
queryf-style format string and a list of parameters - accept
vec<>s instead ofVector<>s - add support for the
%Qplaceholder, which accepts anotherQueryobject; this allows much more flexibility, such as concatenating queries with$ab = new Query('%Q %Q', $a, $b)
- are constructed with a
- Fixed incorrect ‘out of memory’ errors in
hh_serverwhenposix_fallocatefails withEINTR
Breaking Changes
- Removed typechecker special-casing of
HH\Tuple\from_async()andHH\Asio\va(); ideally, these should be replaced withconcurrentblocks, or, if a tuple is actually desired,tuple(await foo(), await bar())can be used instead - Removed
HH\Asio\va()’s typechecker definition as it is no longer useful ldap_mod_(del|replace|modify)now take adarrayentry argument- the
(unset)cast has been removed. Use thenullliteral instead unserialize()ing a PHP array will now create avarrayordarray