写点什么

Mono 4.0 发布,支持 C# 6

  • 2015-06-09
  • 本文字数:1028 字

    阅读完需:约 3 分钟

Mono 4.0 本月正式发布。这标志着含有微软的 CoreCLR 项目的开放源代码的首个版本的问世。其默认的语言为 C# 6 ,这意味着 Mono 再一次抢在微软之前推出了新的 C#编译器的 RTM 版本。

除了我们之前报道的功能和变化,Mono 4 还应当具有“更小的调试开销”和“基本的PowerPC64 LE 支持”。目前这些功能的具体细节不详。

许多人在问,既然微软正在开发自己的开源、跨平台的CLR,为什么Mono 项目还要继续呢。Mono 的贡献者和reddit 用户 _alexrp_ 解释道,

我觉得人们对 Mono/CoreCLR 整件事情有种错误的观念。为什么一种虚拟机(VM)变成开源并移植到其它操作系统,就意味着另外一种虚拟机不能存在呢?这就好象是说,只能有一种 Python 实现,或者一种 JVM。那不是好事。竞争是良性的。

Mono 确实具备了很多 CoreCLR 没有的功能:LLVM、完整的提前编译(AOT)、原生客户端(NaCl)、微进程(tasklet)、跨虚拟机的垃圾回收 (GC)桥接(bridge)、各种探查器(profile)模块等等。Mono 的启动时间和运行时内存占用也针对那些连 CoreCLR(至少现在)都没有作为目标的平台/设备进行了优化。另一方面,CoreCLR 有更成熟的垃圾回收,以及通常来说更好的代码生成(也因此造成了更慢的启动速度)。两种虚拟机各有所长,没有理由不能同时存在。

倒不是我们坚持要保留我们自己的代码。如果切换到 CoreCLR/参考源代码有明显的好处(更少的维护、更正确、又具备足够的移植性),我们也很高兴这样做。我们已经引入了大量的参考源代码,而且我们也正在引入 CoreCLR 虚拟机的某些部分:

https://github.com/mono/mono/blob/master/mono/metadata/decimal-ms.c

https://github.com/mono/mono/blob/master/mono/metadata/threadpool-ms.c

4.0 版本也并非没有瑕疵。 Reddit 的用户 whatsinashagbox 写道,

我现在不太确定该如何处理这种情况,我有一个应用程序用到了一些第三方的 DLL,似乎要求 10.0.0.0 版本的 Microsoft.VisualBasic.dll,而它无法在 mono 4 下运行。发布说明中似乎暗示有办法让它使用.Net 4.5 的程序集,但是我不清楚怎么才能做到。有人知道怎么才能让它在新的 mono 版本下运行吗?

这事目前正在研究,似乎是个意外的问题。

查看英文原文: Mono 4.0 Released with C# 6


感谢邵思华对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

2015-06-09 08:403330

评论

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

【Alibaba微服务技术系列】「SpringCloud技术专题」基于SpringCloud-Alibaba的微服务2.0模式架构搭建实战指南(解析版本对应关系)

码界西柚

SpringCloud SpringCloud Alibaba 12 月 PK 榜 服务搭建

大数据培训课程哪里比较好?

小谷哥

java开发哪家机构比较好?

小谷哥

Verilog 过程赋值

芯动大师

Verilog Verilog语法 Verilog过程赋值

小游戏开发者变现攻略

Onegun

小程序 超级app 小游戏

我们是如何追逐元宇宙、XR等“概念股”浪潮的?

阿里巴巴终端技术

3D渲染 3D vr

应用并管控“两库”是信创软件安全的核心能力

云起无垠

Fuzzing

前端开发需不需要通过培训来学习

小谷哥

在西安怎么选择java培训?

小谷哥

手动测试依然很重要

FunTester

带你手把手实操一个RPC框架

得物技术

架构 中间件 java client prc 12 月 PK 榜

盘点新能源汽车常用的8种传感器

元器件秋姐

传感器 新能源汽车 智能传感器 新能源 IGBT

架构实战营模块二作业

张贺

架构训练营

为云原生插上翅膀,天翼云弹性存储CStor-CSI助力容器腾飞

天翼云开发者社区

容器 云原生 云存储

新思科技发布第13版软件安全构建成熟度模型报告

InfoQ_434670063458

安全评估 新思科技 BSIMM

如何绘制甘特图?这里有一份最全的教学指南(建议收藏使用)!

PMO实践

甘特图 PMO 项目经理

伙伴福利,100个项目彻底精通Java!【开源】

JavaPub

Java 源码 javaWeb

持续应用安全(CAS)研讨之:Fuzzing

云起无垠

DTCC2022预告 | 玖章算术叶正盛:程序员必须掌握的数据库原理

NineData

数据库 数据迁移 数据管理 DTCC2022 NineData

JAVA中的注解可以继承吗?

JAVA旭阳

Java

极客时间运维进阶训练营第八周作业

独钓寒江

如何设计一个高性能的图 Schema

NebulaGraph

图数据库 图建模

易观千帆 | 10月手机银行APP用户体验GX评测

易观分析

手机银行 GX评测

Python 缩进语法的起源:上世纪 60-70 年代的大胆创意!

Python猫

Python

银行普惠金融可持续发展能力建设——风控科技应用

易观分析

金融 银行

如何在Android安卓环境运行小程序游戏

Onegun

安卓 andiod 小游戏

做7秒动画赢13W大奖?总奖池超80W、国内最火爆的3D渲染动画创作大赛开始报名!

Renderbus瑞云渲染农场

3D渲染动画大赛 3D动画制作 瑞云渲染CG竞赛

构建数字时代下的软件供应链安全体系

云起无垠

软件 软件供应链安全

去哪儿是如何做到大规模故障演练的?

TakinTalks稳定性社区

自动化 混沌工程 故障演练

详述TLS握手流程

穿过生命散发芬芳

TLS 12月月更

大数据开发培训机构该怎么选择?

小谷哥

Mono 4.0发布,支持C# 6_语言 & 开发_Jonathan Allen_InfoQ精选文章