Mirage OS Logo

The MirageOS Documentation

and developer guides

Weekly Meeting: 2016-03-02
By Amir Chaudhry - 2016-03-02


  • Quality and Test
  • MirageOS 2.7 released!
  • MirageOS Hackathon next week!
  • GSoC / Xen
  • Basic CI
  • Pinned packages

Attendees: Amir, Gemma, Dan Williams, talex5, mindy, Drup, ThomasG, Mort, Hannes DavidK, SeanG, Anil, Chris ?, Daniel.


Quality and Test

  • Anil working it. Got extra users now. Tests for 4.03.0 are running.
  • Folks should switch to -ppx extensions instead (anyone using camlp4 should switch)
  • Discussion and decision that we should move to 4.02 support only (i.e. drop support for 4.01). No strong objections to this in the last few weeks.
  • camlp4toppx works really well. Rudi wrote a good blog post on this. Anil found some bugs so does it manually.
  • Need to jump over at some point to ppx :) Need to do it together.
  • If we had virtual packages it would have been easier to transition. Tedious to go through every single package. TG: sometimes you have new depopts? AM: Will take a look properly and figure it out. Virtual packages seem the way to go, but no clean answer right now.
  • cstruct is one of the first packages that we need a pure version of (i.e. not camlp4). It has many reverse dependencies. To build, it doesn't require camlp4.
  • Some comments about tyxml.

MirageOS 2.7 released!

  • Yay for release! Thanks everyone!
  • TG: Have seen an issue with the block devices. If you look at mirage-www we notice block device issues. mirage-www needs only one but mounts 5.
  • Gabriel thinks he knows why and will comment on the issue.

MirageOS Hackathon

  • Hannes has booked flights. All seems to be fine!
  • Food at breakfast, 2pm and evening! All sorted.
  • Could possibly have people joining remotely, maybe folks from Cambridge.
  • How many people interested in that and is it possible to do that?
    • There's internet at the venue and someone could do that (won't be Hannes).
    • Benefit is it's in the same time zone as the UK.
  • Will use the IRC channel for comms if people want to join remotely. If anyone can transport books to Morocco, please tell Hannes :)

GSoC / Xen

  • Xen Project not part of GSoC this year. 2nd year in a row that Xen isn't selected. Many other orgs didn't get selected either.
  • SG: Clojure org not selected either and they have been for several years. Seems like Google just narrowing their organisation inclusion criteria.
  • Suggestion about applying as unikernel.org. AC will take a look at requirements.
  • Suggestion to look into ESA summer of code.
  • We're still part of Outreachy though.

Basic CI

  • SeanG was surprised that when we went to deploy, he hit the bootvar issue when deploying to public cloud. Having some basic test harness would be good.
  • Looking at setting up a unikernel workshop at the OCaml meetups and having a CI set up would be great for this. Sean can take a crack at getting this up and running.
  • SeanG's tests needs to be running on EC2 to test things. As we move into more real world production it'll be an issue.
  • Need to have test set ups working for all major cloud providers. Current testing is mostly compilation and units tests (e.g. mirage-skeleton). Should also be testing bootvars to see if it can handle arbitrary things.
  • We're missing an end-to-end solution.
  • Spiros has EC2 bindings so Mindy will plan a blog post. SG: Mindy's scripts were really useful in getting started — thank you for those.

Pinned packages

  • SG: Wants to deploy unikernel-based service at his company. Need to have a consistent dev environment to share with others. Has manual instructions to pin packages (frustrating). People should make releases (but even then, doesn't deal with the problem of versions.). Maybe functoria can be used to define things?
  • AM: Maybe have mirage output a manifest and that's consumed by opam (instead of baking opam into Mirage). Then we can use container infrastructure. Trying to control everything from config.ml is difficult.
  • Containers make OPAM much easier. Right environment with everything precompiled. Easy for app to build on top of the container rather than controlling everything via config.ml
  • Can also create your own remotes with packages. It's a pain but it does work and only requires one instruction.
  • These days we should not really call opam from within mirage :) Would make it easier to run mirage in a deployment pipeline. Would also make sense to remove the depexts.
  • Most of this possible but not well integrated yet. Would like to get a config.ml to dockerfile thing.
  • Need better cross-platform support.
  • SG: Unclear about how mirage creates a makefile.
  • DBuenzli: cross compilation for 1.3 in opam? Louis has a lot of stuff to work on for opam internals. Windows has made good progress too. If anyone has time to look at windows stuff, that would be useful too.



  • Are video calls useful to people? Thoughts that calls are not useful without previous notes. Amir thinks calls are useful as long as people contribute to an agenda. Can try an IRC meeting during the Hackathon.

  • The next call is scheduled for 16th March. Please add any agenda items you wish to discuss in advance and refer to the mailing list for actual details a day or so in advance.