Skip to content

Releases: mirage/mirage

Interface cleanups and entropy support

10 Mar 12:01
Compare
Choose a tag to compare
  • Remove the IO_PAGE module type from V1. This has now moved into the
    io-page pacakge (#356)
  • Remove DEVICE.connect from the V1 module types. When a module is
    functorised over a DEVICE it should only have the ability to
    use devices it is given, not to connect to new ones. (#150)
  • Add FLOW.error_message to the V1 module types to allow for
    generic handling of errors. (#346)
  • Add IP.uipaddr as a universal IP address type. (#361)
  • Support the entropy version 0.2+ interfaces. (#359)
  • Check that the opam command is at least version 1.2.0 (#355)
  • Don't put '-classic-display' in the generated Makefiles. (#364)

Fix external C library linking and command line bug fixes

29 Jan 10:46
Compare
Choose a tag to compare
  • Fix logging errors when mirage output is not redirected. (#355)
  • Do not reverse the order of C libraries when linking. This fixes Zarith
    linking in Xen mode. (#341).
  • Fix typos in command line help. (#352).

Add IPv6 support to the type definitions

18 Dec 18:39
Compare
Choose a tag to compare

Add IPv6 support, from Nicolas Ojeda Bar. This alters some of the interfaces that were previously hardcoded to IPv4 by generalising them. For example:

type v4
type v6

type 'a ip
type ipv4 = v4 ip
type ipv6 = v6 ip

Full support for configuring IPv6 does not exist yet, as this release is
intended for getting the type definitions in place before adding configuration
support.

Improve Xen linking, MacOS X compilation and build times

10 Dec 16:33
Compare
Choose a tag to compare
  • Do not reuse the Unix linker options when building Xen unikernels. Instead,
    get the linker options from the ocamlfind xen_linkopts variables (#332).
    See tcpip.2.1.0 for a library that does this for a C binding.
  • Only activate MacOS X compilation by default on 10.10 (Yosemite) or higher.
    Older revisions of MacOS X will use the generic Unix mode by default, since
    the vmnet framework requires Yosemite or higher.
  • Do not run crunched filesystem modules through camlp4, which significantly
    speeds up compilation on ARM platforms (from minutes to seconds!) (#299).

Specific target support for MacOS X, and bug fixes for builds

07 Dec 23:04
Compare
Choose a tag to compare
  • Add specific support for MacOSX as a platform, which enables network bridging
    on Yosemite (#329). The --unix flag will automatically activate the new target
    if run on a MacOS X host. If this breaks for you due to being on an older version of
    MacOS X, then use the new --target flag to set either Unix, MacOSX or Xen to the
    mirage configure command.
  • Add mirage.runtime findlib library and corresponding Mirage_runtime module (#327).
  • If net driver in STACKV4_direct can't initialize, print a helpful error (#164).
  • [xen]: fixed link order in generated Makefile (#322).
  • Make Lwt.tracing instructions work for Fish shell too by improving quoting (#328).

Add Tracing support

21 Nov 10:41
Compare
Choose a tag to compare
  • Add register ~tracing to enable tracing with mirage-profile at start-up (#321).
  • Update Dockerfile for latest libraries (#320).
  • Only build mirage-types if Io_page is also installed (#324).

Support for Mirage 2.0 libraries (Vchan, Conduit, Resolver) and CLI improvements

03 Nov 14:26
Compare
Choose a tag to compare

Backwards incompatible changes to V1 types:

  • CONSOLE is now a FLOW, so write has a different signature and 'write_all' has been removed.

New features in the CLI and config parser:

  • Set on_crash = 'preserve' in default Xen config.
  • Automatically install dependencies again, but display the live output to the user.
  • Include C stub libraries in linker command when generating Makefiles for Xen.
  • Add Vchan, Conduit and Resolver code generators.
  • Generate a *.xe script which can upload a kernel to a XenServer.
  • Generate a libvirt *.xml configuration file (#292).
  • Fix determination of mirage-xen location for paths with spaces (#279).
  • Correctly show config file locations when using a custom one.
  • Fix generation of foreign (non-functor) modules (#293)

Simpler configuration and Entropy interface

07 Jul 09:39
Compare
Choose a tag to compare

The Mirage frontend tool now generates a Makefile with a make depend
target, instead of directly invoking OPAM as part of mirage configure.
This greatly improves usability on slow platforms such as ARM, since the
output of OPAM as it builds can be inspected more easily. Users will now
need to run make depend to ensure they have the latest package set,
before building their unikernel with make as normal.

  • Improve format of generated Makefile, and also colours in terminal output.
  • Add make depend target to generated Makefile.
  • Set OPAMVERBOSE and OPAMYES in the Makefile, which can be overridden.
  • Add an ENTROPY device type for strong random sources (#256).

Add FLOW signature

15 Jun 14:25
Compare
Choose a tag to compare
  • Build OPAM packages in verbose mode by default.
  • [types] Add FLOW based on TCPV4
  • travis: build mirage-types from here, rather than 1.1.0

Improve STACKV4 module type, and EC2 deployment scripts

29 Apr 21:39
Compare
Choose a tag to compare
  • Improvement to the Amazon EC2 deployment script.
  • [types] Augment STACKV4 with an IPV4 module in addition to TCPV4 and UDPV4.
  • Regenerate with OASIS 0.4.4 (which adds natdynlink support)