HHVM 4.110 发布,高速开源虚拟机
HHVM 4.110 现已发布。这个版本的发布标志着对 4.104 版本的支持已经结束,HHVM 4.105-4.109,以及 4.80 和 4.102 LTS 版本还会继续得到支持。
HHVM 4.110 更新内容如下:
Highlights
- 修复了
setlocale()在调用特殊值""或"0"时的行为。(#8834)- 有关更多详细信息,看参见先前的公告。
- 现在,默认语言环境将始终为“C”。
- 当调用带有 shape-typed 参数的函数时,IDE集成现在会自动完成 shape field names。
- 在对 method reference 进行 JSON 序列化时,运行时不再引发错误。
- 改进了 typechecker 对缺少主体的非抽象方法的错误信息。
Breaking Changes
-
内置函数
preg_last_error(),json_last_error()和json_last_error_msg()已被删除。从 HHVM 4.106 开始,它们已经被废弃了 。而是使用以下替代方法: - 如果
<<__EntryPoint>>函数具有任何泛型类型参数,则 typechecker 将引发错误。 - 如果
keyset,dict,Set,或Map的初始化具有泛型类型参数,如果 key type 是不是arraykey或其子类型(int或string),typechecker 则会抛出一个错误。例如,$foo = keyset<bool>[];。 - 当附加到
keyset($keyset[] = 'foo';)时,typechecker 现在可以正确地强制附加值是int或string。 - 现在,当使用不是
int或string的索引对Map进行索引时,typechecker 会引发错误。这在其他集合类型中已经是一个错误了 。