Tuesday, June 22, 2010

Hackweeek

A couple of weeks ago we had another hackweek at Novell, and I continued working on getting vbnc to use cecil, as I did last time. With a big difference: I finished.

Yep, vbnc now uses Cecil to emit assemblies, the System.Reflection.Emit API is not used anymore. This makes it possible to fix a few long standing bugs, but most importantly (to me at least, the bugs are quite corner-case), a lot of unnecessary code has been deleted (~10k fewer lines of code in the compiler).

Another advantage is that it's now trivial to add support for compiling to different runtime versions - vbnc won't ever suffer from multiple personalities like the mono's C# compiler does: mcs/gmcs/smcs/dmcs...

Performance is still somewhat lower (bootstrapping the compiler itself is ~20% slower), but I haven't even looked at why (almost 3 years of working on a branch with fairly big changes has probably introduced some non-optimal code), so this is likely to change. Speed is also helped by using the new cecil/light which jbevain released recently.

And since I was done a day early and wanted to have a break from what I've been doing for the last 3 years with vbnc, I implemented the first VB 9 feature: ternary ifs!

26 comments:

林奕廷 said...

期待你每一篇文章......................................................................

貢慧 said...

在莫非定律中有項笨蛋定律:「一個組織中的笨蛋,恆大於等於三分之二。」......................................................................

志穎志穎 said...

一個人的價值,應該看他貢獻了什麼,而不是他取得了什麼.................................................................

靜宸靜宸 said...

人生是故事的創造與遺忘。............................................................

Jonathan Allen said...

I am a big fan of Visual Basic and would be interested in helping you work on bringing VB 9 to Mono.

If you could use some assistance in writing or testing the compiler please let me know.

Jonathan Allen
grauenwolf@gmail.com

淑賴ul貞俊李trt賢 said...

人生是故事的創造與遺忘。............................................................

宜FH定博林P'韓T彥 said...

Thank you very much for such useful informaion ● 3●..................................................................

雅俊芬凱陳許 said...

要經常發表文章 最愛你了呦............................................................

趙筱婷terrifields汪華昕 said...

Share and share alike.............................................................

吳婷婷 said...

支持大大~很有啟發性......................................................

建佑建佑 said...

老天爺賦予了強者的能力,就是要他比弱者多擔待..................................................

蔡靜芳蔡靜芳 said...

心中醒,口中說,紙上作,不從身上習過,皆無用也。..................................................

蔡靜芳蔡靜芳 said...

Subtlety is better than force. ............................................................

俊成俊成 said...

Riches serve a wise man but command a fool.............................................................

黃柏盈 said...

人應該做自己認為對的事,而不是一味跟著群眾的建議走。..................................................

胡維倫 said...

堅持是為著某種目的或目標,而持續不斷朝向既定方向努力的一種意念。..................................................

文王廷 said...

你不能改變容貌~~但你可以展現笑容.................................................................

建邱勳 said...

Man proposes, God disposes..................................................................

文王廷 said...

幸福不是一切,人還有責任。............................................................

老陆 said...

所有的資產,在不被諒解時,都成了負債.................................................................

冰微 said...

Pen and ink is wits plough...................................................................

怡楊雯 said...

請繼續發表好文!加油加油加油!............................................................

麗王王珠 said...

不論做什麼事,相信自己,別讓別人的一句話,把你擊倒。..................................................

8468 said...

做些小善事,說些愛的字句,世界更快樂。..................................................

tongtong said...

肯定與支持你!!!加油囉~..................................................

Pemo said...

What is the current status of the VB Compiler and how big is the team?

I am preparing a talk about Mono and VB for a conference next week and would very interested in a short update (and if the project is still alive which I sincerely hope).

Please mail me at:

pemo04 at gmail dot com

Thank you,
Peter