[master] 3ce0d377e ws functions are not part of vrt, so mark them

Dridi Boukelmoune dridi at varni.sh
Tue Apr 9 08:34:38 UTC 2019


On Mon, Apr 8, 2019 at 4:59 PM Nils Goroll <nils.goroll at uplex.de> wrote:
>
> On 08/04/2019 15:51, Dridi Boukelmoune wrote:
> > I thought cache.h was part of VRT and cache_varnishd.h was strict ABI.
>
> um yes. And no.
>
> We might have a bit of confusion wrt VRT (pun intended) in the vmod $ABI sense
> (for which cache.h is forbidden) and the fact that is, after all, still part of
> our ABI.

I thought the whole cache_varnishd.h split was done to allow cache.h in VRT.

If we want to make cache.h $ABI strict, we should move the relevant
WS_* prototypes to vrt.h at least to not make 90% of $ABI vrt modules
turn strict. We can keep struct ws opaque, but those are critical for
VMOD authors (it also means no more CHECK_OBJ_NOTNULL but AN
instead on ctx->ws).

Having to always rebuild a VMOD when Varnish updates because you make
workspace allocations bring a poor out-of-tree experience. That forces
everyone to use a priv_task instead for simple allocations, and that priv_task
may need to keep track of multiple allocations too for each VMOD.

Too much complexity for $ABI strict makes it unusable.

Dridi


More information about the varnish-commit mailing list