[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] sexplib v0.9.0 breakage of MirageOS unikernels (xen & solo5)

On 03/23/2017 07:41 AM, Hannes Mehnert wrote:


sexplib v0.9.0 was released to opam-repository.  This is a successor of
113.33.03.  Since v0.9.0, it now depends on base, a new standard library
replacement by Jane Street (a stripped down version of Core).
Base contains C code, which is not cross-compiled to xen/freestanding
targets, thus we end up in undefined symbols (see

I'm not sure what the way forward is here -- the current opam-repository
doesn't let anyone build any MirageOS unikernels which depend on (uri,
cstruct, vchan, tls, x509, mirage-net-xen, ..) unless pinning sexplib to
113.33.03 ("opam pin add sexplib 113.33.03" should do the trick).

I would be interested what other people think about depending on base -
I personally think it still is a huge library (base.cma is ~5MB), and
thus in stark contrast of the goals of MirageOS (once LTO and other
things are in place, this may reduce the 5MB to less) - which is minimal
virtual machine images.  Also, base seems to be a collection of several
things, whereas there are other minimal high quality libraries available
(e.g. astring).

So, how should we move forward here?  My current favourite is 3 or 4.
  (1) split universe, constrain to sexplib <= 113.33
  (2) adapt base to freestanding&xen
  (3) re-develop a dependency-free sexplib
  (4) get rid of sexplib converters

In the meantime, to fix the current breakage, I opened
https://github.com/ocaml/opam-repository/pull/8793 which does (1) for my
and mirleft packages.

I've also submitted https://github.com/ocaml/opam-repository/pull/8794 to add a conflict with sexplib > 113.33.03 to mirage-xen and ocaml-freestanding packages that might attempt to coinstall.

MirageOS-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.