DiamondLightSource / cothread

Cooperative Python Threads and EPICS Channel Access bindings
Apache License 2.0
13 stars 9 forks source link

Port to ARMv8 A64 #21

Closed EmilioPeJu closed 3 years ago

EmilioPeJu commented 3 years ago

This includes the switch_frame and create_frame functions for ARMv8 A64. It has been tested in a Raspberry Pi 4, but more tests would be nice.

Araneidae commented 3 years ago

Oh, looks like CI failed. Guess need to fix this first! @thomascobb might have more understanding of what's failing here.

thomascobb commented 3 years ago

Ideally we would port this from travis to github actions, from a softioc binary to epicscorelibs.ioc, and build wheels as well as sdist for pypi.

This is what I'm doing to python IOC: https://github.com/dls-controls/pythonIoc/pull/5

Unfortunately I don't have time to do this for cothread...

thomascobb commented 3 years ago

Looks like you can emulate aarch64 with cibuildwheel: https://cibuildwheel.readthedocs.io/en/stable/faq/#emulation

I'm using cibuildwheel in pythonIoc to build the wheel and run tests, but haven't done anything with emulation.

EmilioPeJu commented 3 years ago

Regarding your question of how I tested it, it's not easy to explain, we can talk about it tomorrow

EmilioPeJu commented 3 years ago

Looks like you can emulate aarch64 with cibuildwheel: https://cibuildwheel.readthedocs.io/en/stable/faq/#emulation

Very nice trick! using binfmt_misc to run binaries using qemu transparently, I suppose we could use that for running the unit tests