GCC BTFO, AGAIN!

Yesterday, the big news was that OpenBSD was switching to Clang: marc.info/?l=openbsd-cvs&m=150109829003860&w=2

and today, we have this:

Chrome/Chromium Windows builds now use clang by default

groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/Y3OEIKkdlu0

STALLMAN ON A SUICIDE WATCH!

Linux is next!

Other urls found in this thread:

openbenchmarking.org/result/1404144-KH-CLANG359076
stackoverflow.com/questions/8205858/clang-vs-gcc-for-my-linux-development-project
openbsd.org/policy.html)
phoronix.com/scan.php?page=article&item=gcc7-clang4-jan&num=2
en.wikipedia.org/wiki/University_of_Illinois/NCSA_Open_Source_License
en.wikipedia.org/wiki/Clang
twitter.com/SFWRedditImages

Stallman hasn't cared about or touched that compiler in a long time

it has served its purpose, people still use it for shit, I doubt he cares

clang is bloated slow cancer tho
gcc optimizations are much better

Does this mean BSD won't suck all the dicks anymore?

>OpenBSD getting slower
I don't really care

It's a compiler, who gives a shit. It's job is to handle all the random bullshit that programmers throw at it. If it's not fast enough for you, throw more CPU at it.

GCC is slavery that results in being forced to use only one compiler

apparently clang's performance has improved a lot in version 4

OpenBSD has had llvm/clang in the base for the last few versions. They're working to make it the primary compiler chain on more modern platforms but GCC will still be kept around in base for older platforms where llvm/clang isn't supported.

>gcc optimizations are much better
LOL'd. Have you seen latest Phoronix tests? Clang is beating the shit out of GCC and it's not even fully tuned either.

I hate this board.

GCC still beats Clang in performance though.

openbenchmarking.org/result/1404144-KH-CLANG359076

Clang gets its ass handed to GCC (1:4), stop spreading FUD

It seems the main reasoning behind the change to clang is just getting a modern compiler chain. The version of GCC that OpenBSD uses is based on a very old version that predates the switch to GPLv3. Due to licensing concerns the devs decided to stay on that version indefinitely which makes more modern software that depends on newer compilers run like shit. It also complicates porting software to OpenBSD because the compiler in the base may not support all the required functionality.

why?

LLVM's codebase is infinitely superior but GCC still produces better binaries as of GCC7 vs. Clang4/5

you clearly have no idea what you're talking about and should not be replying to this post

go write some more fizzbuzz or something

>dem numbers

Excellent argument, really activates the ole' almonds.

read the phoronix benchmarks slowly and in parts so you'll grasp it better

Phoronix benchmarks aren't really relevant here, the version of GCC in OpenBSD's base is ancient shit and slow as fuck. LLVM/Clang is undoubtedly superior to their version of GCC and that's all they care about

THOSE DIGITS

phoronix more like

moronix

>I hate this board.
Because it challenges your 'religious' beliefs?

The only right answer in the whole thread.
They switched because of the license, not because of performance.
Performance wise modern gcc still slightly wins.

Hi guys I'm pajeet the hajeet.

then poo in the loo

haha guys this mayme just keeps getting more EPIC xDDDDDDDDD

>tfw on le 4cheddit avec les maymays

>They switched because of the license, not because of performance.
LOLNO.
clang is 100x better for development. it tells you where the errors are and even proposes fixes. using gcc is like trying to decode what some drunk retard typed up.

>i am brainlet, look at me!
Alright.

you've obviously never worked on a large c++ codebase with either the gcc or clang.
stay retarded, pajeet.
stackoverflow.com/questions/8205858/clang-vs-gcc-for-my-linux-development-project

Brainlet pls.
I'm using gcc exclusively. Without stuff for retards, like ide.
It can get a little bit cryptic with templates, but otherwise, you just have to know your shit.
Go read some more blogposts about programming, you halfwit.

What are you writing?

Buddy, i think you got the wrong door.
JavaScript club is two blocks down.

they switched because their existing gcc is so out of date that half the ports tree needed to build a new compiler as a dependency

>Linux is next
It is, actually they are going with a full GNU system now, GuixSD w/Hurd. In fact technically GuixSD is already GNU since it uses the 'linux libre kernel'. Nobody at GNU wants anything to do with kernel.org since it's director board is entirely made up of corporate shills from Samsung and Quallcom

>switching to clang
>Stallman on Suicide watch
OpenBSD already had forked gcc since Gplv3 became a thing, and were looking for a replacement since they were tired of maintaining a fork. They don't like LLVM, but are forced to use it as pcc is a bag of shit requiring constant maint as well.

Modern GCC releases (not the ancient fork OpenBSD is forced to use for licensing reasons) still blows LLVM out of the water but they're getting better with optimizations.

That's why he was so butthurt about clang in 2014 for compatibility commits that he actually declared war on them in his mailing list, also personally refusing the perfectly good commits, then proceeded to take a bunch of appealing features from clang to give to gcc 7?

Why do you think we have coloured output now after years of monotonic colour? Why do you think they've been working twice as hard on GCC these past few years? This, glibc and coreutils are the only things keeping GNU alive and keeping people donating to the FSF because even though the license is bullshit it's less bullshit than any of the proprietary alternatives.

Now there's a truly free compiler and, guess what, it's not only more modular, more performant, with clearer output than gcc, it's actually mostly compatible to gcc so software is very easily compatible for it, it's better optimized than GCC with link-time optimizations along with very efficient linktime optimizations that the GNU compiler lacks, it has more potential for porting to many different architecture without changing a thing for specific language front-ends, and you can use whatever the fuck you want with that compiler including proprietary plugins.

All Linux needs is a new, better libc (GNU's is objectively shit compared to the alternatives) and a better unix utilities suite that integrates more with the Linux kernel like the BSDs do and GNU is fucking dead.

No, LLVM is and for a good reason. It's a compiler framework that works for literally antyhing, there's even a chance that your graphics drivers are rendering through LLVM

FreeBSD is already fully compiled and debugged with LLVM in exception of kgdb, one of the kernel debuggers which I think there is work to make a klldb to replace it. I assume OpenBSD would like to do the same move, NetBSD can't because LLVM isn't ported to enough archs yet, so they need to stick to GCC for portability reasonsm although an llvm snapshot exists.

>All Linux needs is a new, better libc (GNU's is objectively shit compared to the alternatives)
musl is like 95% of the way there

It just needs better support, and the developers being so hard-headed doesn't help.

They won't define __MUSL__ in the library for philosophy reasons, but that just makes it very hard to port since compatibility in a LOT of software is done by doing ifdef __LIB__ or ifdef __OS__ then turning on or off compatibility switches in a header file. Occasionally this is done throughout the source code. Finding individual functions that musl either doesn't support or implements differently and then adding a switch specific to these functions is a huge pain in the ass and makes it less likely for most developers to add musl compatibility to their software.

They also will refuse to change some of their interface to make it more compatible to glibc again only for philosophy reasons.

While philosophy is good and all, not only does that force people to patch nearly everything, but patching is even more work just for a few simple things that they could do that wouldn't change anything to the inner project.

MUSL is very good performance-wise though, which makes it very good in embedded (or very small) operating systems/machines or on servers.

>truly free

Free for corporations to create walled gardens in order to deny you a free system in the future when all these hobby OS projects are killed off as future architectures will require a signed key from CPU mfgs in order to use their instruction set. In fact the entire OS will just be on the chip itself, with tightly sealed patents to prevent any modifications, prob within a decade.

Then you will truly be free!

You're a pajeet-tier shithead. GCC is an antiquated heap of crap designed to be incompatible with everything and it's obfuscated by design to protect the AST.

GCC is fucking dying everywhere. LLVM is growing like weeds because its developers care more about code and developers than GCC devs who only care about idiotic communist ideology.

There will be a time when only old shit and a bunch of demagogues still cling to that pile of crap while everyone's moved to LLVM.

>better unix utilities suite that integrates more with the Linux kernel like the BSDs do
Go away, Lennart.

That argument is simply not true in practice, nor philosophically.

Philosophically, the restriction to freedom is not a freedom. Not being able to do things like linking to another free but GPL-incompatible library (like CDDL) is not a freedom. Not being able to use the plugins you want on a fucking compiler to compile your software is not a freedom. And forcing developers to basically have EVERYTHING license to the GPL for a small GPL'd library that they'd like to link to their software is not a freedom. It's all unnecessary restrictions to fit with the worldview of a madman and to make people dependent on the FSF. If I'd like to make a program using GNU Readline, but I wouldn't want it to be sold commercially, I can't. Using an actual free license like the BSD 3-clause, I could. In fact, the original BSD rogue has this exact clause on its whole source file, and the freedom to add this clause is worth anything.

As for the corporations, in practice that's simply completely false. I'll take FreeBSD as an example. Among heavy users of FreeBSD are Apple, Netflix, Nintendo, Sony (various operating systems for various machines they are making, including all playstation after the PS3). All of these companies, although they haven't all kept the source open, have contributed back a bunch of bug fixes and improvement to the FreeBSD kernel and do sponsor regularly changes in the FreeBSD base that they would like. The reason for this is simply that giving money to the FreeBSD Foundation or to the FreeBSD project itself is ALWAYS cheaper than hiring and training your own FreeBSD technicians. It produces higher quality code, for faster and cheaper, and at the same time it helps open source projects. This kind of collaboration is VERY hard when the GPL is involved because the license rarely fits uses for the software. If they need something that's GPLd, they often have to rewrite it from scratch and spend a lot of money that's not going to an open source project.

>Calls person pajeet
>Shills Doo Doo with cuckold bdsm licence.
Really makes you think.........

...

>stackoverflow.com/questions/8205858/clang-vs-gcc-for-my-linux-development-project
Doesn't really convince me. Clang is said to produce 15-20% slower programs and that's a universally known fact.

You are wrong. LLVM is becoming more popular because it's easy to create new language backends with it. GCC is dying because C/C++ is dying. Which is not a good thing.

In GCC, languages are frontends, ISAs are backends. How hard is it to create new ISA backends for clang?

Get a load of this retard

Compiler backend only translate LLVM bytecode. I'm not sure whether it's much harder, but porting LLVM to one backend won't only make clang work on that backend, but all other languages reliant on LLVM. So regardless of how hard it is, you definitely get more for your work.

That was posted in 2011, idiot.

More software cucked by the retarded GPLv3 license..

>Doesn't really convince me. Clang is said to produce 15-20% slower programs and that's a universally known fact.
Clang these days runs circles around gcc. That's why everyone's switching.

Checked

Yeah, it's better than an antiquated version of GCC.

Source of this FUD?

Exactly

The point is not to help the corporate overlords whatsoever. Their end game is forcing you to use a sealed system that can never be modified both legally and without having the keys to sign the software. That's the whole point of the FSF license, it was designed to prevent them from building a dystopia but the greed of consumerism/money was too powerful it seems. Nobody can see past this it's like 2D flatlander world VS 3D, impossible.

Your benevolent corporations have not contributed any improvements, instead they've wrapped their own license around their improvements, and locked out the original developers as in the case of Apple jacking pf from OpenBSD.

No, actually what this does is that GNU has their own little ecosystem, and the corporations are just making more proprietary software, so the market is completely separated between proprietary and open. And we live in a capitalist world, corporations have more money than non-profit ideological organisations and money is power.

What BSD does is make ties between the proprietary and open source world, so that the proprietary world by relying on open source software may contribute through it through code contributions and sponsorships, and the open source world has a free environment (most BSD licensed projects are very strict about the licensing in their source code) and gets something back for it.

It's a healthy, mutual relationship that the GPL is harmful to.

Here's a short paragraph from OpenBSD's policy page (openbsd.org/policy.html) that sums it up pretty well.
The GNU Public License and licenses modeled on it impose the restriction that source code must be distributed or made available for all works that are derivatives of the GNU copyrighted code. While this may superficially look like a noble strategy, it is a condition that is typically unacceptable for commercial use of software. So in practice, it usually ends up hindering free sharing and reuse of code and ideas rather than encouraging it.

Also, as with every corporations, which are absolutely not benevolent by the way, their end game is to make money. And this, as I've mentioned, is part of why FreeBSD is so succesful among them. Because sponsoring changes that you'd like to see and contributing your bugfixes back so you don't have to maintain them yourself in your own branch is cheaper and more efficient than having to hire and train FreeBSD techs that need to learn how the whole architecture works before starting work and then need to be paid more, harder development time on your hardware-specific support that'll end up being even worse quality than if you had just sponsored FreeBSD for it.

Again, this is taking FreeBSD as an example, but it stays through for every project than any corporation would care to take in.

Has nothing to do with GCC. Chromium has always used clang you idiot. The only thing they're BTFOing here is the Visual Studio compiler for Windows users.

>Capitalism is all about "moeeeny is prower"
It is a system of creating businesses, both public and private, which band together to form a supply and demand economy that customers and businesses use MONEY with to exchange for goods and services.

benchmarks

Fair enough. It took a few hundred hours last time I tried writing a gcc backend, coming in with no fucking idea what I was doing.

>may contribute
oy vey. Even openssl and gpg have financial issues despite being super important.

>typically unacceptable for commercial use of software
Tell this to chink android vendors.

reported

You described markets, not capitalism. Capitalism has to do with property ownership and wage labor.

>implying Sup Forums knows what they're talking about and isn't just reading from their econ divinity 101 texts

clang was adopted for licensing reasons and this has been known to be coming for like a whole fucking calendar year at least

phoronix benchmarks are fake and gay, clang has come a long way but it's not as good as GCC

GCC is mature but at the same time dealing with GPL3 isnt worth anything, really

basically this means nothing and it wont make openbsd much slower

>gcc4
>the absolute state of openbsd

GCC wasn't updated because of the gpl v2 / v3 split

Are you aware of the absolute state of gentoo?

Those say clang wins 1 while GCC wins 5 tests. Are you pretending to be retarded?

its

>Switch to Clang
>But keep Gcc4

what?

phoronix.com/scan.php?page=article&item=gcc7-clang4-jan&num=2

find our youself, every time GCC wins it's by a tiny amount, most of the time when Clang wins it's by a large margin, the fact that Clang is not truly free software however can be discouraging, not to mention that the faggots at Apple and Google sponsor it.

>the fact that Clang is not truly free software however can be discouraging
Retard, BSD is a true freedom license. You're literally free to do whatever the fuck you want. GPL is a cuck license and is not freedom at all.

I can't wait till linux can be compiled with clang

THEO, YOU WERE THE CHOSEN ONE

YOU WERE GOING TO ADOPT THE PLAN 9 COMPILERS AFTER SOME SMALL CHANGES

YOU'VE DOOMED US ALL

Clang is not BSD

en.wikipedia.org/wiki/University_of_Illinois/NCSA_Open_Source_License

en.wikipedia.org/wiki/Clang

typical Sup Forums, talking shit and knowing nothing, all it took was a 5 second search,
K Y S

it's the right way to do it though

doing things the way you suggest inevitably leads to ifdef hell

making everything posix means it compiles fine on both bsd and musl

whereas the #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(ILLUMOS) line keeps getting longer and longer, and when upstream changes the code around it they don't think to change the code in the ifdef

with few exceptions (like lennart) upstreams are pretty friendly to posix patches, and integrate them pretty quickly. most of them are vaguely aware of the problem and just have no familiarity with making things posix compliant themselves. the patches only accumulate because upstreams are slow to *release* (patches will go away next package update) or because upstream is dead, in which case they wouldn't integrate a __MUSL__ patch anyway

nice thing about bsd-style licenses is that they all have different licenses but are typically compatible

c.f. gnu licenses which all have similar names but are completely incompatible (hence the proliferation of "or later" clauses)

As a lawyer i wouldn't call them licenses at all. They are usually just notices attached to a program.

well its still not explicitly BSD

what is a lawyer doing on Sup Forums

if you're here, then redpill us about them decryption laws when you have an encrypted volume and so on, in the US at least

Wtf? C/C++ are not dying because of fucking gcc dying. Get real mate