HHVM 4.87
HHVM 4.87 is released! HHVM 4.81–4.86 remain supported, as do the 4.56 and 4.80 LTS releases.
Highlights
- Packages for Ubuntu 20.10 are now available.
- The built-in functions
apc_add
andapc_store
now take a 4th, optional argument. If this argument is provided, then the value stored in APC will be evicted if it’s not accessed for the specified number of seconds (even if the TTL specified in the previous argument hasn’t been reached yet). - Improved various typechecker error messages.
Breaking Changes
- The
.hhconfig
optiondisallow_goto
was removed—it is no longer possible to enablegoto
statements. It had beentrue
by default in all recent HHVM versions. - Indexing into a string using a non-
arraykey
value (notint
orstring
) now causes anInvalidArgumentException
to be thrown at runtime. String indexes like'42'
stay supported for historical reasons, but generally shouldn’t be used. Using any non-int
value, includingstring
s, had already been a typechecker error.
Future Changes
ArrayIterator
and all the collections’ iterators (VectorIterator
,MapIterator
, etc.) are deprecated. Most use cases can be replaced byforeach
loops, which HHVM can also optimize in the JIT. For the remaining cases, the current implementation can be replicated in pure Hack code.- There are a few behaviors, like “casting to array” and serialization, where the runtime treats these classes specially; those won’t be supported going forward.