HHVM 4.117
HHVM 4.117 is released! This release marks the end of support for 4.111; HHVM 4.112–4.116 remain supported, as do the 4.80 and 4.102 LTS releases.
Highlights
HH\FIXME\UNSAFE_CASTcan now be used as a slightly safer alternative toHH_FIXMEcomments.
Breaking Changes
- The
Stringishinterface no longer declares a__toString()method. This method is now declared only on theStringishObjectinterface (added in HHVM 4.115).- The declaration of
__toString()onStringishwas misleading, sincestringis a subtype ofStringishbut trying to call any method on astringvalue results in a runtime error.
- The declaration of
- Various legacy array compatibility INI options were removed (they had no
effect or didn’t work as expected since
HHVM 4.103):
hhvm.raise_array_serialization_noticeshhvm.hack_arr_compat_intish_cast_noticeshhvm.hack_arr_compat_noticeshhvm.array_provenance
Future Changes
- As announced
last week,
in the future, the “fuzzy” comparison operators
==and!=, as well asswitchstatements, will no longer treat values of different types as equal.- The INI option
hhvm.notice_on_coerce_for_eqnow supports a new value,3. This enables the new behavior, i.e. comparing values of different types will returnfalse. We recommend setting this option to1(raise notices) or2(throw exceptions) first to catch any comparisons that would be affected.
- The INI option