Skip to content
This repository has been archived by the owner on Oct 18, 2020. It is now read-only.

Releases: mirage/mirage-platform

split the `mirage-xen` package into 3

18 Mar 20:26
Compare
Choose a tag to compare
  • Split mirage-xen into three opam packages: mirage-xen-posix (includes and mini-libc), mirage-xen-ocaml (OCaml runtime) and mirage-xen (bindings and OCaml OS libraries) (#125, patch from @hannesm)

Add opam files and remove `page_stubs.c`

16 Mar 21:07
Compare
Choose a tag to compare
  • Add opam files for mirage-xen and mirage-unix OPAM packages
  • Remove page_stubs.c, now provided by io-page (#122, patch from @hannesm)

Add generic engine hooks and restore GC tracing support

04 Mar 23:33
Compare
Choose a tag to compare
  • Add generic hooks to mainloop to support background tasks. (#120)
  • [xen] Report trace events for GC again; this was disabled temporarily
    in the 2.2.0 release. (#119)

Fix modern GCC and Xen compilation

27 Jan 00:42
Compare
Choose a tag to compare

Fix Xen compilation with gcc 4.8+ by disabling the stack protector and -fno-tree-loop-distribute-patterns (not compatible with MiniOS). These missing flags were a regression from 2.1.3, which did include them.

Add support for OCaml 4.02+ in Xen

23 Jan 16:15
Compare
Choose a tag to compare

This releases adds support for OCaml 4.02+ compilation, and changes the Xen
backend build for Mirage significantly by:

  • removing the OCaml compiler runtime from the mirage-platform, which makes
    it simpler to work across multiple revisions of the compiler. It now uses
    the ocaml-src OPAM package to grab the current switch's version of the
    OCaml runtime.
  • split the Xen runtime build into discrete pkg-config libraries:
    • mirage-xen-posix.pc : in the xen-posix/ directory, is the nano-posix
      layer built with no knowledge of OCaml
    • mirage-xen-minios.pc: defines the __INSIDE_MINIOS__ macro to expose
      internal state via the MiniOS headers (for use only by libraries that
      know exactly what they are doing with the MiniOS)
    • mirage-xen-ocaml.pc: in xen-ocaml/core/, this builds the OCaml asmrun,
      Bigarray and Str bindings using the mirage-xen-posix layer.
    • mirage-xen-ocaml-bindings.pc: in xen-ocaml/bindings/, these are bindings
      required by the OCaml libraries to MiniOS. Some of the bindings use MiniOS
      external state and hence use mirage-xen-minios, whereas others
      (cstruct_stubs and barrier_stubs are just OCaml bindings and so just
      use mirage-xen-posix).
    • mirage-xen.pc: depends on all the above to provide the same external
      interface as the current mirage-platform.

The OCaml code is now built using OASIS, since the C code is built entirely
separately and could be moved out into a separate OPAM package entirely.

Improved reporting of top-level errors in Xen backend

23 Jan 11:08
Compare
Choose a tag to compare
  • [xen] Fix error handling in OS.Main.run to enable a top-level
    exception to signal to the Xen toolstack that it crashed (versus a
    clean exit). This in turn lets on_crash="preserve" behaviour work
    better in Xen VM description files.
  • Remove mirage-xen.pc file on uninstall.

Further Xen/MiniOS header cleanup

21 Dec 13:51
Compare
Choose a tag to compare

[xen] Updated headers and build for Mini-OS 0.5. This involves:

  • Require libminios >= 0.5
  • Remove old includes directory when installing
  • Compile with -fno-builtin (avoids warnings about standard functions)
  • Removed complex.h (now provided by Openlibm)
  • Include cdefs.h from types.h (needed for __BEGIN_DECLS)
  • Removed open from unistd.h (comes from fcntl.h)
  • Removed assert.h and __assert_fail (provided by Mini-OS)
  • Removed string.h (provided by Mini-OS)
  • Removed cdefs.h (provided by Mini-OS)
  • Added missing console.h includes (for printk)

Add header definitions for Ctypes support

17 Dec 13:43
Compare
Choose a tag to compare
  • Remove checksum stubs from Unix and Xen, as they are provided by tcpip now.
  • [xen] Define UINTx_MAX and SIZE_MAX in stdint.h, which is sufficient to let Ctypes compile (yallop/ocaml-ctypes#231)

Add Xen tracing and improve packaging of C runtime

07 Dec 23:12
Compare
Choose a tag to compare
  • [xen] Report trace events for GC, block_domain, XenStore and event channels.
    This introduces a new dependency on the mirage-profile package.
  • [xen] Install a pkg-config file to allow other projects to compile C stubs
    against mirage-xen.
  • [xen] Remove duplication of OCaml header files inside the include tree.

Xen stability: use monotonic time, check for page aligned I/O and add assert stubs

05 Dec 17:36
Compare
Choose a tag to compare
  • [xen] Assert that pages passed to the grant share API are page-aligned.
    This always happens if they are created via Io_page.create, and
    probably not true if made by Cstruct.create.
  • [xen] Use monotonic time for timing events, not wall-clock time.
  • [xen] Provide functions that C code often uses for asserts (abort,
    printf, etc).