SWI-Prolog / docker-swipl

Docker images for SWI-Prolog
BSD 2-Clause "Simplified" License
14 stars 11 forks source link

Support arm64 architecture #7

Closed longquan7 closed 6 years ago

longquan7 commented 7 years ago

I was build this Image on arm64 architecture and successed . If there isn't some other problem , I think we can add it to https://hub.docker.com/u/arm64v8/ . and See https://github.com/docker-library/official-images#architectures-other-than-amd64 and https://github.com/docker-library/official-images#multiple-architectures for more information about multi-architecture official images.

ninjarobot commented 7 years ago

@longquan7 thank you for your suggestion and building on arm64. I will look into a solution for testing this on that platform so we can include this in the official images.

JanWielemaker commented 7 years ago

Debian packages support ARM. See https://packages.debian.org/sid/swi-prolog. AFAIK there are no issues, although 32-bit arm regularly requires some fixing as it is not in my standard test platforms and some ARM chips lack 64-bit atomic instructions. In all places this is used there are workarounds, but sometimes I add a new atomic instruction for something and forget this won't work on ARM 32 ...

I run SWI-Prolog for years on a Raspberry II without issues.

longquan7 commented 7 years ago

@ninjarobot Ok,thanks

ninjarobot commented 7 years ago

It looks like base images now have multi-architecture support. I will need to check how this can work with the official swipl image.

ninjarobot commented 7 years ago

@JanWielemaker you mentioned you build regularly on arm. We can easily tag the official image as supporting arm64 if you're actively testing images there. As of yet, I've been unable to secure a CI service or the like that can build and test on arm64.

JanWielemaker commented 7 years ago

I'm not really actively testing. I have a Raspberry Pi on which I run Prolog and which I sometimes update. Takes a bit long though ... Next, there is notably Debian that tests releases on lots of hardware.

If we enable this, we will have (infrequent) failures, notably due to stricter data alignment restrictions and sometimes due to different support for atomic types (the C compiler complains). If such an infrequent failure is not a very big issue, let us try.

JanWielemaker commented 7 years ago

Hold on for the current release. Since atom and clause-gc have been moved to a separate thread some problems that were probably always there now really trigger bugs. Keri and I have spent quite a few hours on this today. Seems we are getting close.

ninjarobot commented 6 years ago

@longquan7 I added support for arm32v7 as of yesterday in the official image after a few tweaks for plugins. arm64 support shouldn't be too far off, just I'll need to procure some place to build and test. Any recommendations? What are you building it on?

ninjarobot commented 6 years ago

Support added in https://github.com/SWI-Prolog/docker-swipl/commit/f8541e1a854320134936a20532a83b8179c02e66 with official image soon.

ninjarobot commented 6 years ago

The official image now supports arm64v8 architecture as of swipl:7.7.17. The image is now available.