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."
Seems they have managed to take yet another step since this slashdot article.
It's the mark of a mature, self-sufficient language. We have C compilers written in C. Same with C++, Java, and others. It's hardly useless.
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.
Lol, you guys sure have a short memory. This article was posted two months ago, here.
.NET.
If this was in fact news though, I'd mention that this will bring more linux developers to mono, thanks to there being a compiler for it that isn't just for
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.
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.
... and you know it.
how else should a microsoft compiler be compiled under linux? its the work of satan manifesting itself again before good old jesus comes to town and wipes us all out? i amm 100% sure that soon we will see cats hunting after dogs, fishes fly and steve ballmer talking backwards (ok he allready does that).
get your girl or boyfriend and make some love before our whole planet explodes. and yes, the story about america planning to use nuclear bombs against 'terrorists' has something to do with.
--
STOP THE GENOCIDE! RMS cut your HAIR!
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.
I've read the mono FAQ and rationale and... I still don't understand why I should care about this. Some of it is the lack of details - like they mention garbage collection but don't mention if memory can still be manually freed (something akin to Obj-C on Darwin seems best). Some of is that it isn't scheduled to run on my system (OS X). This really doesn't seem like much more of a solution to any issue than is already available via Java, Corba and other means. Oh well, I guess this is the constant question for this project and I should look through the archives, though I suppose if it was answered to my satisfaction I would remember it. And as is tradition, I must mention the "hope Sun learns a lesson and makes Java a public standard" sentiment (and please don't mention their fucking joke called the "Java Community Process" - only $5000 and I can have input on more than one API, yay!)
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?
Actually, the first compiler of Pascal was N. Wirth himself becouse he was the one who "compiled" the source into the binary ;))
Kuddos indeed! The managed to compile something a month into the future!
Spam removed for the Internet's pleasure
Indeed, the date is March 7th 2002, not April 7th 2002.
Kuddos to CaptainMunchies...
By whom?
So it begs the question. Why would anyone want to compile this lanuage on linux?
Obviosly because they are not the same people who said it was one of the worst lan(g)uages that Microsoft developed.
Homework #1: Learn to think!
Is it not possible just to run the Open Source equivilant in some other lanuage, perhaps one with a little more respectability (saying that only knowing majorities opinion.)
Homework #2: learn to spell as well...
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.
C# is not a bad language at all, it quite well made in my opinion.
.NET framework, you can run software on any OS that wasn't necessarily designed for it. .NET framework, and mono is fully working, There will be Office on Linux.
The major point that I see in the mono project is that with an open sourced implementation of the
If Microsoft's next version of Office is for the
The major reason people won't leave Windows for linux is the applications....when all the applications can run on both, wouldn't you rather have the OS that doesn't cost anything?
Reverse engineering an open source version here is a nice thought, but.... MS still controls the .NET framework definition. Because it is a proprietary standard, they can easily change it to where Linux runs poorly or does not have features available to those on a Win 2K platform.
What would have been nice would have been for MS to open the Framework to a real standards board.
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
Honestly is was the language specification that came first. The first assembler compiler was written in machinecode (0's and 1's) and then rewritten in assembler, the first C compiler was written in assember, the first C++ compiler was written in C and so on. I think the first fortran compiler was implemented in assembler too.
The better analogy would be "The Wright Brother's airplane almost took off!" or "Armstrong nearly stepped on the Moon!". Its not a milestone before its passed, only even if an inch is lacking.
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
Does this mean that were that much closer to porting MSFT viruses/worms to Linux? I guess its good to be on the cutting edge?
"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.
Then again, the fact that my compiler instructor had the last name of "Pagan" (I kid you not) probably didn't help...
"Prepare for the worst - hope for the best."
I can finally get Mono, which I never caught as a child. I would have loved 6 weeks of sick-time off from school, but I can't afford that much time off from work. Damn!
--
"Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
All we need next is for it to be able to program itself too, then we'll give those M$ bastards a run for their money! j/k
?-|||-----x<*))))><
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.
The post was wrong. MCS compiles on Linux, but does not compile itself on Linux. That's coming.
> The one good thing I've seen in all of this so called ".NET"
> is the language-agnosticism technic.
No, it isn't. Don't just brainlessly repeat marketing blahblah, neither MS's nor anybody elses.
In any place where a run-time behaviour plays a part, the specific implementation/design choices of the run-time environment, and its dynamic semantics, are quintessential.
There is no single runtime to host the wide scope of run-time semantics of the various programming languages.
Actually, there is one (that I know of). TAO elate is a machine code level 'VM'. It can host any language you can throw at it.
Which, IMHO, is the only way to make a runtime. KISS, remember?
I choose to remain celibate, like my father and his father before him.
What about the part where it joins up with Google?
And it still happens on my birthday!
My life's goal is to get a score of +3!
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
Yeah, not like there are any other examples of open source software based on proprietry software.
tlhf
xxx
Also, your linked article talks about a compiler which compiles itself. IE, GCC recognising GCC. Having GCC regocnise BCC, VC++, et al would be insanly difficult. Even more so in this case as Mono is being released after the Microsoft compiler.
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.