HHVM 4.35
HHVM 4.35 is released! This release marks the end of support for 4.29; 4.30–4.34 remain supported, as does the 4.8 LTS release.
Highlights
- resolving recursive type structure now raises a fatal error, instead of HHVM infinitely recursing.
- improved error messages for unsatisfiable constructor constraints, e.g.
__construct(classname<T> $f) where T = nothing
.
Breaking Changes
__halt_compiler()
and__COMPILER_HALT_OFFSET__
have been removed.require extends T;
and... extends T {}
now consistently raise naming errors (2049); previously,extend T
was a naming error, whilerequire extends T
raised a type error (4026). This may require modifying FIXMEs in unsafe/invalid Hack code.- it is no longer possible to completely disable the checking of return type
hints: if
hhvm.check_return_type_hints
is less than 2, anE_WARNING
will be raised. If set to 2, anE_RECOVERABLE_ERROR
will be raised for hard type. hints, andE_WARNING
for soft. - split list and tuple destructuring errors out to new codes; this may require modifying FIXMEs (4110 to 4105 or 4357) in unsafe/invalid Hack code.