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 nice to know that it can build itself, too bad that then it immediately crash and brun. /.?
It's a good step in creating a self - sufficent Mono implementation.
But didn't that story already appear on
--
Two witches watched two watches.
Which witch watched which watch?
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
>sigh i guess this will resurrect the tired old .NET v. mono flames and wars again? oh well... i guess we gotta have SOMETHING to do during the last few days of our recession, eh?
speaking of which, saw a report last week that the recession here is fading and some speculate it might be over!! wooo!! go economy!! wooo!
oops, that was off-topic..crap...
What came first, The Compiler or the Language?
Can I get an eye poke?
Dog House Forum
Yeah, guys. Way to go. Instead of fighting .NET and so Mono is a huge step backwards.
.NET by ignoring it (worked for ActiveX), you are using valueable resources to imitate it.
And comparing certain other technologies,
We had code mobility, distributed apps, services (including web services) two years ago.
Does anyone actually think Microsoft will really be supportive of Mono? It already appears that Ximian has recognised Microsoft's problems with GPL by changing the Mono license to that of XFree86 but is that enough? They must be looking for ways to prevent the use of Mono on Linux at all costs. All this talk of BSD good, GPL bad etc. Mono and Linux would be a threat to their domination and exploitation of .NET and its users if it ever takes off.
Here is a quote from the first link in the write-up:
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).
In other words: it compiles itself, but the compiled version isn't actually able to run yet...
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.
This article is quite disturbing for people who do not know what MONO is. After reading the other article on slashdot I have found out what it exactly is ... So far for descriptions-that-make-sense-for-all-of-us!
Next to that it seems banners are getting effective starting now? I saw a block > the size of this submitbox under the article text when I was reading this article.
So 10:45am local time (4:45am?) is bannertime?!
--- I am known for the ones who want to find me on the net. Is that a privacy risk or a privilege? One might wonder..
... 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.
Wow that sites layout is worse than Slashâ's!
Special people have long socks, ride short buses, & invent witty sigs.
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?
There is no such language like "Iraqui". Most of the iraqui people speak arabian.
So obviously you dont know anything about the topic you are talking about. But nevertheless you are convinced, your misinformed opinion is a valuable contribution.
Thanks, ok.
C# was said to be one of the worst lanuages that Microsoft developed and it was being flamed here openly(not like that is a suprise at all). So it begs the question. Why would anyone want to compile this lanuage on linux? Why the effort, is this a struggle in the effort against .NET? Please forgive my ignorance, but I am very confused.
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.)
If we don't make light of everything, we are just stumbling in the dark - Blank
Actually, the first compiler of Pascal was N. Wirth himself becouse he was the one who "compiled" the source into the binary ;))
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...
The chicken crosses the tracks at midnight and the cow jumped over the moon.
Actually Pascal has modelled after the very popular Zimbabwan language "Ooobu Ooobu". Zimbadwans regularly have been known to utter such phrases as "BEGIN, WITH, END, println". I should know - I am Nicholas Wirth's love child.
So a compiler has compiled itself. Big deal. This sort of process has been going on for 40 years and is the normal bootstrap process. It's only surprising that (a) it's taken so long and (b) that the perpetrators think anyone's interested.
Time to get a life, folks.
"So obviously you dont know anything about the topic you are talking about. But nevertheless you are convinced, your misinformed opinion is a valuable contribution."
The comma after "convinced" is ungrammatical. But, nevertheless, you are convinced that your ungrammatical opinion is a valuable contribution.
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. Being able to use the superficial syntax to get something running does not mean that you're using that particular language. More is involved, and the CLR does NOT provide an abstract runtime-environment, and all possible designs and implementation choices for it.
Have a look at the runtime semantics for a few languages -- Python, Java, C++, Objective C, Smalltalk, Common Lisp, C#, for example.
And then have a quick glance at One Runtime to Bind Them All.
> 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. Being able to use the superficial syntax to get something running does not mean that you're using that particular language. More is involved, and the CLR does NOT provide an abstract runtime-environment, and all possible designs and implementation choices for it.
Have a look at the runtime semantics for a few languages -- Python, Java, C++, Objective C, Smalltalk, Common Lisp, C#, for example.
And then have a quick glance at "One Runtime to Bind Them All".
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 think he would say the same thing had the Wright Bros' plane spontaneously exploded on startup...
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.
...but, what does "Some of is that it isn't scheduled to run on my system (OS X)." mean in English?
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.
I didn't post that. Hence it was AC. I post with my actual name.
-I Want GNU!
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<*))))><
Everyone has had that for years... How about now having it cross platform?
Well it is useless when the resultant image fails to run because the compiler generated incorrect code. How about they save announcements like this till it actually compiles a /working/ version?
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.
The post was wrong. MCS compiles on Linux, but does not compile itself on Linux. That's coming.
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
I've been under surveillance for 2 years now, they actually do look for or even block words like this.
I've sent an email like that to the local echelon agency, they got shitty I knew the keywords.
I've had emails blocked from the network with words like that, I know what I'm talking about.
When you get secret service spying on you, then you are qualified to moderate me. Just don't give me your bad reasons for moderation.
- Kaos games and encryption systems developer
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."
Why iss it that you haven't been moderated down by some linux zealot who doesn't like the truth of GNU being told ?
.NET ? You're only setting yourself up for embrace, extend and extinguish...
Yes, Stallman did dedicate his life to stealing AT&T crapware under the title GNU. Yes, Mono is stealing crapware from microsoft.
Why would Miguel de Whatever need to steal C# ? Java 1.4 SE and Java Enterprise are better and more widely accepted as a cross platform language.
So why should any self respecting linux geek want to support microsoft
I suppose this is beyond the foresight of most linux zealots who only see critism of linux to be moderated down...
- Kaos games and encryption systems developer
I'd say screw the bearded weirdo...but he might take it literally
Mono is run by a confirmed faggot. What did you expect? Maybe Miguel can give us some interior decorating tips too.
Gayer than a $2 bill.
Well the c#.net is $100usd, I personally do not need the vs.net which is vb.net + cs.net + c++.net + MoreCrapp.net