HHVM 4.25.0
HHVM 4.25 is released! This release marks the end of support for 4.19; 4.20-4.24 remain supported, as do the LTS releases 3.30 and 4.8.
Highlights
- Corrected stack trace file names and line numbers for inlined functions; previously, the file name and line number from the first non-inlined frame would be used instead.
- It is no longer a type error for a disposable to implement a non-disposable interface.
@param
documentation is now shown in IDE signature help.
Breaking Changes
- The
getAttributeRecursive
andgetAttributesRecursive
reflection methods have been removed; they were previously marked as__Deprecated
. - Many functions and methods have had their by-ref parameters replaced
with
inout
parameters:natsort()
,natcasesort()
,sort()
,rsort()
,asort()
,arsort()
,ksort()
,krsort()
,usort()
,uasort()
, anduksort()
array_pop()
,array_push()
,array_shift()
,array_splice()
,array_unshift()
, andshuffle()
IntlTimeZone::getOffset()
pagelet_server_task_result()
,xbox_send_message()
, andxbox_task_result()
call_user_method()
andcall_user_method_array()
have been removed - they have been deprecated since PHP4.- the runtime no longer recognizes the aliases
double
,real
,integer
, andboolean
; usefloat
,int
, andbool
instead. These aliases were previously typechecker errors. - Added return types to many Async MySQL methods; this may lead to new type errors.
hhast-migrate --ref-to-inout
can be used for many of the reference-to-inout
changes.
Future Changes
- references will be completely removed from the language and runtime; we will be publishing details in a separate post.