Sunday, February 13, 2005

Lessons in keeping GMCS and BMCS in sync !

Thanks to this nice article on Building Mono on Windows, I had my build environment set up within a Cygwin environment on my Windows XP box and I was able to get my first set of "gmcs merge patches" in to bmcs.

(Paco, Thanks dude ! You are doing an excellent job in making my "Mono hacking" more productive and less hassle free. It gives me ready access to the benchmark implementation - Microsoft's vbc - while fixing up bmcs.

From this first ever merge, I could see the following challenges that lie ahead in keeping the gmcs and bmcs trees in sync:

  1. The merging of trees should happen as frequently as possible. Checkpointing every two weeks is a must till such time as bmcs begins bloating. Any longer intervals of merges between the two trees would become unmanageable.
  2. The feature additions to bmcs should itself be made in batches as opposed to increments so that one could keeping the lexical distance between the two trees to the minimum.
  3. The VB.NET specific changes should be properly documented either through visible comments or conditional compiler constants so that one doesn't end up losing those changes while performing a merge.

The above challenges need to be delicately managed, as otherwise bmcs might end up being a significantly different beast compared to gmcs. This would seriously hamper bmcs from borrowing liberally from gmcs.


At 8:00 pm, Anonymous Anonymous said...

Why are you not extracting the AST-> IL bits of gmcs into a sharable assembly?

This library can then be used by both and you have no more syncing nightmares. Also makes it easier for someone who wants to write another C#-ish compiler ( eg Delphi or J#).

At 9:53 pm, Anonymous Paco Martinez said...

Hi Jambunathan!

I thank you for your feedback on the build methodology. A lot of us are awaiting with great enthusiasm the fruits of your labor in reference to VB.NET compilation in *NIX.

Keep up the good work!


At 1:04 am, Anonymous Anonymous said...

Nice site!
[url=]My homepage[/url] | [url=]Cool site[/url]

At 1:04 am, Anonymous Anonymous said...

Well done!
My homepage | Please visit

At 1:04 am, Anonymous Anonymous said...

Nice site! |


Post a Comment

<< Home