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

[MirageOS-devel] [ANN] mirage 3.7 release



Dear all,

we are pleased to announce Mirage 3.7.1
(https://github.com/ocaml/opam-repository/pull/15200). This release
contains some user-visible changes:

- During a "mirage configure", existing opam files are deleted (this
means a mirage configure -t unix && make followed by mirage configure -t
spt && make will just work, and not lead to opam complaining).
- At the (normal) end of execution of a unikernel. OCaml's exit function
is called (exit 0). This means that registered at_exit hooks are
actually executed on all targets.
- Exceptions during execution are no longer catched and reported via
Logs.err -- but instead uniformly left to the OCaml runtime. The
mirage-unix target in addition exited successfully (exit code 0) even on
exception, xen and solo5 used exit code 1 (now: 2, or with OCaml 4.10
abort). The reporting via Logs worked fine on console, but not via
syslog (since the unikernel was gone before the network packet was sent
out). Now, all targets uniformly report a backtrace on console / stdout.
- Mirage interfaces have been reduced by a factor of two. Instead of
abstracting over type 'a io and type buffer, they are concrete to Lwt.t
and Cstruct.t now. This does not mean that mirage will be "stuck with
Lwt" or "stuck with Cstruct", we can still evolve -- it only means that
for a given mirage release, the io and buffer types won't change (i.e.
all libraries will use the same). The generated documentation is much
more concise now. The number of opam packages is cut in half.
mirage-types-lwt (Mirage_types_lwt) is now an alias of Mirage_types
(both will be deprecated in MirageOS 4.0). Please note that this only
affects the core MirageOS interfaces, but libraries implementing
protocols of course still can (should?) abstract over the used io library.

For concrete code, what used to be:
module Main (T : Mirage_time_lwt.S)
is now:
module Main (T : Mirage_time.S)

For our mirage-skeleton examples, the diff looks very much like that -
https://github.com/mirage/mirage-skeleton/pull/278

This change required the release of all implementations (tracked as
https://github.com/mirage/mirage/issues/1012). Please be patient, some
packages are still in the process of being released for that -- but the
majority should work now.

It is likely that documentation and examples on the Internet don't work
anymore in respect to this change. Please don't hesitate to post them on
this list, so we can adapt them to the 3.7 release series.


Best,

hannes

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

 


Rackspace

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