I've been using this the past few weeks to try and cross compile my software. Clang works, but a lot of the core libraries are missing. pkgbuild for instance won't work. And even native Cocoa apps I've tried won't work.
That being said, this has a ton of potential. I really wish the devs had more time to work on it.
I was able to get a ported app running with it at one point. And I think Microsoft took a pass at it more recently: https://github.com/Microsoft/WinObjC
But it appears Darling uses Cocotron so maybe you've already seen how well it works for you.
Have you tried using the headers and sources from Xcode SDKs and linking them against Clang on Darling? Should be enough if cross compiling is the goal and not porting apps to run on other platforms.
Something similar can be done with Wine as well as MinGW and other similar toolchains and platforms that target Windows.
You don't even need Darling or Wine if you just want to cross-compile since Clang can target any platform irrespective of the platform you are running it on (as long as your Clang is not built with support for that target disabled). All you need is the system libraries/headers and a linker (Apple's ld64 is open source, no idea if lld is usable for Mach-O yet). See e.g. OpenTTD's old how-to: http://web.archive.org/web/20200917010945/http://devs.opentt...
The only thing making this hard for targeting OS X is that a) too few people care for ready-made cross-compilers to be available so you have to piece this together yourself and b) there is no open-source reimplementation of the OS X system headers and stub libraries to link against so you have to extract the official ones from Xcode but that again is only a matter of people not caring.
For MinGW that is all there because Windows is a much more popular target - many Linux distros have MinGW packages that you can simply install and start cross-compiling. The same could be done for OS X.
All Macs have been 64-bit for at least 11 years, if not longer. (My MBP from 2012 was 64-bit.)
Apple dropped 32-bit support a long time ago. Not sure of the exact date, but sometime around 2015-2017 I had to port a Mac application to 64-bit because the upcoming release of MacOS was going to drop all 32-bit support.
Yeah… I wasn’t really getting at it not working on 32bit, more getting at it not working on arm.
If it doesn’t acquire the ability to run arm binaries, it will be a retro computing platform in a couple of years. (And it would have to emulate apple’s cpu extensions, even when running on arm chips, yes.)
x64 means x86-64 in common parlance. Apple silicon would be an arm64 platform in comparison. Lots of software is compiled for both right now, but Apple is abandoning x86-64 so at some point in the future, software will stop being built for that platform (just like ppc before x86).
The PowerMac G5 and iMac G5 all the way back to 2003 are 64-bit. Apple actually had to drop 64-bit for one year during the intel transition in 2005-2006. (The original Intel Core Duo chips were 32-bit.
Darling is not for running anythig on a Mac but for running OS X software on other computers. That means not supporting Apple-ARM only becomes a problem once software you want to run is no longer available for x86.
Why would they do that? They could easily make this possible with their current expertise. They clearly don't want that, and that's how they've been their entire existence.
Final Cut Pro has been running on hackintoshes without the army of lawyers showing up for a decade or more. As long as they get their $300 per license, they don't care how unstable it runs on your unsupported hardware.
Last I tried Darling, my goal was to make a proprietary printer driver run on Linux. It was available for Windows and macOS (CUPS). So that’s one use case.
For command line apps you can cross-compile from Linux. IIRC it does require building Clang from source, and obtaining a Mac SDK (which is probably against their T&C's) but there are pre-made scripts to do it (there's a good GitHub Actions one).
That said, I only do that for free projects. For commercial stuff I'd just buy a Mac Mini.
> For command line apps you can cross-compile from Linux.
You technically can, but this has various issues. The lack of UI frameworks is one. I don't remember the others since I have a real Mac, but it's only an Intel Mac.
On a Linux host, use pts-osxcross (https://github.com/pts/pts-osxcross) to target macOS, it contains Clang and other build tools precompiled for Linux amd64.
At least Unix and Linux are similar families of operating systems. Porting over Win32 is probably bigger, especially since Windows 11 still has to run binaries from the 90s. macOS cares much less, and you either do dynamic linking or recompile.
Is it able to run Xcode? I’ve been trying to do some iOS development on Linux and so far my solution has been to use DockerOSX… but this sounds much more convenient.
That's actually useful. I need the asset bundlers so I can build for MacOS without having a Mac. I already build Rust programs for Linux and Windows on Linux.
As an iOS + Linux user, icloud.com has been helpful. Access to reminders, notes, in theory messages (I don't use it so can't vouch for it).
The thing to do is to use Chrome (yes...), and open the page. In the hamburger, go to "Create a Desktop shortcut". Choose "open in a new window". This gives you a desktop shortcut to open the page in a standalone way. Visible to your launcher, distinct ctrl+tab... it's janky but I've found this works well.
Firefox please add the Chrome standalone desktop shortcut feature!
Yeah, I also tend to bring up iCloud Notes in a browser tab. It’s still far from perfect, since Notes is usually an offline-first app, which you miss out on here.
I’ve been looking for a replacement, but nothing really gives you
I have been using Joplin for longer notes, which provides good sync, offline-first, and good platform support. It's Janky but for writing out post drafts the sync has been super good for me. It lets me finish typing out a thing on my phone in a pinch, no futzing around with roam necessary.
For tiny notes I've been using.... facebook messenger chat to myself. Say what you will about Meta, at least their stuff mostly works.
I still feel for you. I really want to commission some software that feels good to use on Linux ("feels good" in the real sense, not in the GNOME sense)
I wonder if there is a way to run iOS applications on Android. I'd kill to be able to use the OneNote app on my Samsung galaxy tab S8. Samsung Notes are great, but not very portable.
I'm a 30 year linux veteran and windows free for over 22. I di d have a windows vm for some time because I have some music stuff that doesn't work with linux, like a nord keyboard and some guitar stuff.
It didn't work for me for the macOS version I tried (not the latest one). Probably because the installer is not available from Applr's servers anymore.
There's been some recent big budget games compiled for Apple Silicon; Lies of P and Baldur's Gate 3 come to mind. Of course, that's just a tiny fraction of big budget games and I haven't actually played any of them to know how good the experience is.
I've been playing BG3 on an m1 Mac mini and it's surprisingly good. I haven't bothered loading it on my big-GPU gaming PC to compare, but that alone says something.
(I'm in no way a serious gamer, so there may be plenty of things I overlook)
It's nice when it works, but papercuts still degrade the experience. The M-series chips are really impressive when they get a chance to stretch their legs. It feels like we're still in the chicken-and-egg phase though. I don't foresee that changing unless Apple dumps a ton of money to incentivize publishers to port to Mac, or they do what Valve did and make their own equivalent of Proton - aimed at developers. The licensing on GPTK kinda kills that though.
As a long time Linux user, it's always felt kind of unjust that all good Linux software is ported to other os, but there is no reciprocity. I do understand all the nuances, but Apple and especially MS seem to get a lot out of the GNU/Linux ecosystem and give very little in return.I would appreciate using some open source software released for Mac in my Linux desktop. Thanks to the developers of this project! Will give it a spin...
How has it been a huge boon to the GNU ecosystem? Clang is slow, the code generated is not consistently better than GCC for most of the software I personally run benchmarks for, and it's not like GCC has ever been worse for feature support than a Microsoft compiler.
> How has it been a huge boon to the GNU ecosystem?
It would seem that you never used GCC in the pre-llvm era. The GCC project has had a couple of notable periods of stagnation, in each case being "rescued" by the emergence of meaningful competition. First EGCS, and then later llvm.
Clang brought new developers to the space, it disproved the assertion that error messages had to be cryptic and unhelpful, and it has been a peer competitor for an extended period of time now. The two projects compete and cross-pollinate to their mutual benefit.
People seem to forget that GCC was flopping around on C++11 for a long while until clang started pushing things along.
Not to say they've fallen behind, just that a competitor clearly kicked things back into gear. Same as Firefox and Webkit-based browsers did for the many years of IE6's monopoly.
I think this has less to do with "justness" and more to do with cost effectiveness. A majority of people use Windows. That's followed by macOS (or ChromeOS but you can't easily directly port software over there). Then you have GNU/Linux desktop users.
If you're building software you're often going to target your audiences where they are.
In the developer world, there are many desktop Linux users. So, we have more tools available to us related to our jobs. I use desktop Linux and appreciate that.
But, most people across industries and in their personal lives are not in the same situation.
It’s too bad that community interest/investment in efforts like GNUStep, Étoilé, and Cocotron have been low, because a major yet consistently underestimated component of why macOS has long had a thriving quality indieware scene is the depth, breadth, and quality of its frameworks. Cocoa/AppKit enables solo devs and small teams to punch well beyond their weight and I’m sure those devs would be happy to sell their programs to Linux users too if they could cross-compile.
My heart swells, I got to work at Apportable - super fond memories.
.. was a YCombinator 2011 thing https://www.ycombinator.com/companies/apportable