HHVM 4.100 发布,高速开源虚拟机

来源: OSCHINA
编辑: Alias_Travis
2021-03-12

HHVM 4.100 正式发布,此版本的发布标志着 4.94 版本的支持将终止。HHVM 4.95–4.99,以及 4.56 和 4.80 LTS 版本还会继续获得支持维护。

HHVM(HipHop Virtual Machine)是一个开源虚拟机。HHVM 由 Facebook 开发,该项目的源代码托管在 GitHub 上。从 4.0 版本开始,不再支持 PHP 语言。

亮点

  • 类型检查器现在利用了 switch 语句是穷尽性的保证(这一点从 HHVM 4.80 开始就在运行时强制执行),即至少保证 switch 语句的一个分支被执行(或者抛出一个异常)。
    • 这使得类型检查器可以正确地推断出任何变量的类型,这些变量在 switch 语句的所有分支中都被设置,从而允许一些之前被拒绝的程序通过。

重大更改:

  • 删除了内置属性 <<__Pure>> 和所有相关属性 (__AtMostRxAsArgs、 __AtMostRxAsFunc、 __Cipp、 __CippGlobal、 __CippLocal、 __MaybeMutable、 __Mutable、 __MutableReturn、 __NonRx、 __OnlyRxIfImpl、 __OwnedMutable、 __ReturnsVoidToRx)。它们已经被 contexts 和 capabilities 所取代。
  • 如果 is 和 as 运算符被用于类型 nothing ($x is nothing, $x as nothing) ,类型检查器现在会引发错误。

未来的变化

  • 在未来,使用任何一个带有不兼容类型的值的位运算符都会导致在运行时抛出异常(所有这些情况都会引起 typechecker 错误)。受影响的操作符包括:
    • &、 |、 ^:两个操作数都必须是整数或者两个操作数都是字符串。
    • ~ (单数):操作数不能是双数。
    • <<、 >>:两个操作数都必须是整数。
    • 同样的规则也适用于各自的赋值运算符 (&=、 <<= 等).
    • INI 选项 hhvm.notice_on_coerce_for_bit_op=2 现在可以用来启用的未来行为(设置为 1 可以引发一个通知而不是抛出一个异常)。

更多详情可查看:https://hhvm.com/blog/2021/03/09/hhvm-4.100.html

展开阅读全文
0 收藏
分享
加载中
精彩评论
高速开源虚拟机是什么鬼?HHVM是Hack语言的虚拟机!希望你们可以改一下。
2021-03-12 11:21
1
举报
最新评论 (4)
大哥你写明白啊。这个不懂的不搞错了。哎
2021-03-14 21:44
0
回复
举报
不支持php的php虚拟机
2021-03-12 21:00
0
回复
举报
高速开源虚拟机是什么鬼?HHVM是Hack语言的虚拟机!希望你们可以改一下。
2021-03-12 11:21
1
回复
举报
没有情人的情人节
2021-03-12 08:51
0
回复
举报
更多评论
4 评论
0 收藏
分享
返回顶部
顶部