[Mono-dev] GSoC Proposal for FreshBuild

Alex xtzgzorex at gmail.com
Wed Apr 6 06:02:48 EDT 2011


Hi,

One suggestion: I would strongly advise using either jay (what Mono
uses for mcs) which is LALR or Coco/R (http://ssw.jku.at/Coco/) which
is LL(1) for the parsing. These are pure .NET tools, so you won't have
to use Java or similar (as is the case with ANTLR).

Regards,
Alex

2011/4/6 Sharp Blade无厚之刃 <sharper.than.bladez at gmail.com>:
> I have published the updated proposal here : https://gist.github.com/905344 .
>
> ==========================================================
>
> Here's my the draft of GSoC Proposal for FreshBuild.
> I'd welcome any feedbacks and anyone who would like to be my mentor.
> And I need a more impressive name for this ambitious project.
>
> ==========================================================
>
> FreshBuild : Add MSVC and GCC Supprot to XBuild/MSBuild and Translate
> Makefiles to MSBuild project Files
>
> Jiacheng Jiang (sharper than blade)
>
> # Contact Information:
>
> Email: sharper.than.bladez at gmail.com
> Google ID: sharper.than.bladez
> IRC: Sharp
>
> # Abstract:
>
>    This project is to improve the XBuild so as to provide MSVC and
> GCC support and translate makefiles to MSBuild project files.It is
> intended to simplify the building process and cut down building
> problem on both the Windows and Linux platforms.Also,many opensource
> projects would benefit from the MSVC compiler in performance, which
> can usually produce faster bytecode than GCC.FreshBuild is based on
> XBuild and would eventually merged back into it.
>
> # Benefits:
>
>
>    Building is not easy.Many opensource softwares are based on the
> GNU tool chain,which use makefiles as their build scripts. To build
> those softwares on Windows,you have to install Cygwin to use GCC and
> Make,even though the MSVC compiler is available.And to use GNU
> Make,you have to  write makefiles.While Java and .Net developers would
> prefer to some easy to use ,more advanced and XML based build systems,
> such as Ant,Maven and MSBuild, which is a lot more friendly to us.In
> my own experience, I often get mad when I am required to install GCC
> and a lot of other compile tools while installing a small Ruby gem in
> Windows.
>
>    Mono is made up of C and C# source code ,and ,just like many other
> opensource projects, it currently use GNU Make to build
> itself,including compiling,generating docs and running unit tests.It
> also provides XBuild,the counterpart of MSBuild,to build C# projects.
> However ,it has fallen behind since the MSBuild 4 has been updated to
> support VC++ compiler,which unified the building process on windows
> platform.This project would help Mono to build itself with XBuild on
> both Windows and Linux.So you do not have to worry about Cygwin when
> you are in Windows.
>
>    To migrate the GNU Make based projects ,I really hope to develop a
> makefile to MSBuild project file translator ,which would help me to
> get rid of those makefiles.I have been planning this for
> years,especially every time building problem occurs.
>
> # Deliverables:
>
>    1.A MSBuild extension to support MSVC on windows,which is the same
> as the official one .
>    2.A MSBuild extension to support GCC on both Windows and Linux
>    3.A makefile translator.
>    4.A visualizing tool to edit MSBuild project files (which is less important)
>    5.A build server for FreshBuild  (which is also less important)
>    6.Some docs ,some examples and a test suite.
>
>    For such a project,I don't have to worry about tests.So I would
> take compiling the ruby installer as my goal.I shall translate its
> makefiles and compile it with MSVC in the end.
>
> # Project Details:
>
>    Some Backgrounds:
>
>    MSBuild is an Ant-like build system for Visual Studio,which
> supports VB and C# and is very extendible.Ever since VS2010 and
> MSBuild 4,it supports C++ projects.XBuild is the opensource edition of
> MSBuild.
>
>    -- I would start from XBuild,add MSVC and GCC support to it and
> implement some missing features if necessary.It is not difficult,but
> it needs a lot of tests.
>
>    -- I would also provide a MSBuild project file editor and a build
> server if possible.It may be developed in WinForms,
> Silverlight/Moonlight or HTML.If time is not enough,I would cancel
> this.
>
>    -- As to the makefile translator,It is a challenge for
> me.However,Microsoft also provided a NMake(the previous MSVC build
> tool) file to MSBuild project file converter. Since the capacity of
> MSBuild is a superset of GNU Make and it's so easy to extend ,it is
> possible to develop such a translator.I 'll write a makefile parser
> ,analyze the makefile structure ,do some replacement,and then generate
> the XML form build scripts.I have some experience in developing a
> compiler with Antlr,it would help.
>
>   -- All code will be hosted on a GitHub repository. Once the project
> is finished, it will be merged back into XBuild.It would be writen in
> C#.
>
>   -- MSDN would be the best document for this project, so my document
> would focus on the Linux cases. I would also provide some GCC samples.
>
>   -- As I mentioned before, the final goal of this project would be
> compiling the Windows Ruby installer with MSVC.
>
>   -- The development process is divided into multiple stages and
> during each stage it is mostly iterative and test-driven .I will
> firstly do some experiments,read the manual ,make up the test suit and
> then try to pass it.At last I would fix the remaining bugs.
>
> # Project Schedule:
>
>    I wouldn't wait for the summer vocation to start the
> development,though I would be less active before it.And during the
> development process, I am eager to communicate with my community
> users.
>
>    My schedule is made up of 14 weeks,started soon after from April 8,
>
>    Week 1 : Learn about the usage of MSBuild,go through the source of
> XBuild and try to do extend it.Considering I have some experience
> using and extending the MSBuild ,it wouldn't be a matter for me.
>
>    Week 2-3 : Create sample VC++ projects for tests,and start to
> develop the MSVC extension for XBuild.I just need to follow the
> MSBuild api in MSDN ,still ,it would not be a matter to me.
>
>    Week 4-6 : Create sample GCC projects from the  VC++ projects,dive
> into the GCC Manual and try to compile some softwares by Cygwin.I have
> to do a lot of reading,so it would cost two weeks.And then I will
> spend one week to develop the GCC extension .And I would also try GNU
> Make.
>
>    Week 7 : Study the GNU Make grammar and read through its
> manual.Also I should do some experiments on it.
>
>    Week 8-11 : Start writing the translator.I would write a lot of
> unit tests and develop the parser with Antlr.And I need to solve a lot
> of problems.Also,I need to try it on Linux.
>
>    Week 12-13 : Develop the MSBuild Project file editor and build
> server.If necessary ,I would also need to fix some bugs.
>
>    Week 14 : Hunt bugs and get feedback from community users.
>
> # License:
>
>    MIT License
>
> # Bio:
>
>    I am a junior student in the South China University of
> Technology.This is my first Google Summer of Code Project. I learnt
> computer programming (in Delphi) since my junior high school time.I
> have a lot of experience in C#,Java,PHP and Ruby.I have great interest
> in developing advanced compilers and high performance servers.I've
> wrote a Javafx-like language grammar and a matlab language grammar
> with antlr.I like opensource softwares ,but sometimes have problem in
> compiling,installing and fixing dependencies,which costs me a lot of
> effort and makes me angry.So I came up with this project.
>
> # Eligibility:
>
>    In many ways,I am an eligible student.I can provide identification
> if required.
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>


More information about the Mono-devel-list mailing list