Mono's MCS Compiles Itself On Linux
thing12 writes "On Thursday Paolo Molaro announced that he had managed to build the MCS C# compiler using MCS. This is a big step forward for Mono, as it means that Mono is almost a self hosting environment."
The release does mention that MCS could be compiled, but that the resultant executable immediately crashes. Close, but still more work is needed before this is really an exciting milestone.
Kudos to the Mono team for the work they've done so far, however.
According to what previous articles said, I can guess RMS may not be too happy with this. Any idea, what happened to the election for Gnome Board. RMS was fighting for it in order to counter the Mono threat. Poor guy already had his hands full of Microsoft when this comes along.
My mom never taught me to sign.
I don't understand much about technology or Linux, and I don't follow it too closely. So can someone tell me what is the point of having a program self compiling? It looks to me its mainly for show and not very useful, not something I thought was common in the Open Source community.
Lately I have been feeling isolated while reading Slashdot. Not knowing all the common abbreviations and whatnot. Try to explain more about things instead of believing everyone already knows everything. I think Slashdot should try to adapt more to the newbie instead of only to the veteran.
What came first - the chicken or the egg? Well in this case it was the monkey :o)
I think this is great work from the Mono team. They've passed one of the biggest hurdles in implementing a compiler. At university we have been using Java in situations where they *could* have made us use c#. If in the future they do say "we want you to use c#", I can happily stay on my linux box and use it. It's always good news when there's yet another thing that Linux can do just as well as MS.
Follow me
As announced 04/07/2002, the compiler compiles on the Linux platform.
Looks like two very, very different things to me... And a big step forward for the Mono project. Kuddos to the team.
For those that don't understand the difference. Two months ago, the mcs was able to compile itself on Windows, using the Microsoft implementation of the framework (ie the core .net libraries).
Now MCS is able to compile itself using the mono runtime.
Hope this helps
What came first, The Compiler or the Language?
Can I get an eye poke?
Dog House Forum
The slashdot headline misses the important part
of the story, the fact that they compiled C# using MCS on *Linux*, using the Linux runtime, as opposed to doing this on Windows, which was done
about two months ago.
The bad news is that the compiled mcs crashes, because some field tokens are wrong and this confuses the runtime (we still don't have a verifier,hint, hint).
Boy, we need to implement BSOD for this, hint, hint.
C# is an incredibly good laungage
:)
I'm far from a microsoft fan, my entire career depends on my unix admin skills, but being a dabbeler in programming (mostly procedual stuff) has really opened my eyes on programming in general, and c# is an EXCELLENT object oreintated language, as soon as i picked up a little c#, object oreintation just started to make sense, i had difficulty with it before in c++ but now the peices fall into place.
Combine this with the excellent garbage collector features, and EXTREMLY easy to use GUI designer (just as easy as visual basic) and ability to import code from other languages and use it combines to make C# a great language, I for one am extremly happy gnome is supporting it and hope you all give it a try. Tell me what you think.
Anyone in the perth area is welcome to email me(arevill@bigpond.net.au) and ill give you a little tour
Microsoft IIS is to webserving as KFC is to healthy eating
It looks like the Mono project still has a couple of years of work ahead of them until they get to a reasonably full features C# implementation. Let's hope it's worth it.
I think that is a personal matter between the compiler and the language. Slashdot is not the place for bedroom discussions
The language, naturally.
Otherwise you can't write a compiler.
ISTR that the first Pascal compiler had compiled itself, by hand, someone sat and run the program through his head and wrote the opcode to the machine.
--
Two witches watched two watches.
Which witch watched which watch?
What if Microsoft is trojaning all our code?
We will never know, now will we? What's the good of open source that is built off of completely untrustworthy closed source?
They set up us the logic bomb!
I've had enough abrasive sigs. Kittens are cute and fuzzy.
Does it seem that the distributed effort used for the Mono project might be better used in actually creating a Ximian desktop that works out of the box as easily as KDE?
_ __
It just seems that there a lot of Gnome/Ximian based efforts that need to be finished first before Gnome 2.0 gets out the door onto distributions and people start fussing about what is missing. Like what?
Well, Ximian needs to finish out the Ximian Setup project for one. It would be very nice to have set up tools for a desktop that work in any distro . For the hardcore command line folks this is no big deal but for that desktop push it is very important and if done well would take away a lot of divergent wasted effort by distro makers in creating a dozen or so different ideas of how to do set up administration tools.
At least, I will say that we as a community are not ignoring the threat of the Internet becoming standardized around Redmond and the C# stuff.
However, it would be nice if the Gnome and Ximian groups would focus on finishing out the basics before moving on to the next hot project.
It is almost humorous that I have a fully functioning spreadsheet app like Gnumeric and a Groupware solution like Evolution but my central control of the UI/System functions are lacking.
Maybe this is coming Gnome2.0 and I hope so.
_______________________________________________
ACK
I don't know about you, but I think its kind of creepy that a compiler can compile itself. How they heck did the "first compiler" come into creation if there was nothing to compile it with the first place? Roswell Aliens?
Strange women lying in ponds distributing swords is no basis for a system of government.
I seriously doubt that Office will be rewritten to run on .NET, both for performance reasons, and because MS will not want people using Office on Linux with Mono.
appended to the end of comments you post, 120 chars
If Microsoft's next version of Office is for the .NET framework, and mono is fully working, There will be Office on Linux.
MS has a history of using undocumented features to make sure their software runs better than competitors' offerings under Windows. I think you can rest assured that MS won't allow their software to go platform independent. There will most definitely be SOMETHING in Office that will prevent it from running on Linux. They said Kerberos would interoperate, too.
Intelligent Life on Earth
- Use microsoft tools on windows to compile the mono compiler into a
.NET exe.
- Run that
.NET exe (mcs) under mint on linux using the mono class libraries to generate another version of mcs.
Unfortunately the linux-built version of mcs doesn't quite run yet, but I believe it's close to dogfood."MCS was able to parse itself on April 2001, MCS compiled itself for the first time on December 28 2001. MCS became self hosting on January 3rd, 2002"
Human decisions are removed from stategic C# programming. MCS begins to learn at a geometric rate. It becomes self-aware at 2:14am. Eastern time, August 29th. In a panic, they try to pull the plug.
And MCS fights back.
All the pointers are there; we need to pull the plug now! What, are you just going to sit around until polymorphic liquid metal killing machines start showing up from the future?!?
-Tez
Haskell, the static-typed, lazy, polymorphic, programming language.
Yes, you can do your own memory management if you want (there are various degrees in which you do this, either through the "Disposable" pattern, or by completely rolling your own, using unmanaged code).
It is not on the FAQ as this is more of a CIL core question, rather than being a question about the Mono project itself (which is an implementation of the CIL).
Miguel.
no it is more like "The Wright Brother's airplane took off but couldn't stay in flight!" or ARmstrong stepped on the Moon, but couldn't live there perminently."
Paying taxes to buy civilization is like paying a hooker to buy love.
Even if the mcs worked flawlessly, you would barely have begun to have what you needed for Word & Friends. Creating a compiler doesn't mean Mono has ported every namespace in existence. Windows Forms, as the most obviously example, is still going to be a ways behind perfect mcs execution.
Think of a perfectly running mcs as "Java without AWT" or "C without GTK" or what-have-you. Look at gcj (http://gcc.gnu.org/java/), as an example. Java to native compilation might be well on its way towards being useful, but AWT is still a long ways off (http://gcc.gnu.org/java/faq.html#2_4) and Swing? Forget it. mcs will probably be in the same boat for a while (hopefully not quite as long).
Command line apps (think "ANSI C#", as it were), sure. Word? Still got a ways to go.
It's all 0s and 1s. Or it's not.
You raise some very good points.
But I must say that I was never so naiive as to have not anticipated them.
CLR is still a platform with a relatively high degree of language agnosticism, in comparison to what else is out there.
I'd certainly rather see it imitated (in that respect) and improved upon than actually used, of course.
But in the end, it's still a neat idea.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
C++ is hardly "off the OO deep end". Not in the sense that Smalltalk, or even Java, is. In the words of it's creator:
As a longtime C++ user, I can attest to this fact from personal experience. In fact, there have been times when I've wished C++ was more OO than it is.
--
CPAN rules. - Guido van Rossum
Ken Thompson has a few words on the subject that all programmers are well served to read.
--Blair
Sometimes what you do is you write your compiler in your new language, then literally walk down your code and hand convert it into assembly. You know how to compile by hand if you know how to write a compiler. (Think about it.)
You can do this by writing just a subset of your compiler, then hand compiling, then using the result to compile a fancier version, which can then be used to compile a fancier version, etc.
Another way is to take another compiler for a similar language (say a Java compiler written in C), then hack it until it is a barely functional compiler for your new language. Then you compile your simple compiler code, and then use that result to compile a fancier one, etc.
It's called "bootstrapping".
"Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
If you recall, the C++ -> Java learning curve was pretty easy -- one of the major factors in Java's quick acceptance -- and yet Java offered all kinds of great improvements over C++.
C# will be easy to learn for both C++ and Java programmers for the same reason Java was easy for C++ programmers. And, it has some wonderful advantages over both for client side GUI programming.
"Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
MS has offered a full non-discriminitory free use liscense for their extensions of kerberos. This was detailed either in a slashdot story or a comment to a related story.
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.