HHVM 4.170
HHVM 4.170 is released! 4.167 - 4.169 remain supported, as does the 4.168 and 4.153 LTS releases.
Highlights
- The typechecker now rejects calls to type_structure with an invalid type
as the first argument (e.g.
type_structure(MyCoolType::class, 'TUhOh')
whentype MyCoolType = shape(...)
Previously this was not flagged by the typechecker but would fatal at runtime. (commit) - The lint for using UNSAFE_CAST with too broad an input type now suggests an autofix. (commit)
Breaking Changes
- The Eval.EmitClassPointers runtime option has been removed. The previous
default behavior (option value 2;
Foo::class
expressions emit ‘lazy’ class pointers) is now the only supported behavior. (commit) - Removed support for referring to config values using a wildcard (e.g.
foo*bar = value
or*foobar* = value
in HDF configs. Adding values to a vector-typed config node such asMyVectorConfig.* = value
remains supported. (commit) - Remove support for hdf.loadpaths to specify paths to search when including other HDF configs. (commit)
A Note Regarding This Release
We are still working on a fix for https://github.com/facebook/hhvm/issues/9236 (inability to compile a repo in gcc builds of hhvm since release 4.168). If you rely on this functionality consider skipping this release or using nix packages built with clang. We will release updated versions of all supported releases once the fix is available.