[Mono-dev] Crash course on bringing .NET open sourced code to Mono.

Marek Habersack grendel at twistedcode.net
Mon Nov 17 11:01:34 UTC 2014


On 15/11/14 15:48, Miguel de Icaza wrote:
> Each one needs to be discussed
>
> Some of the Ms behaviors don't work on Unix, so not only we shouldn't bring it, we should work towards a better shared
> set of new Apis
I would be all in favor of this approach. In fact, I'd advocate for having a rule that forbids bringing non-trivial 
Microsoft sources to Mono as they are. Not because they are bad, but precisely because they have lots of 
Windows-specific code that will not work on other platforms. The fact is that Mono source code is far more portable in 
many areas. I think the way to work with it is to review each non-trivial source side-by-side and bring the missing bits 
to the Mono side (as well as fix the apparent bugs) by modifying the Mono sources using the Microsoft ones as reference. 
Adding tests in the process will ensure that the behavior is the same for both sets of sources and, in the end, we'll 
have a solid base for the better API Miguel mentions. Mono sources could serve as the base for this being curated for 
portability over 14 years of development (first, of course, we'd have to get rid of the #ifdef cruft, clean up the 
sources, get rid of all the guesswork implementations we had to do over the years). In general, I think we shouldn't 
rush anything but take our time to produce codebase that merges the best of both worlds. Community help would be 
greately appreciated here - the more eyes on the sources, the better. We should peruse PRs and put as many eyes on them 
as possible.

marek
>
> Not sure what you meant in this specific case.
>
> On Saturday, November 15, 2014, Greg Young <gregoryyoung1 at gmail.com <mailto:gregoryyoung1 at gmail.com>> wrote:
>
>     What's the plan on where there are differences in behavior? An example of this would be uri matching. I would guess
>     it makes sense to use the ms stuff moving forward, how will changes in current behavior be communicated
>
>     On Saturday, November 15, 2014, Miguel de Icaza <miguel at xamarin.com
>     <javascript:_e(%7B%7D,'cvml','miguel at xamarin.com');>> wrote:
>
>         Hey guys,
>
>         Sami reached out to me, and was wondering how to get started in bringing some code to Mono, in particular WCF to
>         Mono.   So I wrote this small guide for newcomers.
>
>         I would say it takes a couple of steps:
>
>           * Build your own local version of Mono on Linux.
>           * Make sure it works "mcs" should be able to run after installing it.
>           * Run a trivial self-hosted WCF server/client
>           * Make a trivial change to the WCF class library, and install this version to test you can make changes
>             locally and have them run:
>               o cd mono/mcs/class/System.ServiceModel
>               o Make changes
>               o make install
>               o Run your test again in another window
>               o Repeat
>           * Make sure you can run the test suite:
>               o cd mono/mcs/class/System.ServiceModel
>               o make run-test-local
>
>         Once you are ready, you can start importing code.   Ideally, you want to go for high-value targets: the most
>         buggy parts of Mono's stack (you can check bugzilla for reports on memory usage, bugs).   Or you can pick a
>         missing feature.
>
>         To import code, modify the relevant ".sources" file in the System.ServiceModel directory (where you ran the
>         test) and replace a local file, with a reference to the "referencesource".
>
>         Chances are, you will need to make changes to the "referencesource" code, since a lot of it is Windows specific.
>
>         Miguel
>
>
>         On Fri, Nov 14, 2014 at 5:25 PM, Sami Ben Grine <SBen-Grine at axarosenberg.com> wrote:
>
>             Sweet – is there anything I can do to make progress?____
>
>             __ __
>
>             I am somewhat ignorant about Mono but I am pretty ok with .NET and Linux.____
>
>             __ __
>
>             thanks____
>
>
>
>
>     --
>     Studying for the Turing test
>
>
>
> _______________________________________________
> 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