-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
Hi,
with semantic versioning in place, and also the recent addition of a SOVER, I have a few questions that are relevant to some distributions. For example on Debian we've so far shipped the libggml in a private directory because the public locations (/usr/lib etc.) have stability requirements. With these recent improvements, we think we can move this into a public location now.
-
What would you consider the public interface?
Asking so that we can adapt our automated checks for API/ABI breakage (
abi-compliance-checker,abigail-tools). For example,libggml-base.sois not part of this public interface, right? As in: it's used bylibggml.so, not by users directly, so any breakage there is "internal" and would not require a SOVER bump -
What about the interface of the backends? Also, is this dependent on
GGML_BACKEND_DL=ON/OFF?I think this one is a bit tricky. For example, what happens when
libggml-cpu.sohas a breaking change? Would this be an internal change, or a public one? If public, wouldlibggml-cpu.soget its own SOVER bump, or would all of ggml get a SOVER bump? (AFAICT, there is currently one SOVER project-wide) -
Extending the previous questions: Even taking the
libggml.sopublic, we'd still keep the backends like (libggml-cuda.so) in a private directory. Do you think this is wrong? Should these, be public, too?Can these backends have any standalone value, that would make sense in a public directory? Or are they "only" to be accessed through
libggml{,base}.so?