发布在即!企业 AIGC 应用程度测评,3 步定制专属评估报告。抢首批测评权益>>> 了解详情
写点什么

.NET 4.6 的 RyuJIT 编译器中又发现两个严重的 Bug

  • 2015-08-09
  • 本文字数:937 字

    阅读完需:约 3 分钟

在.NET 4.6 的 RyuJIT 编译器中又发现了两个严重的 bug,开发者 Andrey Akinshin 已经将第一个 bug 记录下来,并提供了以C#编写的概念验证式代码以解释其中的问题。而正是StackOverflow 上的一名用户“BrandonAGr”在网站上的留言启发Akinshin 编写了这段代码。

Akinshin 在示例中使用了可空的布尔类型,它展示了当 RyuJIT 在试图生成优化代码时导致所生成的程序集出错的情况。从这个示例的运行结果来看,它在首次运行时会产生错误,而第二次运行时却一切正常,这一点更令人头疼。Akinshin 在总结中说道:“RyuJIT 似乎存在着一个相当棘手的优化 bug,这个 bug 的产生依赖于大量的附加条件,而对于源代码的每次修改都会破坏它的可重现性。”

所幸来自微软的开发者“schellap”已经为这一错误提交了一个修复,但就像本周早先所报告的问题一样,目前还没有发布任何二进制的补丁包。使用者对于RyuJIT 目前的现状表示了他们的挫折感与忧虑。用户“EasmoneNerbonne”认为,根据所报告的bug 情况来看,“……看起来,最好的做法是在近期全面停止使用[RyuJIT],而不仅仅是禁用尾调用功能而已。” Akinshin 对此也表示了赞同。而用户Daniel Marbach说道:“……那篇介绍RyuJIT 的博客应当更新一下这些bug 的情况,并且微软应该发布一篇公开声明,清楚地说明:不要在生产环境中使用RyuJIT。”(原文即以大写表示强调)

第二个bug 是由GitHub 用户Hyunho Richard Lee 所报告的,他通过一段F#代码的示例展现了这个bug:原本应该正常运行的程序却产生了错误(抛出FatalExecutionEngineError 异常)。按照Lee 的说法,对于能够正常运行的、以.NET 4.5.1(或4.5、4.5.2)为目标的F# 3.1 程序,在安装.NET 4.6 RC 后就会产生问题。

Lee 为 F#开发者总结了这个问题:

如果 F#开发者在现有应用的任何一处代码中,对于 KeyValuePair 类型的 Seq 执行了 Seq.distinct 方法,那么他们必须对运行环境加以控制,确保部署环境中没有安装.NET 4.6。另一种做法是立即重新设置项目的目标,随后立即重新部署这些项目。

微软的开发者 sivarv暗示这个问题已经在一个提交中得以修复,但正如上文所述,目前还没有公开宣布任何二进制补丁包的发布日期。

查看英文原文: Two More Major Bugs Revealed in .NET 4.6’s RyuJIT Compiler

2015-08-09 08:001576
用户头像

发布了 428 篇内容, 共 171.4 次阅读, 收获喜欢 36 次。

关注

评论

发布
暂无评论
发现更多内容

厦门钨业:智慧采购减少采购环节,构建高效产业链

用友BIP

智慧采购

一款降压型开关模式转换器解决方案

攻城狮Wayne

基于深度学习的探地雷达图像去杂波

小酌江风雪

技术人的 2023 用QCon大会画上完美句号

IT蜗壳-Tango

Qcon

记一次JSF异步调用引起的接口可用率降低 | 京东云技术团队

京东科技开发者

TDengine 2023 年成绩单“曝光”,六大维度彰显卓越成就

TDengine

tdengine 时序数据库

TDengine 技术培训班开课,来听“地震烈度速报与预警工程”成功案例

TDengine

tdengine 时序数据库

2024-拒绝瞎忙,专注一件事

玄兴梦影

总结 质量 专注

英特尔锐炫显卡暴风成长:游戏领域大放光彩,AI应用表现抢眼

E科讯

华为云CCE集群健康中心:一个有专家运维经验的云原生可观测平台

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟

2023 年总结与技术心得

Geek_231712

深入理解技术内容运营

小万哥

程序人生 软件工程 后端开发 技术写作 内容运营

InterSystems 数据库的存储过程存在哪里

HoneyMoose

一文看懂指标管理难题:规范与效率如何兼得?

先锋IT

钉钉集成金蝶云星辰丨聚道云助力企业实现财务流程自动化

聚道云软件连接器

案例分享

【并发编程】CountDownLatch详解与原理

小明Java问道之路

并发编程 AQS 后端 多线程 CountDownLatch

一个不会画画的我遇到AI绘画的时代

战场小包

AI AIGC AI绘画 Stable Diffusion controlnet

作为铭文跨链赛道龙头,SoBit 有何突出之处?

大瞿科技

作为铭文跨链赛道龙头,SoBit 有何突出之处?

长安区块链

Python笔记三之闭包与装饰器

Hunter熊

Python 装饰器 闭包 装饰器类 装饰器参数

taobao.trades.sold.get( 查询卖家已卖出的交易数据)丨淘宝店铺订单接口

tbapi

淘宝API接口 淘宝店铺订单接口 天猫店铺订单接口 淘宝店铺交易接口 天猫店铺订单交易接口

一文搞懂Go GC演进史,讲的太细致了!

王中阳Go

Go golang 面试题 垃圾回收 GC

畅捷通的 Serverless 探索实践之路

阿里巴巴云原生

阿里云 Serverless 云原生

软件开发者必读!2024年30大趋势提前曝光!

SoFlu软件机器人

软件开发

Geek_8da502

2023:突破迷雾,追寻不惑之旅

BY林子

一步一步教你写kubernetes sidecar

华为云开发者联盟

开发 华为云 华为云开发者联盟

CodeWhisperer:编码世界中的声音启迪者

亚马逊云科技 (Amazon Web Services)

人工智能 云上探索实验室 Amazon CodeWhisperer

大模型和深度学习的工作总结

6个核桃

携手开发者探索AI PC无限可能,英特尔人工智能创新应用大赛启动

E科讯

浅析RobotFramework工具的使用 | 京东物流技术团队

京东科技开发者

.NET 4.6的RyuJIT编译器中又发现两个严重的Bug_C#_Jeff Martin_InfoQ精选文章