H
High Caffeine Content
highcaffeinecontent.com · Personal blog · on HN since 2014
High Caffeine Content is a developer's blog on Apple platforms, covering iOS-to-Mac porting, Classic Mac OS builds, virtualization, and the iPad.
What HN saysHN links it for technical work such as MPW builds of Classic Mac apps and Bitcode translation. One commenter distrusts his views on macOS's future.
34HN people shared it
13linked it in comments
29stories submitted
533story points
6 months agolast shared
2014people per year2026
Most-shared posts
- 1Translating an ARM iOS App to Intel macOS Using Bitcode8 people · 148 points · first shared 2019 · 23 comments on HN
- 2Bringing iOS Apps to MacOS Using Marzipanify5 people · 12 points · first shared 2019 · 1 comments on HN
- 3(Don't Fear) the Reaper5 people · 7 points · first shared 2019 · discussion on HN
- 4Mpw – Building Classic Mac OS Apps in OS X4 people · 3 points · first shared 2020 · discussion on HN
- 5Intel Virtualization and Apple Silicon3 people · 214 points · first shared 2022 · 107 comments on HN
- 6Making Marzipan Apps Sing3 people · 5 points · first shared 2019 · discussion on HN
- 7A Month with OpenAI's Codex3 people · 4 points · first shared 2026 · discussion on HN
- 8The iPad Pro Manifesto (2024 Edition)2 people · 46 points · first shared 2024 · 69 comments on HN
- 9Where Mac Catalyst Falls Short2 people · 8 points · first shared 2022 · 1 comments on HN
- 10Beyond the Checkbox with Catalyst and AppKit2 people · 4 points · first shared 2019 · discussion on HN
- 11Bare Metal Raspberry Pi BASIC1 people · 69 points · first shared 2014 · 12 comments on HN
- 12Shortcuts for Mac1 people · 7 points · first shared 2019 · discussion on HN
- 13Why Apple Needs iPad Apps on the Mac1 people · 3 points · first shared 2019 · discussion on HN
- 14Broadcasts: Streaming Radio1 people · 2 points · first shared 2020 · discussion on HN
- 15Manual UIKit Layout1 people · 1 points · first shared 2021 · discussion on HN
What HN people wrote when they linked it
nxobject · 2024-03-08
I think the tradeoff with the Toolbox is that positioning controls with relative coordinates, and updating views when scrolling etc, is a huge PITA since you have to do it in application code – for example, I'm not aware of many classic Toolbox applications that had bottom window status bars before that required relative positioning. A few early applications just assumed 512x342 fullscreen (i.e. MacPaint.)
On the point of GrafPort still existing – Carbon was insanely backwards source compatible until QuickDraw was deprecated in the transition to 64-bit! [1] Conservatively-written 80s Toolbox code would work with some switching around of headers, and shimming getting/setting members of structs with functions.
[1] https://www.highcaffeinecontent.com/blog/20150124-MPW,-Carbon-and-buil…
stuaxo · 2023-05-04
MPW is probably the way, it emulates just enough to run the classic build tools on OSX
https://www.highcaffeinecontent.com/blog/20150124-MPW,-Carbon-and-buil…
tosh · 2020-11-23
afaiu this doesn't go back as far but it spans back to Classic Mac OS:
https://www.highcaffeinecontent.com/blog/20150124-MPW,-Carbon-and-buil…
saagarjha · 2019-05-10
I'd follow him for the technical discussion, not for his analysis of where Apple is taking this. He seems to take a quite extreme view on macOS basically being old and busted and it being time to throw it out, and I feel he either ignores or misrepresents arguments that don't quite agree with him. As one example, he has a post where he makes a "Good Mac Citizen" except it's really not one at all: https://www.highcaffeinecontent.com/blog/20190302-Making-Marzipan-Apps… I think someone must have mentioned this to him, because he recently felt the need to talk about his years of experience with macOS and how he's great at making good Mac apps…
inkyoto · 2023-05-15
We kind of have it, except it does not seem to have taken off and has been relegated to a second-class citizen at best.
I am talking about LLVM Bitcode[0] – when the binary product (a executable or .o/.a files) is shipped in the LLVM IR representation and then is «AOT»'d into the final product (a final executable) that can, for instance, take advantage of the latest ISA features (armv9, Zen23, POWER18 or new RISC-V extensions) with zero effort on the end user part. For a while, Apple even encouraged iOS devs to upload their apps into the App Store in the Bitcode format. That has all but ceased to exist for not obvious reasons about a year or two ago. Technically, if Apple chose to transition onto an alternative ISA again (say, RISC-V), at least iOS apps would not require recompilation and would get statically converted to the new ISA at the download time.
Imagine a world where there would be a single Linux distribution for a given architecture shipped in the Bitcode format (sans the small arch specific boot area and the AOT engine), for instance.
[0] https://lowlevelbits.org/bitcode-demystified/
[1] https://www.highcaffeinecontent.com/blog/20190518-Translating-an-ARM-i…
Synaesthesia · 2024-05-20
This article really got into some specific complaints of the software. No advanced background processes, poor windowing, no permission to use JIT in apps, a better file browser, better audio/video streams handling...
https://www.highcaffeinecontent.com/blog/20240514-The-iPad-Pro-Manifes…
lower · 2021-10-17
Found an accompanying article: https://www.highcaffeinecontent.com/blog/20190522-(Dont-Fear)-The-Reap…
awinder · 2020-06-15
It's not every app as far as I know because I believe you can opt out of BitCode, but this would be widely the case with exceptions:
https://thenextweb.com/apple/2015/06/17/apples-biggest-developer-news-…
https://www.highcaffeinecontent.com/blog/20190518-Translating-an-ARM-i… (other direction but clearly demonstrative of what apple can do here)
m12k · 2020-04-23
Actually, it seems I misremembered, and the bitcode representation is still only used for iOS [1]. Will be interesting to see if that changes with the next release of macOS.
https://www.highcaffeinecontent.com/blog/20190518-Translating-an-ARM-i…
pascoej · 2020-04-23
https://www.highcaffeinecontent.com/blog/20190518-Translating-an-ARM-i…
This article appears to successfully statically translate arm64 binary into an x86_64 binary using bitcode.
kristianp · 2020-01-29
On one hand, an ARM powered mac would increase Apple's profitability by not having to pay Intel for processors, on the other hand there's a. the disruption and confusion an architecture switch would cause, and b. Apple's lack of interest in the laptop platform relative to Ipad pro and mobile.
Someone demoed transpiling bitcode to x86_64, it seems going the other direction wouldn't be a big problem, it's stock clang: https://www.highcaffeinecontent.com/blog/20190518-Translating-an-ARM-i…
runjake · 2020-01-11
There's a plan for that.
https://www.highcaffeinecontent.com/blog/20190518-Translating-an-ARM-i…
kalleboo · 2019-11-19
For context, the current iPad Pro (still running last year's A-chip generation) benchmarks 50% faster than the Surface Pro X, and basic web browsing battery life tests peg it at around 13 hours battery life.
Apple killing off 32-bit app support (and Carbon, QuickTime API, etc) is probably them preparing for an ARM transition. Any app that managed to make that transition is well-prepared for a pretty trivial "just change the compile target and press the button" ARM port.
Apple would be betting on Mac app devs quickly getting ARM ports of their apps out there. In the Microsoft ecosystem there's zero chance of that happening, so they have to rely much more heavily on emulation.
There's also a chance Apple could do some kind of bitcode magic[0], but they don't enable bitcode on the Mac App Store yet, so that is probably not in the cards [0] https://www.highcaffeinecontent.com/blog/20190518-Translating-an-ARM-i…