Documentation and guides

Weekly Meeting: 2014-04-29

29th April 2014: GSoC, Irminsule and Mirage Tutorial


Attendees: Amir Chaudhry (chair), Thomas Gazagnaire, Jonathan Ludlam, Anil Madhavapeddy, Richard Mortier, David Scott



Dave is mentor for the Mirage Cloud API project stuff and working with Jyotsna Prakash. The project is to develop Mirage OCaml bindings for the EC2 and Rackspace cloud APIs and an example Mirage application that uses the API. Mort is mentor for the OPW project and working with Mindy Preston on improvements to Mirage, such as (1) support for booting unikernels easily on EC2, Rackspace and OpenStack Clouds; (2) protocol bisimulations against existing Mirage protocol implementations; and (3) adding IPv6 support into mirage-net and a few others.

Dave and Mort will make intros about these new people to the list and Anil is writing a blog post about all the new people who'll be working on Mirage over the the summer.


ocaml-conduit seems to be working well enough but until ctypes is released we won't have stub generation and SSL won't work reliably.


Jon is working on it and at the moment it doesn't quite link. Some discussion over what the problems may be. Jon will look over this and try again. Actually sent a pull request while still on the call.


Added support for views. These are temporary stores with lazy reads and in-memory writes; they can be used to convert back and forth an OCaml value into a store, or to have a fast staging area without the need to commit every operation to the store. Values can be blobs or subtrees.

Lots of improvements to reading/writing and also worked on server and client side integration. Sometimes you want to give more control to user. Trying to implement transactions too.

Irminsule is getting ready for more users now. Dave can use Thomas' new code to replace some of his own and deal with some of the obvious problems in xenstore. Anil will try it with his IRC plans.

Should also move the Irminsule repo to Mirage org on GitHub.


Lots of discussion have taken place on the mailing list. Anil is stuck with image generation and get things on/off the devices. Impressive that ping works though! Anil will make a FAT SD-card script.

Mort mentioned that Chris (in Nottingham) has 3 Cubietrucks on their way to him (these have wifi built in) and will need new uboot thing.

Trove and Libraries

Trove is currently a bit rough but nice to have it there. It's a half finished as there are a lot of things that are not included. Whoever is next to release, please take notes as you go. Can use these to help document the process.

Need to sort out licensing for the libraries. Utility libraries that make sense for Mirage could be 'upstreamed' to Mirage. Benefits would be that any Mirage testing would include these.

Licenses for Mirage libraries should be ISC/BSD. Reasons for this include the need for static compilation and the way that unikernels may be deployed (containing necessary keys). Should also be wary of potential concerns from future collaborators (e.g license compatibility).

Releases workflow

Anil tried out Docker with Mirage and it worked very well. Experience is very similar to Travis, where you point Docker at your repo, it detects the Dockerfile and does the rest.

Mirage Tutorial day

Venue will be Computer Lab but figuring out a date is proving tricky. We also need to consider the content.

Some discussion over how we expect this to be delivered, e.g slides and talks along with code examples or purely online as documented tutorials. Mort has suggestions and will defer to the mailing list for now to see what people may be interested in.

NB: Earlier discussions about this took place on 2014-04-01 and 2014-03-18.

Using Codio

Amir tried Codio today and hit an issue related to aspcud (see the mailing list thread). There are now two issues open on the Codio bug tracker about including aspcud as part of the opam install (#83) and also to update their opam packages (#105). These should be fixed by Friday. In the meantime a manual upgrade process and installing a few libraries piecemeal (e.g optcomp first) should work. It does take a while though.


Wiki page for collecting agenda items is now up. See it at: