-
Notifications
You must be signed in to change notification settings - Fork 51
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
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
wheels
for building Python (Pip) Wheels.Note: We already successfully build this architecture on conda-forge.