HHVM 4.11.0 已发布,此次更新标志着对 4.5.x 系列的支持已结束。

值得关注的更新

  • 改进使用私有或保护方法的inst_meth()/class_meth() 的错误位置
  • 添加管理员服务器端点以从单元缓存中删除单元;例如:curl 'http://localhost:8003/invalidate-units?path=/my/file.php&path=/my/other/file.php'
  • 类型不匹配错误 (4110) 现在会报告完整类型
  • PHP 排序函数在 HHIs 中现在使用inout注释而非 by-reference。inout 和引用都继续在 runtime 运行
  • 新增hh_client --extract-standalone,以创建包含函数和所有递归依赖项的自包含文件
  • 对于被访问但未被更改的 SHA 源文件,不再重新生成字节码
  • 如果处于 runtime 阶段,一个类使用多个声明相同方法的 trait,则错误消息现在包含 trait 的名称

破坏性变化

  • darray 类型和HH\darray() 函数(自动导入)的 key generic 现在需要一个arraykey
  • PHP7 风格的匿名函数use() 子句定位现在会出现解析器错误;Hack 需要在返回类型后使用 use(),而 PHP7 在返回类型前使用use()
  • dict()vec() 和 keyset() 现在位于 HH\ 命名空间。不过他们保留自动导入的特性,所以这种变更只会破坏完全限定的引用

HHVM 是由 Facebook 打造的 PHP 虚拟机,不过从 4.0 开始,HHVM 已停止支持 PHP,只用于执行 Hack 语言。