写点什么

.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:001714
用户头像

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

关注

评论

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

2024年第3届海南跨博会及低空经济产业博览会

秋硕展览

OCR+PDF解析配套前端工具开源详解!

合合技术团队

#开源 #前端 ODR

同风起,耀星河!华为携手伙伴一起创造无限可能

HarmonyOS开发者

HarmonyOS

用豆包MarsCode 和CozeAPI接口全自动做一个文生图组件

豆包MarsCode

人工智能 大数据 AI Chat

大数据存储计算平台EasyMR:多集群统一管理助力企业高效运维

袋鼠云数栈

【论文速读】|用于安全代码评估的大语言模型:一项多语言实证研究

云起无垠

Kafka集群升级项目实施方案,打造高效数据处理平台

敏捷调度TASKCTL

kafka hadoop cloudera 集群 大数据运维

国内外大模型应用的现状与未来:以ChatGPT、Mixtral和Llama为例

测吧(北京)科技有限公司

测试

知识图谱融入向量数据库,带来RAG效果飞升

Zilliz

知识图谱 向量数据库 LLMs rag

AI时代,2024火山引擎飞连新品发布会盛大开启

新消费日报

揭秘京东商品详情一键获取的API之旅

代码忍者

pinduoduo API API 性能测试

开源大模型的私有部署:Llama与千问的比较研究

测吧(北京)科技有限公司

测试

智能合约与大语言模型的结合:未来的应用场景探索

测吧(北京)科技有限公司

测试

架构与思维:漫谈高并发业务的CAS及ABA

EquatorCoco

架构 CAS aba

社区周刊·Vol.182

华为云开发者联盟

开发者 华为云

得物一面,都是非常经典的问题

王中阳Go

Go 面试 后端

AIGC技术的变革:语音识别与视觉识别的深度融合

测吧(北京)科技有限公司

测试

检索增强生成(RAG)技术在知识图谱中的应用:Neo4j的探索

测吧(北京)科技有限公司

测试

TikTok养号推荐:海外独享原生IP

Ogcloud

TikTok tiktok运营 海外原生IP TikTok养号 tiktok矩阵

大模型在商业领域的应用:如何提升决策效率与用户体验

测吧(北京)科技有限公司

测试

除了deadline,我们还能用什么驱动开发?

思码逸研发效能

程序员 DevOps 软件开发 编码 IT 运维

联手豆包大模型,容联七陌打造更懂客户的智能客服

新消费日报

深度学习在视觉识别中的突破:从理论到实践

测吧(北京)科技有限公司

测试

《Programming from the Ground Up》阅读笔记:p217-p238

codists

汇编 编程人

制造已然走出国门,数据如何走向全球?

奇点云

人工智能 AI 互联网 软件 制造业

实现MySQL异地多活场景

NineData

数据一致性 数据同步 异地多活 NineData 单元节点

SIGGRAPH Asia 2024 | 网易伏羲研究成果入选,3D面部动画技术再获新突破

网易伏羲

论文 网易伏羲

解锁极致性能:Arm Cortex-X925 IPC 提升15%,终端用户体验感再突破

新消费日报

文生图与文生视频:从文本到视觉的创作革命

测吧(北京)科技有限公司

测试

智能体Agent应用的前沿:图文、短视频与流程图的生成技术

测吧(北京)科技有限公司

测试

【免费可视化仪表盘】轻松实现静态/动态数据可视化图表—积木仪表盘

JEECG低代码

数据分析 数据可视化 BI 报表 数据仪表盘

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