Is Mosa (going to be) a replacement for the AOT compiler?
I'm asking because we have several issues (also for the next
milestone) related to AOT.
If nobody's going to continue working on the AOT, and it's going to be
replaced,
then those issues would never be met and should be removed.
(for example: "AOT documentation issue" / "Support for floating-point
primitives and arithmetic issue" / "Add support for constructors of
arrays that are not 0 based.")
Also, there still seems to be one open issue on exception handling..
Anyone got any idea what the status is on that?
(same goes for "Some interrupts need to throw exceptions just like
DivideByZero" issue)
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
SharpOS-Developers mailing list
SharpOS-D...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sharpos-developers
My contributions to MOSA include:
- A compiler
- Beginnings of a VES with support for reflection and other things packed on
top
I hope we can extend this through shared efforts to include:
- A common kernel
- A common driver model and driver code
- A common port/adaptation of monos corlib
One additional goal is to make MOSA attractive for research.
I have a lot of ideas in this regard and especially my vacation week was
very productive to accomplish these goals.
My *personal* thinking of MOSA is that it acts as the core kernel and
SharpOS/Ensemble/... become distributions based on this kernel code in
different configurations including/excluding certain things. I know this
isn't easy for some of us and it isn't easy for Scott. However looking at
the active contributor lists and the overall progress this is the only way I
see both projects or either one can move forward. Either we work together or
we die together.
The AOT is working for us right now. I would like to keep it along as long
as possible. However there's no real maintenance there as I see it.
Mike
> -----Ursprüngliche Nachricht-----
> Von: sharpos-devel...@lists.sourceforge.net
> [mailto:sharpos-devel...@lists.sourceforge.net] Im
> Auftrag von Sander van Rossen
> Gesendet: Dienstag, 29. Juli 2008 13:36
> An: sharpos-d...@lists.sourceforge.net
> Betreff: [SharpOS Developers] MOSA / AOT
The MOSA Forum is at mosa.ensemble-os.org, its SVN is at
svn.mosa.ensemble-os.org (thanks Scott!).
There are currently members from JNode, Cosmos, Ensemble and SharpOS
registered with the board. The discussions have flattened a bit there,
but I still think the effort is "live". Ensemble is pretty much
committed to using/working with MOSA as they're basically waiting for
the compiler. However Scott is reserved due to SharpOS/Ensemble
architecture differences, which I think can be resolved though. If we
define proper interfaces and make all operating system "algorithms"
pluggable, we'll get this done and we'll get another point: We're
getting interesting from a research perspective. (Hi Adam!) A lot of
progress JikesRVM has made the past years is due to research
contributions - we have to get there to stay alive.
I know compiler writing is viewed as black art, however a proper
design deals with a lot of things without black art. If you take a
look at my work you'll certainly find that it has a lot of pieces to
it, but they're cleanly seperated and easy to replace (research!) and
it will move us forward IMO.
Mike
I'm absolutely for an initiative such as MOSA, and think it's a
fantastic idea and we should definitely go with it.
But if we're not going to use the AOT, the next question is; how far
along is the MOSA compiler, and how long (roughly) will it take before
we can start to realistically use it?
Because there are a couple of show-stopper bugs/features missing in
the AOT (such as the interface problem that Phil emailed about
before), and until we can compile the kernel as it is, and beyond, the
whole kernel development comes to a stand-still.
And like Bruce mentioned, most people here want to develop at the
kernel or user level..
So how are we going to handle this situation?
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
Just to throw in another option:
Don't the other teams, or at least the Cosmos, have compilers as well?
Although they're not designed as well in the basis as the AOT, maybe
we could 'borrow' one of these compilers for the time being until the
MOSA compiler is finished?
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
There's only two options available IMHO:
1. IL2CPU from Cosmos
Which could be used, but has its fair share of issues too. I'm certain that
we could get further with it than the AOT, but we still can't do an advanced
design AFAIK, as there's no support for Attributes, Reflection, ... However
we would have to ask Matthjis about this.
2. Bartok
We all know what that means ;)
Ensemble doesn't have one, but Scott is contributing to the MOSA compiler
and in total there's now 4-5 people working on it directly or indirectly. A
prioritized list of features would allow us to drive the compiler into a
specific direction, e.g. support certain things earlier than later. Ensemble
is in the same position as SharpOS with this respect, except they don't even
have an AOT to work with. Further speedups in the compiler are not possible
right now, as there's some blocking points that need to be resolved before
we go ahead and add more manpower to the compiler. I'm happy with those who
contribute their time, code and mind to it.
In fact I think we should use the time to redesign specific parts of the
kernel and refactor the existing code base. I know its hard without writing
a piece of new code, but I think this is the right time to document what we
have, where we want to go and how we want to get there.
Mike
> -----Ursprüngliche Nachricht-----
> Von: sharpos-devel...@lists.sourceforge.net
> [mailto:sharpos-devel...@lists.sourceforge.net] Im
> Auftrag von Sander van Rossen
> Gesendet: Dienstag, 5. August 2008 10:42
> An: sharpos-d...@lists.sourceforge.net
> Betreff: Re: [SharpOS Developers] MOSA / AOT
Von: sharpos-devel...@lists.sourceforge.net [mailto:sharpos-devel...@lists.sourceforge.net] Im Auftrag von Zachary Gorden
Gesendet: Dienstag, 5. August 2008 09:45
Yes, Cosmos has a full compiler.
> Although they're not designed as well in the basis as the AOT, maybe
> we could 'borrow' one of these compilers for the time being until the
> MOSA compiler is finished?
If you can live with our BSD license. :)
I think its much farther along than you think....
> design AFAIK, as there's no support for Attributes, Reflection, ...
They haven't been high on the list because we haven't needed them yet.
Mike
> -----Ursprüngliche Nachricht-----
> Von: sharpos-devel...@lists.sourceforge.net
> [mailto:sharpos-devel...@lists.sourceforge.net] Im
> Auftrag von Chad Z. Hower aka Kudzu
> Gesendet: Dienstag, 5. August 2008 14:11
> An: sharpos-d...@lists.sourceforge.net
> Betreff: Re: [SharpOS Developers] MOSA / AOT
>
--
Jonathan
Actually everything you said is my personal belief. And everything you wrote
is already in the design of the compiler. Native operations are handled by
marking properties, fields or methods with an Intrinsic attribute, that
tells the compiler here's special code to emit. I've read Chad's entry about
X#, but sadly think this appears nice at first, but causes a lot of
headaches afterwards.
You're right with the standardization needed. And I believe that this will
get going. I will personally try to drive it, once I've got more time to do
that.
Mike
P.S.: Here's an example:
/// <summary>
/// Provides stub methods for selected x86 native assembly instructions.
/// </summary>
public static class Native
{
// ...
/// <summary>
/// Wraps the x86 ldit instruction to load the interrupt descriptor
table.
/// </summary>
/// <param name="idt">A pointer to the interrupt descriptor
table.</param>
[Intrinsic(typeof(Architecture), typeof(LditInstruction))]
public static void Ldit(IntPtr idt) { ThrowPlatformNotSupported(); }
// ...
}
Using it is as simple as Native.Ldit(ldit) - the compiler knows not to emit
a method call, if he's running on x86 architectures. The other ones will
fail with a PlatformNotSupportedException. This is live code from MOSA.
> -----Ursprüngliche Nachricht-----
> Von: sharpos-devel...@lists.sourceforge.net
> [mailto:sharpos-devel...@lists.sourceforge.net] Im
> Auftrag von Bruce Markham
> Gesendet: Dienstag, 5. August 2008 16:22
> An: sharpos-d...@lists.sourceforge.net
> Betreff: Re: [SharpOS Developers] MOSA / AOT
>
> Well, like I said several e-mails back in this thread - MOSA
> needs to start talking about standards. Adding another
> compiler to the list, (whether call it a MOSA compiler or
> not, and whether we think it will be less confusing to
> maintain or not), doesn't solve any lasting problems.
>
> I was working on a multi-blog aggregator this morning (with
> hopes to pitch it in MOSA's direction eventually), using LINQ
> and Microsoft's ASP.NET RssToolkit, and found myself reading
> Cosmos' (Chad's) entry about "X#"
> <http://www.gocosmos.org/Blog/20080428.en.aspx> . Its
Actually it has worked very well for us. It's a 1:1 mapping, its not a
compiler more of a Mnemonic system. There is no way I'd go back to what we
had before or even Intel Mnemonics, AT&T or otherwise.
MOSA needs a domain. MOSA needs a mailing list. MOSA needs *people*. Then, I think, MOSA can sit down to create standards.
Answers inline.
> -----Ursprüngliche Nachricht-----
> Von: sharpos-devel...@lists.sourceforge.net
> [mailto:sharpos-devel...@lists.sourceforge.net] Im
> Auftrag von Bruce Markham
> Gesendet: Dienstag, 5. August 2008 17:22
> An: sharpos-d...@lists.sourceforge.net
> Betreff: Re: [SharpOS Developers] MOSA / AOT
>
> Okay, before anyone starts marking their scents on the ground
> - (I'm stopping you so I can get mine in there first) - my
> point isn't what looks pretty or doesn't.
I understood you right. I'm glad you're contributing your scents ;)
> My point is, MOSA needs to agree on how to handle (and how
> much to handle) differing paradigms. Grover, I'm glad you
> think you agree with me - but you didn't actually address the
> blunt of my point. The point being, the MOSA forums are
> almost as much of a ghost town as SharpOS is. It may be a
> compiler you are writing to contribute to MOSA, but MOSA as a
> whole (which in and of itself, is rather undefined), needs to
> have an infrastructure on agreeing on standards by which
> opinions or guidance can be generated in regards to *any*
> compiler, including this new one being written.
The MOSA forums are not used much right now. I agree with you
there. You see I'm in a weird position - I'm contributing things
and trying to drive the effort my way. I've been primarily doing
things by communicating with those really interested directly in
person and have used the resources SharpOS and Ensemble have provided
me with. The infrastructure (like Phil said) is being worked on and
will appear sooner or later.
> Calling it a MOSA compiler may not be accurate if it has to
> be branched four ways from Sunday in order to work with each
> project.
No branches. The design and architecture of the jit compiler is
flexible enough to survive differing OS designs, calling conventions
etc. I don't want to call it a piece of art because its not there
yet everywhere, but it will eventually.
> And maybe - maybe *thats* exactly how "MOSA" wants
> to do it. But there just isn't a clear enough definition of
> what MOSA is right now, for any of us to know how to feel
> about each other's compilers. (After all, we are trying to
> eliminate the "mine is bigger than yours" crap so that we can
> get along.)
Right. I've expressed my opinion about what MOSA is in the past. I can
repeat that here: MOSA is an effort to provide at least a toolkit of
ready made, tested and well designed components for all .NET CIL based
operating system efforts. These components maybe specifications for
interoperability, source code or other services. My personal belief is
that MOSA can consist of standard ready-to-use implementations of several
operating system services, which if used together result in a nice kernel.
However the goal there is to make every part replacable (like they are in
the current compiler!) so that every project can decide to pick this, that
or roll its own if it doesn't see the ready-made things fit.
> MOSA needs a domain. MOSA needs a mailing list. MOSA needs
> *people*. Then, I think, MOSA can sit down to create
> standards. There is so much to talk about, that I think we
> need some clear, defined space to do it in, so we can track
> what is going on.
I fully agree with you here. Like Phil said, we're working on it. By we I'm
talking about Adam, Phil, Scott, rootnode and myself. (Sorry if I forgot
someone,
as always I'm on the run.) These are five people with differing interests
and
focus coming from various backgrounds that are actively contributing in
various
ways there. The space is being worked on, however what hasn't been discussed
yet
is where we'll start. More on this below.
> When you guys first started talking about MOSA, I didn't
> think about code at all. But code is an understandable
> extension of agreed-upon specifications. Specifications that
> we need to take time, space, and conversation to figure out.
> The MOSA AOT is fascinating and exciting, but conversations
> about it are moot for now.
This is the point where my opinion differs by far from yours. I consider a
compiler and runtime environment *the* two *key* pieces of any effort. If
your
compiler isn't capable of certain things, then you can't use them. Which
means
that you either start adapting your designs to a lacking compiler (like
SharpOS
is right now) or you freeze those efforts and define a specific set of
features you
need from the compiler in order to do a *good* design. The latter approach
is
IMO the right one and the one I'm pursuing. I have a design of a lot of
these things
in my mind and the compiler is the core puzzle pieces - the first one of a
larger
puzzle. The MOSA driver model Phil works on builds on a set of features none
of
the existing CIL-to-native compilers have - but it's design is very much
.NET. It
is using attributes, interfaces, abstract base classes etc. Things that make
.NET
pretty in contrast to the unmanaged world. And please stop talking about the
compiler as an AOT - in fact it is not. And one of my next contributions
will add
jit trampolines and dynamic compilation *on Windows*. It is a jit in the
disguise of
an AOT - and they will even differ a lot due to the use of different
compilation
pipelines.
I know you won't agree with me on some of these thoughts and this is really
ok.
Mike
The MOSA forums are not used much right now. I agree with you
there. You see I'm in a weird position - I'm contributing things
and trying to drive the effort my way. I've been primarily doing
things by communicating with those really interested directly in
person and have used the resources SharpOS and Ensemble have provided
me with. The infrastructure (like Phil said) is being worked on and
will appear sooner or later.
No branches. The design and architecture of the jit compiler is
> Calling it a MOSA compiler may not be accurate if it has to
> be branched four ways from Sunday in order to work with each
> project.
flexible enough to survive differing OS designs, calling conventions
etc. I don't want to call it a piece of art because its not there
yet everywhere, but it will eventually.
> MOSA needs a domain. MOSA needs a mailing list. MOSA needsI fully agree with you here. Like Phil said, we're working on it. By we I'm
> *people*. Then, I think, MOSA can sit down to create
> standards. There is so much to talk about, that I think we
> need some clear, defined space to do it in, so we can track
> what is going on.
talking about Adam, Phil, Scott, rootnode and myself. (Sorry if I forgot
someone,
as always I'm on the run.) These are five people with differing interests
and
focus coming from various backgrounds that are actively contributing in
various
ways there. The space is being worked on, however what hasn't been discussed
yet
is where we'll start. More on this below.
> When you guys first started talking about MOSA, I didn'tThis is the point where my opinion differs by far from yours. I consider a
> think about code at all. But code is an understandable
> extension of agreed-upon specifications. Specifications that
> we need to take time, space, and conversation to figure out.
> The MOSA AOT is fascinating and exciting, but conversations
> about it are moot for now.
compiler and runtime environment *the* two *key* pieces of any effort.
If
your
compiler isn't capable of certain things, then you can't use them. Which
means
that you either start adapting your designs to a lacking compiler (like
SharpOS
is right now) or you freeze those efforts and define a specific set of
features you
need from the compiler in order to do a *good* design. The latter approach
is
IMO the right one and the one I'm pursuing.
And please stop talking about the
compiler as an AOT - in fact it is not.
And one of my next contributions
will add
jit trampolines
I know you won't agree with me on some of these thoughts and this is really
ok.