HHVM 4.34 is released! This release marks the end of support for 4.28; 4.29–4.33 remain supported, as does the 4.8 LTS release.
hh_client --concatenate-all path/ [morepaths/ ...], which creates a single-file version of a Hack project. This respects required inclusion order (e.g. parent classes before child classes), and resolves syntax issues such as namespace declarations and potentially conflicting
usestatements. Example usage:
hh_client --concatenate-all src/for a library
hh_client --concatenate-all src/ vendor/ bin/foo.hackfor an executable
- It is now always a type error to use
self::abstractStaticMethod()to call an abstract static method inside a trait. Previously, this was only a type error if any classes used the trait without implementing the respective method. The new behavior is consistent with abstract classes, where calling
self::abstractStaticMethod()was already an error. Use
static::abstractStaticMethod()instead (note that this may change the behavior in some cases, but most likely the new behavior better captures the original intent of the code).
- Type errors about incorrectly overridden type constants are now reported in
the child class that overrides the constant, not in the parent class that
declares it. This may require some
HH_FIXMEs to be moved from a parent class to its child classes.