Skip to content

Commit af27e2a

Browse files
committed
[new release] mirage (2 packages) (4.9.0)
CHANGES: - Remove time, pclock, mclock, random from functor arguments Instead, use the linking trick in mirage-mtime, mirage-ptime, mirage-sleep libraries (mirage/mirage#1599 @hannesm, discussion in mirage/mirage#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 mirage/mirage#1088 mirage/mirage#873)
1 parent 64a9d67 commit af27e2a

File tree

2 files changed

+108
-0
lines changed
  • packages
    • mirage-runtime/mirage-runtime.4.9.0
    • mirage/mirage.4.9.0

2 files changed

+108
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
opam-version: "2.0"
2+
3+
authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne"
4+
"Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar"
5+
"Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"]
6+
homepage: "https://github.com/mirage/mirage"
7+
bug-reports: "https://github.com/mirage/mirage/issues/"
8+
dev-repo: "git+https://github.com/mirage/mirage.git"
9+
license: "ISC"
10+
tags: ["org:mirage" "org:xapi-project"]
11+
doc: "https://mirage.github.io/mirage/"
12+
available: opam-version >= "2.1.0"
13+
14+
build: [
15+
["dune" "subst"] {dev}
16+
["dune" "build" "-p" name "-j" jobs]
17+
["dune" "runtest" "-p" name "-j" jobs] {with-test}
18+
]
19+
20+
depends: [
21+
"ocaml" {>= "4.13.0"}
22+
"dune" {>= "2.9.0"}
23+
"logs" {>= "0.7.0"}
24+
"lwt" {>= "4.0.0"}
25+
"ipaddr" {>= "5.5.0"}
26+
"cmdliner" {>= "1.2.0"}
27+
]
28+
conflicts: [
29+
"result" {< "1.5"}
30+
"ppxlib" {= "0.29.0"} #0.29.0 provides a vendored ppx_sexp_conv
31+
]
32+
synopsis: "The base MirageOS runtime library, part of every MirageOS unikernel"
33+
description: """
34+
A bundle of useful runtime functions for applications built with MirageOS
35+
"""
36+
x-maintenance-intent: [ "(latest)" ]
37+
url {
38+
src:
39+
"https://github.com/mirage/mirage/releases/download/v4.9.0/mirage-4.9.0.tbz"
40+
checksum: [
41+
"sha256=0c07d59eb52dc3d1506eb4121c4953104a12df79d08a0f0923c9b71e7474a026"
42+
"sha512=666bf9ee20c9f9de058441f252f4f40ceec6a9ffd00e5cd3b7bfa9532fd65000aeb8a83f9e55586be98d0a86ea72f2dda94e924608135e3d63441359505de58a"
43+
]
44+
}
45+
x-commit-hash: "c49e60fda7bd7f917bc4bf46281ea3961d00a4e7"

packages/mirage/mirage.4.9.0/opam

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
opam-version: "2.0"
2+
3+
authors: ["Thomas Gazagnaire" "Anil Madhavapeddy" "Gabriel Radanne"
4+
"Mindy Preston" "Thomas Leonard" "Nicolas Ojeda Bar"
5+
"Dave Scott" "David Kaloper" "Hannes Mehnert" "Richard Mortier"]
6+
homepage: "https://github.com/mirage/mirage"
7+
bug-reports: "https://github.com/mirage/mirage/issues/"
8+
dev-repo: "git+https://github.com/mirage/mirage.git"
9+
license: "ISC"
10+
tags: ["org:mirage" "org:xapi-project"]
11+
doc: "https://mirage.github.io/mirage/"
12+
available: opam-version >= "2.1.0"
13+
14+
build: [
15+
["dune" "subst"] {dev}
16+
["dune" "build" "-p" name "-j" jobs]
17+
["dune" "runtest" "-p" name "-j" jobs] {with-test}
18+
]
19+
20+
depends: [
21+
"ocaml" {>= "4.13.0"}
22+
"dune" {>= "2.9.0"}
23+
"astring"
24+
"cmdliner" {>= "1.2.0"}
25+
"cmdliner" {with-test & >= "1.3.0"}
26+
"emile" {>= "1.1"}
27+
"fmt" {>= "0.8.7"}
28+
"ipaddr" {>= "5.0.0"}
29+
"bos"
30+
"fpath"
31+
"rresult" {>= "0.7.0"}
32+
"uri" {>= "4.2.0"}
33+
"logs" {>= "0.7.0"}
34+
"opam-monorepo" {>= "0.4.0"}
35+
"alcotest" {with-test}
36+
"mirage-runtime" {with-test & = version}
37+
]
38+
39+
conflicts: [ "jbuilder" {with-test} ]
40+
41+
synopsis: "The MirageOS library operating system"
42+
description: """
43+
MirageOS is a library operating system that constructs unikernels for
44+
secure, high-performance network applications across a variety of
45+
cloud computing and mobile platforms. Code can be developed on a
46+
normal OS such as Linux or MacOS X, and then compiled into a
47+
fully-standalone, specialised unikernel that runs under the Xen
48+
hypervisor.
49+
50+
Since Xen powers most public cloud computing infrastructure such as
51+
Amazon EC2 or Rackspace, this lets your servers run more cheaply,
52+
securely and with finer control than with a full software stack.
53+
"""
54+
x-maintenance-intent: [ "(latest)" ]
55+
url {
56+
src:
57+
"https://github.com/mirage/mirage/releases/download/v4.9.0/mirage-4.9.0.tbz"
58+
checksum: [
59+
"sha256=0c07d59eb52dc3d1506eb4121c4953104a12df79d08a0f0923c9b71e7474a026"
60+
"sha512=666bf9ee20c9f9de058441f252f4f40ceec6a9ffd00e5cd3b7bfa9532fd65000aeb8a83f9e55586be98d0a86ea72f2dda94e924608135e3d63441359505de58a"
61+
]
62+
}
63+
x-commit-hash: "c49e60fda7bd7f917bc4bf46281ea3961d00a4e7"

0 commit comments

Comments
 (0)