[Mono-dev] greetings (new here)... a few things...

BGB cr88192 at hotmail.com
Tue Jan 6 08:35:27 EST 2009

[merging responses here...]

----- Original Message ----- 
From: "Seo Sanghyeon" <sanxiyn at gmail.com>
To: "BGB" <cr88192 at hotmail.com>
Cc: <mono-devel-list at lists.ximian.com>
Sent: Tuesday, January 06, 2009 7:07 PM
Subject: Re: [Mono-dev] greetings (new here)... a few things...

> 2009/1/6 BGB <cr88192 at hotmail.com>:
>> how much does mono depend on the specifics of its existing CLI / JIT
>> implementation?...
>> how much does it depend on Boehm and like?...
> Are you mostly interested in class libraries? As far as I know, Mono
> class libraries depend on "internal calls", and not much else. See
> also docs/internal-calls.


well, I have not yet examined the class libraries in much detail, but if 
they depend to heavily on the VM particulars, it may be a bit more effort...

but, alas, there are several possible .NET based projects I could mine parts 
from, in the worst case (doing something purely homebrew would be hopefully 
avoided, as then I am the only one working on it, and I am well aware of 
"this" sort of isolation...).

(whatever dependencies there are, I would like to be able to hopefully 
discover and consider).

but, anyways, I am hoping I don't just end up wasting the time of the people 
here, but this is always a risk I guess...

----- Original Message ----- 
From: "Robert Jordan" <robertj at gmx.net>
To: <mono-devel-list at lists.ximian.com>
Sent: Tuesday, January 06, 2009 7:26 PM
Subject: Re: [Mono-dev] greetings (new here)... a few things...

> BGB wrote:
>> I am also not all that likely to re-use the existing CLI engine, as
>> personally I find the code... displeasing...
> You might not be aware of it, but you're suffering from a declining
> not-invented-here syndrome ;-)

I regularly do NIH, but partly this is because I am fairly fussy about some 

I also feel that it is of some value to have multiple implementations of 
things available, and to be able to mix and match parts to get the desired 
results, so as I see it, NIH is not purely a bad thing, even if, yes, it is 
not the most direct way to do things...

this is after all, a good reason to have standards...

I don't mean to try to rip on the existing codebase that much, but it is not 
quite how I tend to do things personally.

after all, what has been achieved thus far has been impressive, which is 
more than can be said in my case. I usually end up making lots of code, 
often with a decently capable featureset, and at least as I view it, 
relatively clean coding practices, but the detractor is that code tends not 
to amount to much (I make code, but it tends to all be nothing of any real 

so, the achievements are impressive, only that is is not as easy to be 
impressed by the code in itself...

but, I expect that not everyone would like my approaches either, so that is 

> Both GC and JIT are replaceable in mono. The first is sanely
> replaceable while the latter is replaceable in theory, as
> nobody has done it publicly besides the now obsolete interpreter.

yes, and these are the main parts I am looking at.
not that I would do this in all cases (most of my code is specific to x86 
and x86-64, and so would not likely fulfill everyones' needs, and there are 
likely many other advantages as well).

the thing though is, I will just make much of what code I have available for 
whoever might be interested...

yes, I have looked at some of the GC machinery already, as well as some of 
the code for the object system, ...

however, as noted, a good deal more investigation is probably needed in my 
case (I have only looked over a small amount of the total codebase thus 

> Mono's BCL does depend on the underlying runtime. If you want
> to replace the *whole* runtime, a lot of internal calls would have
> to be provided by the new runtime. This can be avoided by
> implementing a new JIT as mentioned above.
> Al this stuff can be easily discovered by reading the source and
> the docs.

yeah, I have looked over parts of the source, but not that much (it is 
fragmentary, much like my reading thus far through ECMA-335...).

but, yes, the kinds of calls is about as big of a question as that calls are 
needed, so I may look into this.

I did not mean to say I think that libraries are fully independent of the 
implementation, only that from the design of CIL in general, it is likely to 
be much lower than for some other frameworks (where most of the framework is 
actually implemented in C, and most of what exists in the language is thin 
wrappers over the big mass of C...).

----- Original Message ----- 
From: Alan McGovern
Cc: mono-devel-list at lists.ximian.com
Sent: Tuesday, January 06, 2009 8:20 PM
Subject: Re: [Mono-dev] greetings (new here)... a few things...

>> I am also not all that likely to re-use the existing CLI engine, as
>> personally I find the code... displeasing...
> The time taken to submit patches to make the code pleasing to you would be 
> significantly less > than the time taken to rewrite from scratch. If the 
> patches are good, they'll be accepted. Why > not give that a shot and see 
> if you can advance your own project *and* mono at the same
> time, at a much much faster rate than you could by by rewriting from 
> scratch. Just my
> opinion ;)

the issue is, I am not sure if what I would want done could be accomplished 
within reasonable effort limitations using the existing code as a base 
without probably breaking much of it in the process (nor do I feel this 
would probably be to the best interests of either project).

it makes more sense as I see it, to try to establish clearly where are the 
lines of demarcation (this has proved difficult thus far, finding out 
exactly where one component ends and the next begins, ...), and where the 
code can be carved apart without too much pain, and then try to keep in mind 
who owns what, who is the authority over which features, and so on...

sadly, the way I do most things is different...

but, alas, ECMA-335 does not look like the simplest of technologies to 
implement, and I say this while claiming to be not entirely new to either 
compilation or JIT...

after all, it is not exactly difficult to severely underestimate the amount 
of work required for a project (especially when it comes to compilers and 
similar it seems...).

so, I am not trying to say that I think any of this is a trivial matter...

FWIW, I will mention that I have experience with doing runtime compilation 
of C code (wrote a C compiler and use C as a scripting language), and 
dynamic generation of native code for both x86 and x86-64.

however, I am personally moving away from the exact approaches used in my C 
compiler (this has proved sadly inflexible, and the core of this project was 
a component which is not so easily replacable as had originally been 

but, at least I have finally "given in" to a set of a few hacks that will at 
least allow me to target the thing to x86-64 (and my endless lame 
complaining about the SysV calling convention... which proves to be a piece 
of technology not easily targetted "effectively" by my existing skills, 
which is probably just sad...). I end up not even targetting the arch in a 
"good" manner, just resorting in some crude hacks to get it to work.

but, oh well...

> Alan.

More information about the Mono-devel-list mailing list