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_addandapc_storenow 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
.hhconfigoptiondisallow_gotowas removed—it is no longer possible to enablegotostatements. It had beentrueby default in all recent HHVM versions. - Indexing into a string using a non-
arraykeyvalue (notintorstring) now causes anInvalidArgumentExceptionto be thrown at runtime. String indexes like'42'stay supported for historical reasons, but generally shouldn’t be used. Using any non-intvalue, includingstrings, had already been a typechecker error.
Future Changes
ArrayIteratorand all the collections’ iterators (VectorIterator,MapIterator, etc.) are deprecated. Most use cases can be replaced byforeachloops, 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.