I am aware that there is already a great thread from @drodriguez about a call for the community, but it is over a year old and recently has drifted into discussions about compiling Swift code down to the JVM. Those discussions are interesting but have a different focus to what I want to raise here. I'd like to really focus on getting the existing 90% implementation and CI work to 100%.
I am very impressed by the great coordinated effort by @Max_Desiatov and the rest of the SwiftWASM team to get that target working 100%, as well as by the possibilities they set up for others to sponsor their work (as an aside, we plan to sign up as high-level sponsors of that project in the coming days / weeks!).
With that in mind, I was curious to hear if there are other devs out there interested in working on fixing some of the few outstanding issues that appear to exist with the Swift for Android toolchains, as a coordinated effort with some sponsorship.
It seems to me that the main issues outstanding are some hard-to-track-down bugs in libdispatch (from what I understand, because its development no longer focusses on 32bit targets), and some backwards compatibility issues with libFoundation(Networking) – Android 5 + 6 do not have
getaddrinfo for example, so linking fails on those platforms even if you're not interested in those APIs and everything else would work fine.
For these cases we'd be happy to integrate with the Swift JIRA in a sort of bug bounty system (if anyone knows a good bug bounty tool that integrates with JIRA we'd be very happy to hear about it).
We'd also be open to sponsor ongoing maintenance work of keeping the Android CI builds green. For that though, I think it'd be a prerequisite to discuss about unifying the various efforts that exist to build the toolchains (and stdlib etc) for Android and trying to get these into an official / standard CI process if at all possible.
I would like to mention that I am a maintainer of the SwiftAndroid · GitHub organisation, which could be used for this purpose. At the moment the only part of that which I'm involved in maintaining is our SwiftJNI library which we use in production (see the
devel branch). It seems like some others are maintaining a libicu fork on there. The rest looks like it has not been touched since 2016 and could be archived.
I noticed that @compnerd wrote the following over a year ago in the other thread. Is there still scope for these discussions and for the creation of documentation? Have some of them happened already? I feel like this is something I could contribute towards, more so than fixing compiler bugs.
We will create a separate thread to discuss the expectations and create a living document of the expectations of both the port as well as contributors of the project towards the ports in the tree. This would cover the items of building, testing (CI), and general maintenance of the ports.