Mono 3.6发布,支持在Mac系统使用Nuget

jopen 10年前

  Mono 3.6.0 发布,此版本从上一个版本开始,总共提交了 878 个 commits。自 2014 年 3 月 10 日开始,共有 66 位贡献者参与开发; 其中有 22 位首次提交的贡献值,他们修复了 112 个 bug。

  Mono 是一个由 Xamarin 公司(先前是 Novell,最早为 Ximian)所主持的自由开放源代码项目。该项目的目标是创建一系列符合 ECMA 标准(Ecma-334 和 Ecma-335)的 .NET 工具,包括 C# 编译器和通用语言架构。 与微软的 .NET Framework(共通语言运行平台)不同,Mono 项目不仅可以运行于 Windows 系统上,还可以运行于 Linux,FreeBSD,Unix,OS X 和 Solaris,甚至一些游戏平台,例如:Playstation 3,Wii 或 XBox 360。

  本次发布亮点:

  • Profiler 新增运行时性能计数器。
  • profiler 现提供了回溯统计模式(statistical mode)。同时,在 ARM 上,追踪模式(tracing mode)可正常工作。
  • 对类库进行较大规模的重构。在无 cygwin 的 Windows 上,Mono 现在几乎可以构建系统程序。
  • 支持在 Mac 上使用 NuGet。

  Debugger(调试器)

  • 支持行和列的范围。 支持 pdb2mdb。
  • 支持在 top frame 中用于改变当前行。
  • 修复大量的 bug 和性能的提升。
  • 支持不通过 getting 查看简单属性。
  • 新增的缓冲响应模式(buffered response mode)来提高链路料率,例如延烧 USB 的延迟。

  GC (垃圾回收)

  • GC bridge 在工作性能上有很大改进。目前新增的两种模式可显著改善 CPU 工作负载问题。

  Class Libraries (类库)

  • 改进了多个 http 协议栈
  • 实现 System.IO.Compression
  • 实现 System.Security.Claims

  Performance (性能)

  • 重新设计 locking, 在方法查找中废弃 hot lock
  • 使用 fine grained locking 代替 big hot lock。
  • 在部分运行时的内部使用更好的散列算法,以避免一些极端情况,从而提高性能

  Profiler (探查器)

  • 新增回溯统计模式(statistical mode)
  • 新增周期性 flushing,有助于提升用户操作的交互体验。
  • 新增运行时性能计数器。见 mprof-report。

  其他

  • 修正了 CIL 前缀不一致性问题。
  • 现在可部署在 ikdasm
  • 优化 EqualityComparer 以支持更多的类型。
  • 在 OS X 下,Mono.Unix.Native.Syscall.getxattr()现在可以返回 Errno.ENOATTR
  • MSBuild 实现了可以构建 Project K and Roslyn

  该版本还包含了一些 bug 修复。改进的完整列表请参看发布说明

  就本次版本发布,在 .NET 社区中已经有一些热议的话题: 如 C# 与F#, C#与 JAVA 语言之争,甚至还涉及关于移动游戏平台的 Unity3D 的讨论等。总之,本次 Mono 3.6 发布对性能的提升,极大的吸引了老用户的注意力,如,有一个已经使用 Mono 2.0 版本多年的老用户明确表示要尽快把项目升级为 Mono 3.6 版本。



来自: InfoQ