Skip to content

docs: document how to deal with dynamic linking #1022

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

Merged
merged 6 commits into from
Apr 15, 2025

Conversation

LecrisUT
Copy link
Collaborator

I split the general documentation from #1009

Comment on lines 31 to 32
One downside of these tools is that all dependencies are duplicated and bundled
in each project.
Copy link
Collaborator

@henryiii henryiii Mar 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These tools also do name mangling, which ensures that each wheel is independent, as required to be a valid manylinux wheel. Wheels are not allowed to have binary dependencies on each other. This irritates some packages like scipy and numpy, which would love to be able to share thread pools, for example, but that isn't allowed. It is allowed with Conda.

(A few wheels do fake it, though, namely wheels using CUDA, making a "manylinux" wheel that technically is invalid. The WheelNext project is hoping to help with all this.)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, any reading that I can look at? The only reference I found is about avoiding global libraries and clashes, but not on binary dependence. I've only looked at PEP600 and PEP513.

Yeah WheelNext would be great. Any indication if this would be available for build-backends to experiments first or will it need pip install frontends interface first?

Yeah more caveats would be in order for this section. I am thinking that this would be useful when the dependent package has a good SOVERSION matching with the pyproject file and the consumer has a good version pinning. Yeah if you do a pip upgrade of the dependency it would potentially break things, but that's true for pure python as well.

@henryiii henryiii changed the title doc: Document how to deal with dynamic linking docs: document how to deal with dynamic linking Apr 14, 2025
Copy link
Collaborator

@henryiii henryiii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might update later, but I think this is good for now.

@henryiii henryiii merged commit 4193c40 into scikit-build:main Apr 15, 2025
130 of 137 checks passed
@LecrisUT LecrisUT deleted the doc/dynamic_link branch April 25, 2025 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants