罗斯林的重大变更列表

2023-12-10

切换到 Visual Studio 2015 后,我们注意到 Roslyn 中 lambda 编译为 MSIL 的方式发生了一些变化(参见这个线程 and 在 GitHub 上)在某些条件下会引入运行时故障。

由于 Roslyn 显然是 .NET 的未来,我们希望切换到这项技术,但似乎所有已在生产中运行的遗留代码(并且我们有相当程度的信心它可以正常工作)现在很容易出现新的运行时故障。这些是也受此问题影响的几个库(例如例如起订量).

我们已经跳过了 RyuJIT 的升级它的问题,但我相信 Visual Studio 2015 与 Roslyn 高度集成,我不认为我们可以简单地替换csc.exe手动(但那是另一个问题).

那么,Roslyn 是否有一份重大变更的汇编列表供我们参考以了解我们可以期待什么?


(Update)

感谢@NealGafter 提供链接。目前可以在此处找到重大更改列表:

  • Roslyn Github 问题 7278:Roslyn 中的重大更改列表

似乎一些文档应该在这里:Roslyn 编译器规范(GitHub 上的 roslyn/docs/compilers)。根据描述:

编译器规范详细说明了 Roslyn VB 和 C# 编译器支持(和半支持)的表面积。这包括

  1. 命令行开关及其含义
  2. 与以前版本的编译器相比的重大更改
  3. (故意)违反规范的编译器行为
  4. Compiler features not described by the language specification
    • COM 特定的功能和其他 Microsoft 特定的功能
    • 影响编译器行为的“众所周知”属性
    • “规则集”文件语法和语义
  5. Features included for interoperability between C# and VB, for example
    • C# 中使用命名索引器
  6. 编译器行为与语言规范不同的地方
  7. 限制(例如标识符长度)
  8. 每个版本的语言变化历史

描述 CodeGen 关于 lambda 的更改的文档(因为这是我最初的问题)位于roslyn/docs/compilers/CSharp/CodeGen 差异:

非提升 Lambda 表达式现在作为单例显示类上的实例方法实现。由于委托的入口点是实例“Invoke”方法,因此如果此类方法也是具有与“Invoke”完全相同的形式签名的实例方法,则在运行时将委托调用分派给底层实现方法会更便宜。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

罗斯林的重大变更列表 的相关文章

随机推荐

  • 将日期转换为月份和年份

    如何使用 python 从以下日期获取月份和年份 日期是 2011 07 01 09 26 11 This showud display as This month 2011 06 07 09 26 11 This should displ
  • Matlab,创建额外向量的替代方法?

    如果我有这个 我会收到错误 sum vector cumsum vector length vector gt gt Error indexing must appear last in an index expression 我知道我可以
  • 如何将 Bootstrap 的容器 div 调整为距左视口边缘 100px?

    我正在使用 Twitter Bootstrap 固定布局 其中容器div has margin left auto margin right auto 所以它始终位于中心 我想要做的是定位容器 以便浏览器窗口左边框和容器之间有 100px
  • UNNEST(hit.eCommerceAction),Google Bigquery

    我使用相同的逻辑来取消嵌套 hit eCommerceAction 但它不能像其他字段一样工作 对这个问题有帮助吗 另外 max if 函数是用于获取两个 hit customeDimenison value 的正确函数吗 SELECT D
  • 如何使用 summarise_each 计算加权平均值?

    如何使用 dplyr 中的 summarise each 计算数据集中所有字段的加权平均值 例如 假设我们想要将mtcars数据集由cyl并计算所有列的加权平均值 其中权重被视为gear柱子 我已经尝试过以下方法 但无法使其工作 mtcar
  • PHP 在 77FCAFF8 处遇到访问冲突

    我正在运行一个也使用 Ajax 和 jQuery 的 PHP 网站 该网站将正常运行相当长的一段时间 突然我的页面 和 ajax 检索的子页面 返回消息 PHP 在 77FCAFF8 处遇到访问冲突 看来重新启动服务器可以解决该问题 运行
  • matplotlib生成的PDF无法在acrobat reader中查看

    我正在使用 matplotlib 绘制数据 包括 LaTeX 字体 创建的 pdf 可以通过 evince inkscape GIMP 显示 但不能通过 acroread resp 显示 土坯阅读器 代码原型适用于很多图形 只有少数绘图存在
  • BulletPhysics (ammo.js) - 您将如何向物体施加力?

    澄清 ammo js是使用 mscripten 的 Bullet 物理端口 我有一个角色 本质上是一个方块 需要用力推动 我已经尝试了 我认为 所有的力方法 但我仍然无法移动方块 setVelocity 1 0 0 甚至不会移动方块 它只是
  • C++ 成员函数定义类前缀快捷方式(也是模板)

    给出以下类声明 template
  • 为什么不能使用 < 或 > 来比较 NSDate?

    NSDate date NSDate date NSDateFormatter dateFormat NSDateFormatter alloc init dateFormat setDateFormat MM dd yyyy NSLog
  • 何时使用 try/catch 块?

    我已经阅读并理解了 Try Catch 块的作用以及为什么使用它很重要 但我坚持知道何时何地使用它们 有什么建议吗 我将在下面发布我的代码示例 希望有人有时间为我的示例提出一些建议 public AMPFileEntity string f
  • 使用 localStorage 时使用 msal-react 注销所有选项卡

    我有一个 React 18 x 和 NextJS 12 x 应用程序 它使用msal react1 4 4 依赖 msal browser 2 28 0 和 Azure B2C 进行身份验证 我的配置是这样的 export const ms
  • 在 Matlab 中删除特定行

    我有一个相当大的 2x2 矩阵 其中包含日期和温度 有一群 NaN 和不正确的数据 我用了find获取包含错误数据的索引 这些索引存储在另一个变量中 如何删除与索引对应的行 日期和值 谢谢 fairly large 2x2 matrix没有
  • SQL Server通过分隔符(动态长度)将字符串拆分为列[重复]

    这个问题在这里已经有答案了 SQL Server 无法使用 MySQL split index 函数 并且我的环境面临可访问性阻塞 无法在服务器上使用某些函数 例如 CREATE INSERT 有没有什么方法可以通过固定分隔符将字符串拆分为
  • 如何使用c#实现加权循环?

    如果我有一些服务器 192 168 100 1 192 168 100 2 192 168 100 3 192 168 100 4 它们的权重为 5 1 2 3 我想实现负载均衡 但是如何使用C 实现加权循环 假设你有服务器a b c d
  • R 中的双变量(mvtnorm 包)

    我有两个彼此独立的正常 r v 因此相关性 rho 0 这两个 r v 来自以下两个正态分布 即 X sim N 18 5 7 和 Y sim N 12 72 30 38 我想计算 Pr X gt 10 Y10 Y10 times Pr Y
  • 我应该如何执行此文件/文件夹分发任务; SSIS 还是命令脚本?

    我需要执行以下概述的任务 但不确定如何继续 使用 Windows Server 2003 我可以在命令脚本中或者 SSIS 中的脚本任务中执行此操作吗 我一直在使用SSIS 2005并且知道有一个文件系统任务 但我以前从未使用过它 我在本地
  • 在 C++ 中,构造函数是在对象创建之前还是之后调用?

    我找到了一些关于 java 的问题的答案 但没有专门关于 c 的答案 所以我在Java中读到 首先创建对象 然后调用构造函数 我想知道这对于 C 来说是否是相同的过程 另外 如果是这种情况 那么拥有默认构造函数有什么意义呢 是为了继承吗 对
  • 使用动态正则表达式匹配字符串中的整个单词

    我正在使用正则表达式查看某个单词是否出现在句子中 单词之间用空格分隔 但两侧都可以有标点符号 如果单词位于字符串的中间 则以下匹配有效 它防止部分单词匹配 允许单词两侧有标点符号 match middle words a zA Z d 0
  • 罗斯林的重大变更列表

    切换到 Visual Studio 2015 后 我们注意到 Roslyn 中 lambda 编译为 MSIL 的方式发生了一些变化 参见这个线程 and 在 GitHub 上 在某些条件下会引入运行时故障 由于 Roslyn 显然是 NE