Hacker News new | ask | show | jobs
by monocasa 2303 days ago
The ObjC frontend was only released because Apple got sued for infringing on the GPL.
3 comments

And that, along with FSF's earlier refusal to accept patches to let gcc build for the Mac, may be the reason LLVM got the support it did. Two egotistical jerks butt heads, and then one of them found a billion dollars at his fingertips.
Do you have a link to that discussion?

Like gcc has built on mac for longer than Apple (then next step) was using gcc.

So the reason for that was that Apple was of the legal opinion that GPLed software was incompatible with their OS. Since they didn't have process boundaries at the time, all code running on the system, even the OS was basically linked together in a big blob. Apple thought (incorrectly) that allowing any GPL software would mean that they had to GPL their OS, and were vehemently anti free software.

I think under those conditions, the FSF's boycott was fair.

Er, no, that wasn't the reason at all. FSF boycotted Apple because of https://en.wikipedia.org/wiki/Look_and_feel#Lawsuits
Do you have any source for that? I found a post[0] on Slashdot from March 2000 that Apple "plans to assign the copyright for its changes to gcc to the [FSF]." Neither the post nor the comments I skimmed seem to make reference to a victorious GPL lawsuit. (Unfortunately the original mailing list post is lost.)

The earliest snapshot[1] of opensource.apple.com on the Internet Archive suggests that the compiler sources were available (under "cc") as of October 12, 2000.

Although that snapshot suggests the first release was version cc-792, I can't find older than cc-798 on the site today. But the NOTES file[2] is interesting, detailing NeXT's/Apple's earlier changes including release codenames. (3/19/97: "This is the first fully functional compiler for the PowerPC.")

I would guess that the earliest Apple shipped gcc was with ProjectBuilder in the Mac OS X Developer Preview which was in 1999. Maybe things start to get blurry with NeXT, WebObjects, etc. but it doesn't _seem_ like Apple was shirking it's responsibilities under the GPL.

0: https://apple.slashdot.org/story/00/03/17/1656240/apple-plan...

1: https://web.archive.org/web/20001012121451/http://www.openso...

2: https://opensource.apple.com/source/cc/cc-798/NOTES.auto.htm...

Ok, so I misremembered, it didn't get to the point of a full lawsuit, only lawyers sending increasingly nasty notes at eachother, but it's still the first GPL enforcement action.

Its was NextStep. They tried for a long time to ship a proprietary GCC, then a proprietary frontend with the rest of gcc, then finally backed down and released the frontend. This was all in the early nineties.

I see. I was just using Nvidia’s CUDA compiler and it seems to be similar—-a combination of a proprietary frontend based on EDG and gcc to produce actual binaries.
It's different, NVCC emits C code, then invokes a version of GCC on that code for the local system.

NextStep was trying to link a new frontend at the same level as C, C++, or Fortran, and just give the middle finger to the terms of the GPL.

Fewer people suing each other seems better in my opinion.
How about you comply with the terms of the licence if you don't want to be sued?
But if you use a permissive licence there's no need for anyone to sue anyone at all. Seems a better situation for everyone involved?
If GCC had been more permissively licensed then Apple would not have released its Objective C compiler, which would have been a worse situation for everyone involved (to include Apple: they are simply wrong that a proprietary compiler is better for them).

GPL tries to make the world better, by increasing the free software commons. BSD tries to be neutral, but one should not be neutral in a war of good vs. evil: (cf. Ireland, Spain, Sweden & Switzerland in the Second World War or Sweden during the Cold War).

Isn't that essentially saying "If nothing were illegal there wouldn't be anyone in prison"?
No it's essentially saying if projects like GCC published permissively we could all get along peacefully and wouldn't need to batter each other using the courts.
Except one of the things a "permissive" license allows that the "restrictive" GPLv3 doesn't is locking code behind patents.

Companies like Apple prefer BSD specifically because they want the option of taking someone to court if they want to.

The issue there is it removes freedoms from your end users. Now there's a multitude of binary distributions of LLVM, and users can't mix and match pieces of them.