Re: Has the CVM interprerter code been rolled into libjit?

"Eric Engler" <[email protected]> Sun, 17 Dec 2006 16:03:46 -0500
Newsgroups gmane.comp.gnu.dotgnu.developer
Message-ID <[email protected]>
>Speaking as the original designer of CVM (yes, I am still alive :-) ):

That's good news, Rhys! It's certainly better than the alternative.

I'm quite impressed with the work you've done here. This is indeed something 
to be proud of. I know the Mono people have a habit of hogging the limelight 
(not necessarily on purpose, but they have a lot more resources), but this 
project has also earned a place on the radar of open source lovers.

Since I have you on the line here...I understand the CVM issues people here 
have described, but it's not going to be easy for me to leverage this in a 
small embedded environment without a lot of work. And if I will do a lot of 
work (which is still uncertain, depending on how feasible I determine my 
goals to be), then I might as well broaden the scope and consider the whole 
gamut of solution possibilities.

My simple goal is to port C# (likely a subset), and the .NET Framework 
(definitely a subset), to generate simple deeply embedded applications that 
run on microcontrollers. I'll probably only need less than 5% of the .NET 
Framework functionality, but I'll need to leverage native code for many of 
the I/O subsystems.

Microsoft has recently introduced the MicroFramework, but that's about 250K 
in size (an estimate), and it has a lot of functionality I don't need. Its 
probably also not going to be free, but I don't know this for sure yet. The 
proprietary nature of this, and the fact that other people will decide what 
goes in and what stays out, makes this undesireable. It's also being 
designed for fairly fast processors with a lot of external memory. My target 
devices will likely be Arm7's and Cortex M3's having only internal memory, 
typically 256K to 1 Meg of flash, and about 8 to 32K of RAM. But I want this 
to be portable to other embedded processor families.

I want to stick with an interpreted runtime model for portability, and 
because it's easier to implement. I also want to integrate the essential 
features of a light RTOS into the interpreter to keep the overall footprint 
light. It's not going to be possible to run a separate RTOS in this kind of 
lean environment.

What are your thoughts on this idea? How do you think this model should 
work, both to maximize portability to various embedded processor families, 
and to minimize the footprint?

This is an open question for anyone to reply to, but please don't beat me up 
too bad. I know that PNET is much larger than I'm envisioning, and I want 
advice on how to scale down, or perhaps to implement a different kind of 
solution.

Eric

_________________________________________________________________
WIN up to $10,000 in cash or prizes – enter the Microsoft Office Live 
Sweepstakes http://clk.atdmt.com/MRT/go/aub0050001581mrt/direct/01/