IntelPython / dpctl

Python SYCL bindings and SYCL-based Python Array API library
https://intelpython.github.io/dpctl/
Apache License 2.0
97 stars 29 forks source link

Implement manipulation of flattened SO files #1706

Open oleksandr-pavlyk opened 3 weeks ago

oleksandr-pavlyk commented 3 weeks ago

This PR modifies build.sh to post-process the wheel and remove duplicate shared objects produced by Python packaging that follows symbolic links.

Symbolic links are restored for conda after wheel is installed.

The check test_service.py::test_syclinterface was modified to ignore presence of duplicate copies of the library shared objects if --no-sycl-interface-test option was specified to pytest.

The option is used in


github-actions[bot] commented 3 weeks ago

View rendered docs @ https://intelpython.github.io/dpctl/pulls/1706/index.html

github-actions[bot] commented 3 weeks ago

Array API standard conformance tests for dpctl=0.18.0dev0=py310ha798474_84 ran successfully. Passed: 889 Failed: 12 Skipped: 91

github-actions[bot] commented 3 weeks ago

Array API standard conformance tests for dpctl=0.18.0dev0=py310ha798474_78 ran successfully. Passed: 889 Failed: 12 Skipped: 91

github-actions[bot] commented 3 weeks ago

Array API standard conformance tests for dpctl=0.18.0dev0=py310ha798474_79 ran successfully. Passed: 889 Failed: 12 Skipped: 91

github-actions[bot] commented 3 weeks ago

Array API standard conformance tests for dpctl=0.18.0dev0=py310ha798474_79 ran successfully. Passed: 889 Failed: 12 Skipped: 91

github-actions[bot] commented 3 weeks ago

Array API standard conformance tests for dpctl=0.18.0dev0=py310ha798474_80 ran successfully. Passed: 889 Failed: 12 Skipped: 91

github-actions[bot] commented 3 weeks ago

Array API standard conformance tests for dpctl=0.18.0dev0=py310ha798474_79 ran successfully. Passed: 889 Failed: 12 Skipped: 91

github-actions[bot] commented 3 weeks ago

Array API standard conformance tests for dpctl=0.18.0dev0=py310ha798474_80 ran successfully. Passed: 889 Failed: 12 Skipped: 91

github-actions[bot] commented 3 weeks ago

Array API standard conformance tests for dpctl=0.18.0dev0=py310ha798474_79 ran successfully. Passed: 889 Failed: 12 Skipped: 91

ZzEeKkAa commented 3 weeks ago

@oleksandr-pavlyk should we just keep libdpctlsyclinterface.so.0.18 And teach dependent projects to import just it?

I'm mentioning that, because libdpctlsyclinterface.so.0.19 most likely will be incompatible with *.0.18. Dpctl can also provide API to dynamically link the library.

I also was surprised that windows contains .dll and .lib version. Why do we need both? Aren't dependent project should only dynamically link to the library?

oleksandr-pavlyk commented 2 weeks ago

No, we must keep so.0.

In case of incompatibility, we must increment major version.

oleksandr-pavlyk commented 2 weeks ago

We need both .DLL and .LIB. The lib are static libraries used for linking (they are essentially loaders of DLL).

oleksandr-pavlyk commented 2 weeks ago

No, we must keep so.0.

In case of incompatibility, we must increment major version.

For soversion-ed libraries, linker searches for so.0 as evidenced either ldd or readelf. If .so.0 is deleted in favor of keeping so.0.18, importing of dpctl would stop working