Releases: mirage/mirage
Interface cleanups and entropy support
- Remove the
IO_PAGE
module type fromV1
. This has now moved into the
io-page
pacakge (#356) - Remove
DEVICE.connect
from theV1
module types. When a module is
functorised over aDEVICE
it should only have the ability to
use devices it is given, not to connect to new ones. (#150) - Add
FLOW.error_message
to theV1
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
Add IPv6 support to the type definitions
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
- Do not reuse the Unix linker options when building Xen unikernels. Instead,
get the linker options from the ocamlfindxen_linkopts
variables (#332).
Seetcpip.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
thevmnet
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
- 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
Support for Mirage 2.0 libraries (Vchan, Conduit, Resolver) and CLI improvements
Backwards incompatible changes to V1 types:
CONSOLE
is now aFLOW
, sowrite
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
andResolver
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
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
andOPAMYES
in the Makefile, which can be overridden. - Add an
ENTROPY
device type for strong random sources (#256).
Add FLOW signature
- 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
- 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)