Skip to content

Releases: mirage/mirage

4.11.0

07 May 12:57

Choose a tag to compare

CHANGES:

  • Introduce a "--utcp" configuration-time flag (and "--management-utcp")
    (#1636 @hannesm @palainp)
  • BREAKING: the "--dhcp" configuration-time argument is now a flag "--no-dhcp"
    (and "--management-no-dhcp") (#1636 @hannesm)
  • Mirage.{direct_tcp, direct_stackv4v6, generic_stackv4v6,
    generic_stackv4v6_with_lease}: remove ?tcp argument (#1636 @hannesm)
  • Mirage.direct_tcp has an optional ?group argument now (#1636 @hannesm)
  • Mirage.{generic_stackv4v6, generic_stackv4v6_with_lease}: remove ?dhcp_key
    and ?net_key argument, they are now always constructed (#1636 @hannesm)
  • BREAKING: remove deprecated Mirage_runtime.register (#1638 @hannesm)
  • BREAKING: use "-" instead of "_" in DNS and happy eyeballs boot arguments:
    dns-servers (was dns_servers),
    dns-timeout (was dns_timeout),
    dns-cache-size (was dns_cache_size),
    he-aaaa-timeout (was he_aaaa_timeout),
    he-connect-delay (was he_connect_delay),
    he-connect-timeout (was he_connect_timeout),
    he-resolve-timeout (was he_resolve_timeout),
    he-resolve-retries (was he_resolve_retries),
    he-timer-interval (was he_timer_interval)
    (#1638 @hannesm)

4.10.6

21 Apr 12:41

Choose a tag to compare

CHANGES:

4.10.5

24 Feb 09:58

Choose a tag to compare

CHANGES:

  • Enable DHCP by default, and request and use DHCP lease information as fit
    (plus allow dynamically to request further DHCP options) (#1628 @reynir,
    review by @palainp @hannesm)
  • Provide Mirage.generic_stackv4v6_with_lease (#1628 @reynir)
  • Provide Mirage_runtime_network.optional_network (#1628 @reynir)
  • Allow dhcp to provide information to DNS (Mirage.resolver_dns and
    Mirage.generic_dnc_client) and other entities (via
    Mirage.make_dhcp_requests/Mirage.add_dhcp_requests/Mirage.dhcp_requests)
    (#1628 @reynir)
  • Update to charrua 3.0 (#1628 @reynir)
  • Upgrade to ocamlformat 0.28.1 (#1625 @reynir)
  • Avoid lwt 6 due to a dune issue (ocaml/dune#13299,
    #1629, 35c43d3 @hannesm)

4.10.4

21 Nov 11:26

Choose a tag to compare

CHANGES:

4.10.3

27 Oct 20:42

Choose a tag to compare

CHANGES:

4.10.2

03 Oct 14:35

Choose a tag to compare

CHANGES:

  • Add a way to provide network and address to generic_stackv4v6 (removed in
    4.10.0, requested by @ansiwen in #1612, #1615)
  • Upgrade to cmdliner 2.0.0 (#1614 @hannesm fixes #1602)
  • Refactor open into qualified access in devices (#1613 @reynir)

4.10.1

09 Sep 12:22

Choose a tag to compare

CHANGES:

  • Fix the generated dependencies on mirage-runtime to 4.10.*

4.10.0

08 Sep 14:11

Choose a tag to compare

CHANGES:

  • Add unikraft targets (#1607 @fabbing @shym)
  • Add a ?local_libs parameter to allow local dune libs
    (#1609 @omegametabroccolo)
  • Add a --name argument to each unikernel (Mirage_runtime.name ()),
    remove monitor_hostname (#1611 @hannesm)
  • Use Git_net instead of Git_mirage (#1606 @dinosaure)
  • Fix Mirage_runtime documentation headers, use correct Stop special comment
    (#1605 @reynir)
  • Exclude buggy dune versions from testing (#1609 @reynir)
  • Remove unused exports about ip stacks, ipv4_config, ipv6_config,
    socket_tcpv4v6, and socket_udpv4v6 (#1612 @hannesm)

4.9.0

04 Mar 17:07

Choose a tag to compare

CHANGES:

  • Remove time, pclock, mclock, random from functor arguments
    Instead, use the linking trick in mirage-mtime, mirage-ptime, mirage-sleep
    libraries (#1599 @hannesm, discussion in #1513 and on the mailing list)
    This removes the default_time, default_monotonic_clock, default_posix_clock
    bindings, and allows "Mirage.register" to get ?sleep ?ptime ?mtime ?random
    passed optionally, following how ?argv is handled.

    This is a breaking change, and your unikernel likely needs to be updated. Have
    a look at mirage/mirage-skeleton#407 for how our
    examples changed.

    As example, the hello-key unikernel diff:

  --- a/tutorial/hello-key/config.ml
  +++ b/tutorial/hello-key/config.ml
  @@ -2,5 +2,5 @@
   open Mirage

   let packages = [ package "duration" ]
  -let main = main ~packages "Unikernel.Hello" (time @-> job)
  -let () = register "hello-key" [ main $ default_time ]
  +let main = main ~packages "Unikernel" job
  +let () = register "hello-key" [ main ]

  --- a/tutorial/hello-key/unikernel.ml
  +++ b/tutorial/hello-key/unikernel.ml
  @@ -5,13 +5,12 @@ let hello =
     let doc = Arg.info ~doc:"How to say hello." [ "hello" ] in
     Mirage_runtime.register_arg Arg.(value & opt string "Hello World!" doc)

  -module Hello (Time : Mirage_time.S) = struct
  -  let start _time =
  +let start () =
     let rec loop = function
       | 0 -> Lwt.return_unit
       | n ->
         Logs.info (fun f -> f "%s" (hello ()));
  -          Time.sleep_ns (Duration.of_sec 1) >>= fun () -> loop (n - 1)
  +      Mirage_sleep.ns (Duration.of_sec 1) >>= fun () ->
  +      loop (n - 1)
     in
     loop 4
  -end
  • Inject a unit argument to the start function if otherwise it would have
    no binding (discussed various times, including #1088 #873)

4.8.2

09 Dec 10:21

Choose a tag to compare

CHANGES: