-
Notifications
You must be signed in to change notification settings - Fork 53
CI: Linux aarch64/arm64 #1517
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI: Linux aarch64/arm64 #1517
Conversation
10e4901 to
e2a59b1
Compare
54953cd to
4364b59
Compare
40bcdca to
73c84c3
Compare
|
Huh: and in |
|
Time to fix our long-standing ODR issue...: #1521 Update: merged & rebased (good), but still the same error here. |
fd17aca to
d951f12
Compare
|
For the error in openpmd-pipe, we use a special form of dest.set_attribute(key, attr, attr_type)This finally runs into this implementation where list and string types are handled separately, since the Numpy types in template <>
bool SetAttributeFromObject::call<char>(
Attributable &attr, std::string const &key, py::object &obj)
{
if (std::string(py::str(obj.get_type())) == "<class 'list'>")
{
using ListChar = std::vector<char>;
using ListString = std::vector<std::string>;
try
{
return attr.setAttribute<ListString>(key, obj.cast<ListString>());
}
catch (const py::cast_error &)
{
return attr.setAttribute<ListChar>(key, obj.cast<ListChar>());
}
}
else if (std::string(py::str(obj.get_type())) == "<class 'str'>")
{
return attr.setAttribute<std::string>(key, obj.cast<std::string>());
}
else
{
return attr.setAttribute<char>(key, obj.cast<char>());
}
}It looks like on Arm64, |
|
I pushed something that might fix the openpmd-pipe problem. Aside from this PR, we should add a test that tests openpmd-pipe against the result of |
ac9b2dc to
8a14a72
Compare
|
This is the problem: Char is represented as |
ec96caa to
4e8ec42
Compare
|
The Reminder: This test on an AMD64 system: >>> import openpmd_api as io
>>> s = io.Series("asdf.json", io.Access.create)
>>> s.set_attribute("pystring3", b"howdy, again!")
False
>>> s.close() Results in: {
"attributes": {
"...": "...",
"pystring3": {
"datatype": "VEC_UCHAR",
"value": [
104,
111,
119,
100,
121,
44,
32,
97,
103,
97,
105,
110,
33
]
},
"...": "...",
},
"data": {}
}Arm64 somehow seems to make a string out of this again. I've pushed a printf debugging commit. |
54a5dbd to
acc5ea8
Compare
|
The remaining error is HDF5-specific: This is not really a surprise: HDF5 does not have an actual TLDR: This is probably not an error in the openPMD-api, but just a hardcoded test that does not work on this platform. |
2bc3bfa to
2eb5524
Compare
2eb5524 to
8b138bf
Compare
|
New problem: |
|
All issues fixed now. I'll push another commit that brings some further fixes, but might also bring regressions. If the CI shows regressions, I'll revert it. |
|
The remaining failing tests are the |
|
@ax3l now passing |
|
Thank you for the help 🙏 🎉 |
Add native Linux aarch64/arm64 runners with CircleCI.
Adding CI here first before adding an entry to
wheelsfor building Python (Pip) Wheels.Note: We already successfully build this architecture on conda-forge.