9 ms·
On the other hand, Apple released their 64-bit ARM backend for LLVM[1] in 2014. They announced their intention do so almost immediately after the first ARM64 ph
by rgovostes 6y ago
On the other hand, Apple released their 64-bit ARM backend for LLVM[1] in 2014. They announced their intention do so almost immediately after the first ARM64 phone, but the process took several months because it had to be merged with a duplicate backend developed by others.
I think it is likely that support for these instructions will be upstreamed to LLVM, and the teams involved in this monumental transition (which was announced like ~50 days ago) simply didn't put it at the highest priority on the list of things that developers need to know to get their apps working on Day 1.
A fair criticism is that some of the more technical documentation, such as on the Mach-O ABI, have disappeared from Apple's developer site, or been relegated to an unsearchable archive[2], so it's very reasonable to be skeptical of ISA extensions ever being documented there.
The developer site has always sucked though, and it seems to me they've declared bankruptcy and are rebuilding it on machine-generated docs and WWDC content for app developers. Occam's razor.
1: https://www.phoronix.com/scan.php?page=news_item&px=MTY0NzE https://www.phoronix.com/scan.php?page=news_item&px=MTY0NzE
2: https://developer.apple.com/library/archive/navigation/ https://developer.apple.com/library/archive/navigation/
- brigade 6y agoAMX was first announced for the A13 [1], so it's been in the wild for over a year now. 1: https://www.anandtech.com/show/14859/apple-announces-new-iphone-11-iphone-11-pro-iphone-11-pro-max https://www.anandtech.com/show/14859/apple-announces-new-iph...
- my123 6y agoAnd Apple M1 implements AMX2, not the original AMX in the A13. I'm not sure if Apple plans to ever maintain AMX compatibility across CPU versions...
- duskwuff 6y agoYou've hit on an important point here. As soon as Apple documents one of their CPU extensions, they've put themselves in the position of having to support it long-term. Leaving it undocumented gives them the freedom to make breaking changes from one CPU generation to the next -- hopefully with the end goal of deciding on an implementation and documenting the end result.
- gcblkjaidfj 6y agoApple must support base LLVM functionality because it is the core of their extend-embrace-extinguish strategy. This says nothing that they will extend that offer to their undocumented secret sauce, as you imply.
- rgovostes 6y agoDon't be absurd. LLVM was a research project until Apple hired Chris Lattner and poured money into it to make a viable alternative to GCC. They've been among the project's top contributors (financially and in terms of code) for 15 years. That's quite the long con. Apple creates plenty of proprietary technologies but I can't think of a time they've been credibly accused of crushing an open technology that already existed.
- gcblkjaidfj 6y agoit's is a long as OSX. So it perfectly matches the 'long con' time frame. Just don't know why you go about calling amoral business strategies designed to benefit from opensource without giving anything substantial back as a "con". There were alternatives to LLVM and patches to gcc that achieved the same. Apple option to bring llvm up by investing heavily in it has more to do with the licensing than technical aspects.
- monocasa 6y agoThey did that, in part, because they were subject of one of the first GPL enforcement actions, originally being unwilling to open source their objc GCC frontend. They being Nextstep at the time, but there's not a huge distinction these days. Their investment in LLVM is very much an attempt to keep reproprietization on the table.
- rgovostes 6y agoI absolutely believe that the investment in LLVM was justified to executives as a way to avoid GPL-licensed software, which Apple has long been allergic to. But it should be noted that the GPL violation you refer to was in 1989. Put in context, that was ~16 years before they started investing in LLVM, and they have done so continuously for the past ~15 years.
- mhh__ 6y agoMy point about the docs isn't the day-to-day stuff, but the things that cannot be machine generated - to write a good compiler you need to know the details of how the CPU is put together underneath. Intel will give you 800 pages on how to optimize for their current ISA (AMD will give you 45, but still)
- rgovostes 6y agoAs I understand it, Intel will also sell you a compiler that can optimize better than GCC because they know internal microarchitecture details. To me, that seems like a more clear-cut by-design conflict of interest between chip designer and user than these undocumented instructions.
- tcbawo 6y agoDo you think Intel considers their compiler a profit center/growth market? Or are trying to offset the expense of maintaining their own compiler?
- mhh__ 6y agoIntel's compiler is basically free for plebs but not for datacentres. LLVM and GCC are good enough (brilliant, even) for general purpose compilation, but for a (say) supercomputer which is guarded by guns having Intel on the phone can be worth it.
- dayjobpork 6y agoYou think it is bad that a company provides good documentation on how their product works and how to use it?
- rgovostes 6y agoThis is not an accurate characterization of what I wrote whatsoever. Please don't misquote people in order to start flamewars.
- 6y ago
- supermatt 6y agoI just started getting into macOS and iOS development and the documentation is HORRENDOUS. Even the classroom educational material Apple put out is incomplete, outdated, and often completely wrong! Additionally, It seems to be impossible to compile anything in Xcode other than a hello-world without gettting undocumented warnings and (non fatal) errors logged, which, if you can find a matching thread on their forums, usually results in a “just mark it down as log noise”. Has it always been this bad?
- keyle 6y agoNo it wasn't always this bad. The speed at which Swift has changed has left the documentation behind. I've complained about this numerous times. Simply put, if you want useful doco don't look at the latest version of the language. They literally stripped the useful notes and examples and it's now a straight API print out. If you use stackoverflow (sarcasm) be prepared to constantly be using older versions of swift and translating them to the latest. Feel free to submit updates to them. So it does help to understand what changed in the language versions. I think anything past Swift 3 is similar to today. Xcode does help a little telling you what you pasted makes no sense to a degree. It's a very sad state of affairs I'm afraid.
- webmobdev 6y agoGood documentation will come. Apple's current priority right now is converting macOS to a closed OS like iOS. Once this is done, Apple can advertise the fact how "easy" it is to build apps for both ios and macOS with one codebase. Apple will then taut "courage" as they force all Apple developers to switch to Swift if they want to develop on their ecosystem. You will ofcourse have to pay them for this privilege, and that ofcourse is the end goal.
- zepto 6y agoAre you a senior executive at Apple?
- TheNewAndy 6y ago