Incubaid / arakoon

A consistent distributed key-value store
http://arakoon.org
Apache License 2.0
84 stars 17 forks source link

limits dependencies for plugins #489

Closed toolslive closed 10 years ago

toolslive commented 10 years ago

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.

NicolasT commented 10 years ago

New modules lack a license header.