HHVM 4.107 is released! This release marks the end of support for 4.101; HHVM 4.102–4.106 remain supported, as does the 4.80 LTS release.
- Added an hhconfig option to ban partially abstract type constants; we expect the
disallow_partially_abstract_typeconst_definitionsflag to be on by default in a future release. This is different to the previous
disable_partially_abstact_typeconstantsoption, which disables the ability to override them.
- Error messages for now report generic type constraints, e.g.
expected T as stringinstead of just
- Improved error message for variadic functions where type and name aren’t specified.
- The typechecker now treats
is nonnullthe same as
!== null; both already had special cases in type refinement, but some were exclusive to
- IDE autocompletion is now supported for XHP enum attributes.
PHP_MAJOR_VERSIONand related constants/functions will be removed, as they are misleading. If you need to detect if specific PHP5-compatible behaviors are enabled, use
ini_get('hhvm.php7.foo'). The PHP5-compatible behaviors remain unsupported and are disabled by default.
- repo-authoritative mode repositories are now a custom format instead of sqlite; this should only affect deployment workflows that are explicitly examining the contents of the file.
#comments will be used; use
#!will still be ignored if it is the first line of a file, i.e. a ‘shebang’ line, such as
#!/usr/bin/env hhvm. We expect to re-use the
#token for new syntax in a future release.