Releases for AArch64 (ARM64)


(Lee) #1

https://github.com/swiftdocker/docker-swift provides a great way to pull down your latest releases for testing.

It currently uses your releases which look something like this:

https://swift.org/builds/swift-4.2.1-release/ubuntu1604/swift-4.2.1-RELEASE/wift-4.2.1-RELEASE-ubuntu16.04.tar.gz

These releases currently only support x86_64.

Would you be able to produce images for AArch64 (ARM64) as well please?

Then we can test Swift on AArch64 based (Server|Desktop|Laptop|Mobile) platforms too.


(Jordan Rose) #2

We don't even have a working AArch64 Linux build yet (see the external CI bot). Someone would need to put effort into making that a reality before we'd start offering it as a supported platform.


(Saleem Abdulrasool) #3

Yeah, variadics are the missing piece for AArch64 on Linux. I've been focused on finishing up the Windows port, which is pretty close, but I am certainly interested in Linux AArch64 support.


(Braden Scothern) #4

You should talk to @futurejones and checkout their repository here.


(Lee) #5

Exactly. This is working for us.

It would be great if you guys should support this up and coming architecture.

I should imagine there will be a great deal of interest in it very soon. It would be good to get ahead of the curve.


(Braden Scothern) #6

I think there are quite a few of us interested in Arm64 systems. The issue is getting it fully working with master and merged back up rather than needing to apply patches manually. Once that happens the community supported CI for Arm64 will be useful.

I imagine Apple and Swift in general will fully embrace other platforms as they have enough really community support. So for us that means supporting swift-arm.com and getting stuff working and merged back up. I just don’t know compilers well enough to really help them out much...


(Neil Jones) #7

@jrose this is wrong on all accounts.

  1. "We" the open source swift community have had working builds of Swift on AArch64 Linux since Swift 3.
  2. AArch64 on Linux is already a supported platform in Swift.
  3. There are already many people putting huge efforts into getting an "official release" of Swift for AArch64 on Linux.

(Neil Jones) #8

@compnerd @jrose Yes, variadics have been the main blocking issue for successful builds on Swift Community CI
A PR with the solution was submitted months ago - 15174.
Unfortunately this was never merged and now is outdated.

There is now a updated version of this PR for swift-4.2-branch - 20708
This PR along with 20709 (19462) will enable successful builds of Swift 4.2 on AArch64 Linux (Ubuntu 16.04).

With these PR's merged there is absolutely no reason why we can not see an "official" release of Swift 4.2 for AArch64 on Linux.


(Lee) #9

Fantastic work Neil (sorry, this thing will only let me @ 2 users in a single post).

@jrose, @compnerd, any chance you guys can either work together to have this resolved?

Are there any other parties internally who would be interested in this? If so, would you @ them please?


(Jordan Rose) #10

"Supported" means "one of the platforms that gets official builds from swift.org, where something major not working would block a release". There are plenty of platforms that Swift can be configured to compile for and run on, but those don't all count as "supported".

I don't think we have a process in place yet for getting new platforms to be "supported", though at least part of it would be making sure we have CI for them. At the very least it's something the project lead would have to be involved in. Personally, I think it'd be great to use AArch64 Ubuntu to work out this process, since as you say (and Lee, and Braden) there's a fair amount of interest!


(Neil Jones) #11

We already have a CI.
Isn't that the whole point of this - https://swift.org/blog/swift-community-hosted-ci/


(Jordan Rose) #12

There's one bot there, but it's building the "buildbot_linux,no_test" preset. If we compare that to the x86_64 Linux bots on the primary CI, we've got dedicated LLDB testing, long tests, protobuf testing, ASan testing, packaging testing, and pull request testing. (We should probably also have debug configuration testing there like we do for the Apple platform bots.)

If we get AArch64 to a working state, we want to make sure we don't break it in the future!


(Lee) #13

Sounds reasonable @jrose.

It sounds like Neil already has the project "in a working state". So how do we insert it into, and start conducting more tests on CI? Would you be able to suggest a suitable Project Lead to help with the project? I did see that @tkremenek is one of the nominated Project Leads here. Perhaps he might be able to suggest a suitable path.

Thanks for your time and interest by the way guys. Much appreciated.


(David Sweeris) #14

Out of curiosity, would this let Swift run on the 64-bit Raspberry Pi 3? (Note: their hardware is 64-bit, but Raspbian, the "official" Linux distro for RPis, is not.)


(Neil Jones) #15

Yes, if you have a 64bit Debian based distro on your Pi.
I have done successful testing swift 4.1 on a Pi3 with an early preview of Debian 10.

Hopefully there will be Ubuntu 18.04 64bit distro available for the Pi3 soon.


(David Sweeris) #16

Thanks! Now I have an excuse to replace the Pi2 I have :smiley:


(Neil Jones) #17

Swift is also available for Pi2 if you want a 32bit version.
Install packages are available at - https://packagecloud.io/swift-arm/debian
Details on Swift for armv7/armv6 here - https://github.com/uraimo/buildSwiftOnARM


(David Sweeris) #18

Cool, thanks!


(Neil Jones) #19

35

Swift 4.2 running on Ubuntu 18.04 - Raspberry Pi 3 64 bit!

Official 64 bit Ubuntu downloads of 18.04 (Bionic) are now available for Raspberry Pi 3.
Download image here - http://cdimage.ubuntu.com/releases/18.04/beta/
Swift 4.2 AArch64 for Ubuntu 18.04 available here - https://packagecloud.io/swift-arm/release/packages/ubuntu/bionic/swift4_4.2_arm64.deb


(Lee) #20

This is awesome! Nice work Neil.

Swift guys (Saleem, @jrose, @tkremenek) any chance we can support this officially?