koblas

installBackends

Overrides the context koblas returns, taking precedence over every automatic mechanism — registration and platform discovery alike. Passing null restores automatic selection.

installBackends(koblas.with(blas = mine)) is the usual shape: start from what resolved and change one half. Note that this freezes the others as they are now, which is what an override means — later registrations do not show through it.

Visible to subsequent koblas reads but not synchronized with operations in flight: install during startup, before other threads run.

koblas

The process-wide default context: an installBackends override when set, else whatever registered itself, else the portable reference implementations.

Every free function in koblas uses this, so a program that never mentions contexts still gets the host BLAS its platform found. Hold a KoblasContext of your own when the choice should be explicit instead.

koblasInfo

What this runtime resolved, for startup logging — e.g. "backend=openblas, kernels=simd(8 lanes)".

registerBackend

Offers backend for automatic selection as every half it implements.

One verb for what used to be eight. A backend is offered, not imposed: it becomes active only while no installBackends override is set and nothing stronger was offered for the same half, ranked by Backend.priority — openblas over cblas over the reference. Halves are ranked independently, so a host with CBLAS but no LAPACKE still accelerates what it can, and passing an object that implements several interfaces offers it for each.

This is how backend artifacts activate themselves: the JVM's classpath discovery and the native startup registration both come through here, so there is one ranking and one fallback rather than a parallel path.

Throws

if backend implements none of the six halves, which would otherwise register nothing and look like it worked.