Comments (4)
I'm wondering how acceptable it would be to say that vendored builds only cover the minimal hwloc feature set, and those who want more should roll their own hwloc builds.
from hwlocality.
For me that'd work, but since the difference is just CLI options for configuration it doesn't look like a lot of burden to support two configs: minimal and default, comparing to just one of them.
from hwlocality.
What makes me uneasy here is that vendored-full
would not mean "build hwloc with all features enabled", as one would expect, rather it would mean "build with every feature that the hwloc configure script has detected support for on the host system". Which can go wrong in two different ways:
- The configure script may detects some library on the host, that cannot actually be used without extra setup from the user's side, resulting in a seemingly unrelated build failure later on. This most commonly happens with CUDA.
- The user intended to build hwloc with support for feature X, but X was not detected on the host system due to some PATH configuration error, and thus hwloc ended up silently being built without it.
The way one normally handles these issues in an autotools workflow is to run ./configure
interactively, carefully check the output for any unexpected configuration choice, and only run make
once the configure script output fully matches expectations. However vendored builds break this workflow by hiding the configure logs so well that only relatively advanced cargo users even know there are ways to get to them.
From this perspective, I would say that vendored builds are fine for simple use cases like "my linux distro has outdated hwloc packages and I want to probe the hardware topology and pin some threads", but any use of hwloc more complex than this would probably be better served by the extra control and much greater ease of debugging that an interactive hwloc build provides.
from hwlocality.
If the concern is naming, it could be called vendored-default
or something. I don't have strong preference about it either way, just thinking about some use cases that (assuming host is configured properly) could be made to work, but would now require messing with manual compilation of hwloc.
from hwlocality.
Related Issues (20)
- `rustls-tls` instead of OpenSSL for reqwest
- Road to v1 HOT 1
- Not working on Alpine Linux (libc::pthread_t != std::os::linux::raw::pthread_t) HOT 7
- Add a musl build to CI
- Disagreement of membind:set_thisthread_membind HOT 9
- Find a way around sourceforge blocking automated downloads of pkgconfiglite
- Bump MSRV to 1.70 once old enough HOT 1
- create does not appear to be published yet HOT 10
- Topology::cpuset causes segfault HOT 4
- Try to make bundled feature work on macOS, without dynamic linking HOT 4
- Add support for hwloc v2.10
- Update description to emphasize that bundled version exists HOT 2
- Use standard library's ThreadId rather than custom type alias HOT 3
- Clarify dependencies required HOT 5
- Aarch64 compilation error
- The fully qualified file name must be less than 260 characters
- Consider downloading vendored library from a specific commit hash HOT 3
- Cross-compilation on macOS fails HOT 5
- Use runtime env vars CARGO_CFG_* for probing target, os and flavor in build.rs
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hwlocality.