<div dir="ltr"><p dir="ltr">Wow. I'm not on the Mercury team and I share your frustrations regarding the build system (in fact, pretty much all of what you're saying is true), but I gotta step in here... <b>this shit is not cool</b>.</p><p>I've been on the receiving end of some pretty pissed off entitled users in my time, but I've never seen a rant like this about a free software product. If you were a paying customer, you might rightly be upset, but this would still be an inexcusable way to raise a complaint. As it is, you're presumably just some dude on the Internet who downloaded some software for free, got annoyed, and then swore your balls off at the developers. That makes you an entitled jerk.</p><p>Here's a tip: when you're working with free software, the developers are generally not obligated to do any work to either a) fix issues, or b) help you with your problems. However, many open source projects will do (b), if not (a), if you are polite about it. I understand the catharsis of writing an angry rant when some software is behaving badly, but might I suggest writing the rant, hovering over the "Send" button, considering the people who might have to read said rant, and then deciding to rewrite it in a polite and constructive manner?</p><p>You probably could have saved yourself some effort and made some friends if you wrote a polite mail to this list in the first place, before you spent two days trying to debug it yourself.</p><p>If they do fix this or update the documentation, I hope you will realise it is <i>in spite of you</i> and not <i>because of you</i>.</p><p>Matt</p><p>PS. Your main complaint is answered in the second question in the <a href="http://www.mercurylang.org/information/doc-release/mercury_faq/Installing.html">official FAQ</a>.</p>
<br><div class="gmail_quote">On Thu, Mar 12, 2015, 8:57 PM Michael Richter <<a href="mailto:ttmrichter@gmail.com" target="_blank">ttmrichter@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Yes, this is a rant.  No it isn't polite.  And, frankly, I don't give a shit.  If your feelings get hurt by people using bad words to describe your work you have two options: curl up in a little ball and pretend the bad man isn't out there, or man up and FIX THE FUCKING RETARDED SHIT YOU'VE WRITTEN!  (Sadly, I know which of these two I expect.)</div><div><br></div>The current system for building Mercury is an utter fucking disaster.  It is quite possibly the single dumbest thing ever put down in code in the past fifty years.  Not only does it default to building 14 "grades" (asm_fast.gc, asm_fast.gc.<u></u>debug.stseg, asm_fast.gc.<u></u>decldebug.stseg, asm_fast.gc.memprof, asm_fast.gc.prof, asm_fast.gc.profdeep, asm_fast.gc.trseg, asm_fast.gc.trseg.debug.stseg, asm_fast.par.gc.stseg, csharp, hlc.gc, hlc.gc.pregen, hlc.gc.trseg, hlc.par.gc, java), which means building the compiler by the conventional ./configure && make && sudo make install approach takes anywhere from 2 hours to 2 *DAYS* depending on the hardware, getting around this massive multiplicity of default grades requires advanced degrees in decoding whatever was pulled out of the documentation writers' asses the day the grades were "documented".<div><br></div><div>Look at the documentation you have on the grades.  Look at it closely.  Look at it WITHOUT YOUR YEARS OF HARD-WON ESOTERIC LORE.  Tell me, can you see anywhere any slight HINT of which grades interact well with each other?  Any slight HINT of which grades are likely to interact with each other by subtly fucking your end-users over with maddening heisenbugs?  Even a slight hint of which grades don't make any sense whatsoever?<br><br>For example, where can I find in the docs something that tells me that hlc.gc.stseg doesn't make any sense?  (Protip: you can't.)  And for bonus points, what happens if you tell the configure script that you want hlc.gc.stseg?  (Hint: it merrily accepts it, as does the build, which then mysteriously fails with bizarre compiler errors.)<br><br>Do you really hate your prospective users so much you won't even DOCUMENT your fucking "grades"!?  Like with a simple chart that shows at intersection points whether the combination makes sense or not?  I mean, I'm not even asking for code that does this fucking shit right: a configuration script that knows which grade combinations are legal/sensible/whatever, or a build system that doesn't expect to build the entire fucking world dozens of times up-front instead of building on demand.  I'm asking for a few words that explain the grades and their legal/sensible combinations.  Is that REALLY too much to ask after SEVENTEEN FUCKING YEARS of this language's existence!?<br><br>This rant brought to you by the disgusted giving up after trying to get Mercury running on a slow, non-x86 system for the past two days.  I'll leave it so someone less furious and more diplomatic to explain why what utter shit you have for a build process.</div><div><div><br></div>-- <br><div>"Perhaps people don't believe this, but throughout all of the discussions of entering China our focus has really been what's best for the Chinese people. It's not been about our revenue or profit or whatnot."<br>--Sergey Brin, demonstrating the emptiness of the "don't be evil" mantra.</div>
</div></div>
______________________________<u></u><u></u>_________________<br>
developers mailing list<br>
<a href="mailto:developers@lists.mercurylang.org" target="_blank">developers@lists.mercurylang.<u></u>o<u></u>rg</a><br>
<a href="https://www.mercurylang.org/lists/listinfo/developers" target="_blank">https://www.mercurylang.org/<u></u>li<u></u>sts/listinfo/developers</a><br>
</blockquote></div></div>