Plugins need to be able to (de)serialize inputs and outputs, but allowing them to access Llio opens up Std and explodes the number of dependencies. These dependencies make plugins break if they are not compiled with the exact (md5 wise) same set of library versions as the arakoon binary.
The patch introduces an extra interface allowing them to not be dependent on kitchen sinks like Lwt or Std.
As an example:
ocamlobjinfo _build/plugin_find.cmo
File _build/plugin_find.cmo
Unit name: Plugin_find
Interfaces imported:
ad06f04cfca6d404d1de76c3dc67324a Int32
d012329cc712e91d0f10a5eef2303d18 Printf
db7f34081ef8fcaf499f19523d0736c6 String
9b043210ba766ec98c0c64e3dfba3013 Plugin_find
e2378c62e62b3516b3b9da1a984c728d Plugin_helper
af3ef6fba94cdb4eba31e98b4e341dab Buffer
024edc3512403b725052aec8e41ed971 Hashtbl
b0adfa4175f86e4394859886c1a374bb Obj
36b5bc8227dc9914c6d9fd9bdcfadb45 Pervasives
f11d7ddcffad09397202a49bd9bb4283 Map
6c35bd33088907f850bc27cd9072ffb5 Registry
Uses unsafe features: no
Force link: no
While previously it would fe also depend on Test_utils, Quickcheck and some 40 others.
Plugins need to be able to (de)serialize inputs and outputs, but allowing them to access
Llio
opens upStd
and explodes the number of dependencies. These dependencies make plugins break if they are not compiled with the exact (md5 wise) same set of library versions as the arakoon binary.The patch introduces an extra interface allowing them to not be dependent on kitchen sinks like
Lwt
orStd
. As an example:While previously it would fe also depend on
Test_utils
,Quickcheck
and some 40 others.