[Mono-dev] the draft of GSoC Proposal for FreshBuild

Alex xtzgzorex at gmail.com
Tue Apr 5 10:28:33 EDT 2011


Hi,

Proposal looks good to me. Generally, mentors are selected after you
submit your proposal, so I suggest just going ahead and submitting
this to GSoC!

On a side-note, Mono is actually written in C, not C++. I don't know
if there's any C++ code anywhere, though.

Regards,
Alex

2011/4/5 Sharp BladeÎÞºñÖ®ÈÐ <sharper.than.bladez at gmail.com>:
> Here's my the draft of GSoC Proposal for FreshBuild,would there be
> anyone like to be my mentor ?
>
> =========================================================================
>
> GSoC Proposal for FreshBuild
>
> Personal Information
>
> Name: Jiacheng Jiang (Sharper than Blade)
> Email: sharper.than.bladez at gmail.com
>
> FreshBuild : Add MSVC and GCC Supprot to XBuild/MSBuild and Translate
> Makefiles to MSBuild Project Files
>
> 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 on both the Windows and
> Linux platform and cut down building  problems.Also,many opensource
> projects would benefit from the MSVC compiler in   performance, which
> can usually produce faster bytecode.FreshBuild is based on XBuild and
> would eventually merged into it.
>
> Benefits to the Mono and other Open Source Communities
>
>    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.
>
>    Building is not easy.Many opensource softwares are mostly
> targeting on Linux,such as ruby ,nginx,memcached and so on. To build
> those softwares on Windows,you have to install Cygwin and use GCC,even
> though the MSVC compiler is available.And to take the advantage of
> GCC,you have to use GNU Make,which requires you 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.I really hope to develop a makefile to MSBuild project file
> translator to migrate the GNU Make based projects,which would help me
> to get rid of those makefiles.Mono would then be able to be built by
> FreshBuild.
>
> 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
>    5.A build server for FreshBuild
>    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 the ruby installer as my target.I'll translate its makefiles and
> compile it with MSVC.
>
> Project Details
>
>    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
> implent some missing features.It is not difficult,but it needs a lot
> of tests. I would also provide a MSBuild project file editor,in
> Winforms.
>
>    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.
>
> 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 16 weeks,starting from April 8,
>
>    Week 1-2 : 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 3-4 : 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 5-7 : 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 a two weeks.And then I will
> spend one week to develop the GCC extension .
>
>    Week 9-10 : Study the GNU Make grammar and read through its
> manual.Also I should do some experiments on it.
>
>    Week 11-13 : 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 14-15 : Develop the MSBuild Project file editor and build
> server.If necessary ,I would also need to fix some bugs.
>
>    Week 16 : Hunt bugs and get feedback from community users.
>
> License
>
>       MIT License
>
> Bio
>
>    I am a junior student in the South China University of
> Technology.I have a lot of experience in C#,Java,PHP and Ruby.I have
> great interest  in developing high performance compilers and
> 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.
> _______________________________________________
> 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