Hacker News new | past | comments | ask | show | jobs | submit login
Apple: We have decided to no longer release Libm source (2013) (openradar.io)
65 points by dvhh on Oct 24, 2014 | hide | past | favorite | 41 comments

The opensource.apple.com website provides less stuff for every OS release. iOS releases stopped at iOS 6.1.3 (nothing for 7.0.x, 7.1.x, 8.0.x, 8.1.x). OSX releases are usually delayed for quite a while (10.10 is not yet there, for example).

The trend here has been to close up more and more stuff for quite a long while already :(

Are we honestly surprised? Apple has a history of being quite hostile to consumers despite their image as a trendy company. Nothing they do is done unless there's an actual threat to their bottom line, whether it's finally offering larger screens for the iPhones, finally making iTunes (partially) DRM free or closing up code/eliminating venues for cross compatibility.

Apple is about anti competitive as they get.

DRM in iTunes was solely at record companies request. Not an Apple choice. This has been repeatedly covered before.


I would argue that Apples strength is it's ability to make daring technology choices which drives the whole market forward. (Adoption of USB, dropping floppies, CDROMs, introducing iPhone, iPad) and in the long run that is very pro-consumer.

Labels who requested that their songs be DRM free in the iTunes store during this era were denied that option.

Jobs called for DRM free music because he saw that he was going to run into serious anticompetitive charges if he didn't allow for people to use iTunes purchases outside of iTunes and iPods.

Do you have any fact-based evidence for the second claim?

> history of being quite hostile to consumers

That's going to need some really impressive fact-based justification.

I think a good case could be made Apple's the only PC maker focused on making mass market consumers happy (vs enterprise or technology buyers).

They've also seemed more focused on the product experience than on market share.

- - -

Some TL;DR specific thoughts on each of your examples:

- "finally offering larger screens for the iPhones" -- the giant screen move feels anti-Samsung, not pro-consumer. There is an ideal one handed screen size, and the 6/6+ are not it. The 5 series was already pushing it. The problem for Apple is in the big box or mobile store, bigger looks better. In every day use, once the phone is part of you, one handed becomes natural when right sized. (If you've only used bigger, you don't know any better.) In the store handling with two hands, you don't realize it won't go well. Buying experience and using experiences are at odds here, though I grant the bigger screens are nice when you are not mobile.

- "finally making iTunes (partially) DRM free" -- it's well documented that movie, TV, and record industry execs were the problem here, not tech providers, and Apple's fight to liberate music was quite public.

- cross compatibility -- this is a bugaboo (something that causes fear or distress out of proportion to its importance). with rapidly evolving technologies, it's extraordinarily difficult to have an end to end ecosystem 'just work' for normals not interested in diagnosing why it fails. Apple controls that end to end to make sure it works. Even then, things happen, like the Airport Extremes and iOS 8 WiFi, but because they control both, they can release updates to both to fix it. They don't have to support the lowest common denominator, they can push for performance and stability both. The bargain a user makes with Apple is "buy into the ecosystem, get peace of mind and eliminate the need for a tech guru."

Well, I remember another Apple, back in the 80-90's.

Not the open source friendly one, that developers that only know Apple since Mac OS X days seem to think about.

Exactly - Apple has always been about control. Back when Microsoft was building up their software monopoly, Apple was aiming for control of both hardware and software.

Maybe they require it for their users' benefit or something, or say they do, but Apple is very much about control in a way that I, as a hackerish kind of guy, am not ok with for the core of my computer usage.

My parents have Macs on the other hand, and are very happy with them - it seems to be a good system for the kind of people who don't hack on stuff and like the tight integration.

It’s also a good system for people who don’t have time to hack on things that aren’t related to their core interests. Like me. I stopped building my own PCs in 2001 (when I switched to laptops almost exclusively) and stopped fighting with both Windows and Linux desktop configuration horrors in 2006 (when I switched to Mac OS X as my host system).

I have things that I think are far more interesting to work on than worrying about hardware compatibility. If I ever reach a point on Apple hardware + software where I can’t hack on the things that I want to hack on, then I will leave it. But as of right now, it gets out of my way and lets me do those things that I want to do. (Some of the various Linux distros have gotten better about this, but they aren’t there yet, even for me—and definitely not for my wife.)

I've been buying Dells with Ubuntu for something like 10 years, and once in a while have a minor annoyance with something, but not more than I see people complaining about on twitter with their Macs.

And I have had occasion to hack on low-level stuff like kernel drivers, now and then, so knowing the whole system well because I use it every day has been an advantage.

Yeah. Ubuntu’s one of the ones that have gotten better. When I was still working with C++ for multiple platforms (Windows, Linux, AIX, HP-UX, Solaris, …) I ran an Ubuntu desktop with VMware Workstation to contain Windows in a useful (less dangerous) place. With the exception of some stupidity around hald with Ubuntu 8.04, it was pretty good (there were several other people who followed my lead on this) except that I still had to run a VM to read email (Outlook; no good connector, and the web access was suboptimal) and other stuff.

I could probably switch much easier to a Linux system now, but most of the systems that I’ve played with just don’t have the same level of polish that I expect from a desktop system, and I don’t want to hack on kernel drivers—it just doesn’t interest me.

Other people will make other choices. To make a slightly tortured analogy, I need a pre-assembled propane barbecue, because I have food to make. Other people want to go through the whole process of building their barbecue (or at least putting its pieces together), but I’d rather be cooking. De gustibus, ya know.

> To make a slightly tortured analogy, I need a pre-assembled propane barbecue, because I have food to make. Other people want to go through the whole process of building their barbecue (or at least putting its pieces together), but I’d rather be cooking

That's kind of funny :-)




Making it took much less time than it takes to smoke most things. The turkey took about 12 hours, but it was the best turkey I've ever had!

I'm astounded by the stories of misery I hear from computer people trying to install Linux in the past 5 years. I agree that an appliance like Apple or Google produces might be more useful for them: in the worst case, they can just send it back to the company, and since it's going to be replaced every 1.5-2 years anyway, all problems are going to seem more ephemeral at that rate of consumerism.

I'm shocked at hearing those complaints from people that want to be hired to use computers, though. If I (as a developer) couldn't handle installing a post-2010 Linux system within a few hours, I'd be ashamed, not indignant.

Well, some chipsets, gpus, etc are just broken in the kernel and do not work, and you have to put hours in trying to fix them.

I recently built an OpenSuse box for a client, and since there is no "good" motherboard manufacturer for Linux, I have to just randomly hope whichever one I get works.

I've gotten Gigabyte, MSI, Asrock, and ASUS boards in the past. Of those, only Asrock supports dhcp online updates to the firmware, which is nice considering most of them supply some shitty proprietary firmware installer on Windows without firmware imgs. So I went with an Asrock board.

Now, I know from experience Asrock boards wipe their EFI boot menu when you update the firmware, so you need a thumb drive to boot into a Linux to readd your OS to the boot menu. Their proprietary EFI gui is all right, better than ASUS' in my book.

Problem is the board came with a mini-pcie slot, which did come with an Atheros NIC, but something in that pipeline (board -> PCI -> NIC) meant that handshakes would always time on when attaching to wifi. Dmesg was never useful, it would just keep retrying requests without getting responses.

And then sometimes it works, randomly. It is probably an electrical problem somewhere along the chain, but considering it was just a perky extra rather than an important part of the system, I'd rather not go through the pain in the ass of RMAing a board to get on back that might work.

I think fundamentally the problem is that unless you buy from Zareason / Thinkpenguin / System76 (in the US, that does not have consumer protection laws that mandate systems be made available without OSes like in Europe) you are stuck building your own, and there is no computer you can assemble that whole stack has Linux support.

I know that Mushkin and Kingston have SSD firmware updaters for Linux. AMD and Intel obviously support Linux. RAM vendors do not need to care about OS, that is the firmwares problem. But not a single motherboard vendor supports Linux, and that is a real problem.

I didn’t say I couldn’t handle it. I said that my time is worth more than the annoyance of dealing with Linux on the desktop. I have made different choices about time prioritization, and one of those is that I have other work to get done.

(I also tweak my environment—I maintain my own cross-compatible dotfile environment that gets me running on Linux or OS X in minutes, and the same for my vim config. But I’m not interested in playing with the kernel or graphics card or whatever. I’m interested in a computer that works with as little intervention from me as possible.)

> I have things that I think are far more interesting to work on than worrying about hardware compatibility.

I've never used an Apple system, but I have the impression that only a subset of third-party hardware is compatible. Is that accurate? I've perhaps deduced incorrectly from the number of one-star Amazon reviews that decry 'lack of Apple drivers'.

To me that would be frustrating since there are only two parties that can resolve such an issue ( Apple and the vendor ) rather than in OSS world where there's a chance of reverse-engineering a driver.

I suspect that it’s accurate to a point. Most of the hardware that I use is also limited and/or works through reasonably well-defined interfaces. I’m a software guy, so I’m mostly not trying to plug in hardware that does fancy things. (I will note that it works just fine with the MicroView Arduino I backed on Kickstarter.)

This might or might not be an issue. Personally, I've never encountered it.

To be clear, I started with the Apple II+, stayed Apple through Mac SE/30, switched to Wintel for enterprise interoperability till Apple adopted Intel CPU and switched back.

"In every day use, once the phone is part of you, one handed becomes natural when right sized."

Am I the only one who almost never uses a moble device one-handed? Anything that requires fairly rapid accurate tapping, I just can't do reliably with my thumb.

Actually, now that I think about it, it probably has to do with the fact that I turned off auto-"correct" from the very beginning, so when I'm typing I have to tap every single character manually.

Given that this is surfacing now – two years after the radar was filed and 19 months after Apple responded – I'm going to go out on a limb and say this isn't a big deal at all.

Apple keeps touting itself as the only company able to offer such end to end integration between hardware/software/services. If this is true, it would be nice to see them make a real effort to open more of it's code base to help improve the software ecosystem overall. Hell, they could open source all of OSX and I doubt it would have any effect on their overall revenue/market position, while gaining them serious brownie points in tech circles. I know it's not a huge incentive, but a geek can dream.

I'm very much for open source and all, and I'd love to see Apple as the bad guy here (since I think they're a Bad Guy), but I'm not sure what is the big deal. AFAICT, every CPU vendor has a libm implementation. Apple wants to be tight-lipped about its hardware. [Maybe] Since hardware reviewers seem to get their information on the hardware from compilers, Apple is removing as much information as practical to avoid competitive information leaking.

It's a bummer to see a reduction in the amount of open source, but their license is fairly clear and I can't say that I blame Apple for trying to keep competitors away. Further, it looks as though most implementations is closed-source-y since the source code is highly tied to CPU idiosyncracies...


Apple's libm license: http://opensource.apple.com/source/Libm/Libm-315/APPLE_LICEN...

Intel: https://software.intel.com/en-us/articles/intel-math-kernel-...

AMD: http://developer.amd.com/tools-and-sdks/cpu-development/libm...

Android: https://android.googlesource.com/platform/bionic/+/master/li... (from FreeBSD?)

> I can't say that I blame Apple for trying to keep competitors away.

I certainly can. They restrict their users freedom to own the machines they buy by disrespecting their customers by giving them software without available source.

You can always blame them. It is not something that is ok, it is ethically wrong to sell someone something without giving them the proverbial floorplan. If it is a "competitive disadvantage" for others to know how your software or hardware works, then you must not have a very compelling product if it cannot stand on its own in the open.

And the danger of things like that is increasing with clang/llvm. That's why I think RMS is right to be sceptical of it. Right now a lot of development around it might be open source. But for how long? Especially if GCC is moved out of the way.

Anyone who's spent time developing on Mac or who has moved from a Linux dev environment to a Mac environment should understand the flawed nature of the open source argument here. Mac OS includes many open source tools from Apache to jabber and many others. The fact that Mac OS is a BSD derivative should indicate that the OS lends itself to open source. As an aside, control over the ecosystem doesn't necessarily mean a bad thing.

It looks like a maths library, what was so special about it, and why does Apple needs to make its own?

Getting maths correct is actually a hard problem to solve. Reading the problems that engineers have had over the years with floating point numbers will give you an insight into the situation.


A good quality math library that is optimised to take advantage of new processor extensions whilst still being correct is worth a lot.

I would imagine that there is a lack of engineering time to make this open source, rather than some nefarious purpose.

If you have loads of engineers, special hardware of your own (ARM), and secret insights into other hardware from your suppliers (Intel), then I can see it could make a lot of sense.

That doesn't mean it's a nice thing to do. Was this derived originally from FreeBSD code? This could be why the GPL is a good thing.

While I cannot claim to have read the entirety of any OS X libm version that were (and remain) available, I have read enough of that to make a general prediction:

OS X's libm contains only assembly functions re-written from scratch, originally in PowerPC assembly and then in IA-32 and x86-64, to be faster, more accurate and more standards-compliant than the FreeBSD versions.

I hope that this announcement will at least result in some interest in the versions that have been released as open-source and are still available, because this is beautiful code. But I am an optimist.

That's exactly what the GPL is for.

Though BSD advocates would make the argument that if it was GPL, Apple would never have used it in the first place.

(Personally I'm not sure if it's even possible to definitively say which situation is better; you can't do something scientific like releasing a library under both licenses and seeing which people use, because they would interfere - you really need two parallel universes to see the true effect of that one change)

Maintenance control is a good reason to create your own.

  502 Bad Gateway

  nginx/1.4.1 (Ubuntu)
(edit: non sequitur)

Open Radar isn't run by Apple.

Oops, didn't know that. Thanks for the info.

Can a moderator append [2013] to the headline?

   $ cd source/Libm
   $ git status
   ... snip ...
           new file:   Source/Intel/nsa_random_number_generator.c
           new file:   Source/Intel/nsa_random_number_generator.h
Disclaimer: yes yes I know, it's discouraged, but the point remains that it has become virtually impossible to trust a closed sourced OS, and steps backward like this do little to improve things.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact