The mirage tool is now based on functoria.
See https://mirage.io/blog/introducing-functoria for full details.
Command line interface: The config file must be passed with the -f option
(instead of being just an argument).
Two new generic combinators are available, generic_stack and generic_kv_ro.
get_modeis deprecated. You should use keys instead. And in particular
add_to_opam_packagesare deprecated. Both
registerfunctions now accept the
~packagesarguments to specify library dependencies.
If you were using
tlswithout the conduit combinator, you will be
greeted during configuration by a message like this:
The "nocrypto" library is loaded but entropy is not enabled! Please enable the entropy by adding a dependency to the nocrypto device. You can do so by adding ~deps:[abstract nocrypto] to the arguments of Mirage.foreign.
Data dependencies (such as entropy initialization) are now explicit.
In order to fix this, you need to declare the dependency like so:
open Mirage let my_functor = let deps = [abstract nocrypto] in foreign ~deps "My_Functor" (foo @-> bar)
My_functor.startwill now take an extra argument for each
dependencies. In the case of nocrypto, this is
nat-script.shfrom the scripts directory, to be available
as an external script.