速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

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

关注

评论

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

对深度学习概念的基础理解与认识

梦笔生花

神经网络 深度学习 模型训练 模型

使用Lens Desktop监控和调试Kubernetes

百度搜索:蓝易云

Go必知必会:探索Go语言中的map,灵活而强大的键值对集合

王中阳Go

map 数据类型 Go 语言

母带音频制作IK Multimedia T-RackS 6 MAX 新功能及安装包下载

理理

通义灵码助力高校开学第一课,“包”你满意,新学期加油!

阿里云云效

阿里云 云原生 通义灵码

短视频风口,Polar Bear起飞在即?

股市老人

深入浅出 AI 智能体(AI Agent)

Botnow

智能体 AI应用 LLMOps AI Agent Botnow

Dropzone 4 for mac v4.80.20激活版 文件拖拽增强工具

理理

【YashanDB知识库】修改字段长度后,jdbc驱动接口报YAS-04007 Message:result set metadata changed异常

YashanDB

yashandb 崖山数据库

Web Bluetooth 与点对点连接

yuanyxh

js an'droid #前端

文件压缩和解压缩工具 iZip Archiver Pro for Mac v4.9激活版

理理

Permute 3 for mac(全能媒体格式转换器)v3.11.12中文版

理理

数智转型,看JNPF如何成为企业的必备工具

不在线第一只蜗牛

低代码 数智化

2024 天池云原生编程挑战赛决赛名单公布,9 月 20 日开启终极答辩

阿里巴巴云原生

阿里云 云原生

全景图制作软件 DoubleTake for mac v2.7.2注册激活版

理理

WiFiSpoof for Mac(wifi地址修改工具)v4.0.4免激活版

理理

【YashanDB知识库】表数据量不多,lob数据段有大量空间,插入数据报错

YashanDB

yashandb 崖山数据库

带你1分钟玩转AI大模型微调推理,更有限时福利等你领

华为云开发者联盟

三件可以用systemd做的令人惊讶的事情

百度搜索:蓝易云

2024 天池云原生编程挑战赛决赛名单公布,9 月 20 日开启终极答辩

阿里云云效

阿里云 云原生

通义灵码助力高校开学第一课,“包”你满意,新学期加油!

阿里巴巴云原生

阿里云 云原生 通义灵码

MelosBoom vs. Google Nest: 打造未来智能家居的去中心化之路

股市老人

如何在Ubuntu 22.04上安装CRI-O容器运行时

百度搜索:蓝易云

最新版Downie 4 v4.7.28中文版 苹果mac网络视频在线下载器

理理

Corel Painter 2023序列号 强大的数字绘画软件

理理

面壁智能小钢炮重磅升级 MiniCPM3-4B 开源;字节跳动 Loopy,音频驱动的 AI 视频生成技术丨 RTE 开发者日报

声网

探秘商品详情数据接口:开启电商数据洞察之门

tbapi

抖音商品数据采集 抖音商品详情接口 抖音API接口

使用开源工具监控Kubernetes云成本

百度搜索:蓝易云

Mac多功能文件提取软件 File Juicer v4.101中文注册版

理理

性能持续领航 全闪存储新品焱融追光 F9000X 震撼发布

焱融科技

分步指南:安装和访问Kubernetes仪表板

百度搜索:蓝易云

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