HHVM 4.146
HHVM 4.146 is released! This release marks the end of support of 4.138; 4.139, 4.140, and 4.143 - 4.145 remain supported, as do the 4.102 and 4.128 LTS releases. 4.141 and 4.142 were cancelled due to the holiday season.
Highlights
- If options to log or forbid dynamic calls to class (static) methods are enabled, logging/errors will no longer be raised by calls to static methods on reified generics, e.g.
T::foo();
.
Breaking Changes
- Coeffect violations now throw a
CoeffectViolationException
instead of aBadMethodCallException
; both extendLogicException
. - It is now a parse error to declare a lambda/method/fuction parameter called
$this
; previously, any attempts to use it would be treated as references to the current object instance, not the parameter. ob_get_contents()
,ob_get_length()
,ob_get_level()
,ob_get_status
,ob_list_handlers()
,hphp_get_stats()
,hphp_get_status()
,hphp_get_io_status()
,hphp_get_timers()
,hphp_instruction_counter()
, andhphp_get_hardware_counters()
are now marked as[read_globals]
, so can no longer be called from ‘pure’ functions.- diamond hierarchies of traits (traits with a shared parent trait) are banned if the traits define generic properties as it can be unsound.