Mirage 3.7.1 released

MirageOS 3.7.1 is released to opam repository now.

Breaking change:

Behaviour changes of MirageOS unikernels:

  • A unikernel now always calls the Mirage_runtime.at_exit registered
    hooks – once a unikernel succesfully executed its start in
    Lwt_main.run, exit 0 is called to ensure this behaviour https://github.com/mirage/mirage/pull/1011
  • Top-level exceptions are no longer caught (there used to be in
    mirage-unix/mirage-xen/mirage-solo5 custom handlers). The OCaml runtime
    prints the exception and backtrace on stdout and calls exit 2 (from
    4.10.0, abort() will be called).

Deprecations (being removed from Mirage 4.0)

  • All Mirage_YYY_lwt are deprecated, Mirage_YYY interfaces are no longer
    astracted over 'a io and buffer. This reduces the amount of opam
    packages - mirage-yyy-lwt are no longer part of the release (each
    mirage-yyy package provides a Mirage_yyy_lwt module for backwards
    compatibility). Motivation was discussed in https://github.com/mirage/mirage/issues/1004
  • mirage-types and mirage-types-lwt are deprecated, please use the
    Mirage_YYY signatures directly instead.

Other observable changes

  • mirage configure now deletes all exising opam files

Most reverse dependencies are already released to opam, have a look at
https://github.com/mirage/mirage/issues/1012 for progress (and the
temporary https://github.com/mirage/mirage-dev.git#easy opam overlay).

Happy hacking,