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

[Xen-devel] RFC building tools/ocaml as Opam packages



The tools/ocaml source tree is deeply interwoven with with how Xen is
built.  To explore what it would look like as an independent OCaml
project I have created

  https://github.com/lindig/xen-ocaml-tools/

which builds the Xen bindings and xenstored against libraries
already installed on a system. I was motivated by the following
advantages:

* Better access for OCaml developers due to a more familiar structure
* Vastly simplified build specifications and fast build times
* Better tool support during development (via Merlin)
* Set up as a canonical OCaml project that is structured into two Opam
  packages: xen and xenstored. Opam is OCaml’s package manager and 
  the established way of building and distributing OCaml packages.
* Easy integration with Travis CI

The biggest disadvantage is that the code is imported from the Xen
source tree and slightly modified to make it fit the new model. See
tools/import.sh for this step.

As we know, some bindings are version dependent and this means the code
depends on a specific Xen release - in this case 4.8.4 plus 4 backported
patches to make the OCaml code safe-string compliant.

* 9f3b40e8fe make xen ocaml safe-strings compliant
* 2d6a8daef8 tools: reduce copies b/w ocaml Strings and Bytes
* ec7d54dd1a ocaml/libs/xb: Use bytes in place of strings ...
* d933f1a53c tools/ocaml: Drop coredump infrastructure

Where this could lead to:

* Maintaining the OCaml tools independently and outside the Xen source
  tree.

* Updating the tools/ocaml tree to use the updated structure and the way
  of building it. This would require further exploration beyond using
  the Dune build tool.

— Christian

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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