Mono 4.0發布,支持C# 6

jopen 10年前發布 | 5K 次閱讀 Mono

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

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 的用戶 <a href="/misc/goto?guid=4958876586909087619">whatsinashagbox</a> 寫道,</p>

我現在不太確定該如何處理這種情況,我有一個應用程序用到了一些第三方的 DLL,似乎要求 10.0.0.0 版本的 Microsoft.VisualBasic.dll,而它無法在 mono 4 下運行。發布說明中似乎暗示有辦法讓它使用 .Net 4.5 的程序集,但是我不清楚怎么才能做到。有人知道怎么才能讓它在新的 mono 版本下運行嗎?

這事目前正在研究,似乎是個意外的問題。

來自: InfoQ

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!