diff --git a/.travis-ci.sh b/.travis-ci.sh deleted file mode 100755 index 52b5a45..0000000 --- a/.travis-ci.sh +++ /dev/null @@ -1,31 +0,0 @@ -OPAM_DEPENDS="mirage mirage-clock-xen mirage-xen mirage-profile" - -case "$OCAML_VERSION,$OPAM_VERSION" in -3.12.1,1.0.0) ppa=avsm/ocaml312+opam10 ;; -3.12.1,1.1.0) ppa=avsm/ocaml312+opam11 ;; -4.00.1,1.0.0) ppa=avsm/ocaml40+opam10 ;; -4.00.1,1.1.0) ppa=avsm/ocaml40+opam11 ;; -4.01.0,1.0.0) ppa=avsm/ocaml41+opam10 ;; -4.01.0,1.1.0) ppa=avsm/ocaml41+opam11 ;; -*) echo Unknown $OCAML_VERSION,$OPAM_VERSION; exit 1 ;; -esac - -echo "yes" | sudo add-apt-repository ppa:$ppa -sudo apt-get update -qq -sudo apt-get install -qq ocaml ocaml-native-compilers camlp4-extra opam - -export OPAMYES=1 -export OPAMVERBOSE=1 -echo OCaml version -ocaml -version -echo OPAM versions -opam --version -opam --git-version - -opam init -opam update -depext=`opam install -e ubuntu $OPAM_DEPENDS` -sudo apt-get install -qq $depext -opam install ${OPAM_DEPENDS} -eval `opam config env` -make diff --git a/.travis.yml b/.travis.yml index 1957db9..df77edc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,6 @@ language: c -script: bash -ex .travis-ci.sh +install: wget https://raw.githubusercontent.com/ocaml/ocaml-travisci-skeleton/master/.travis-opam.sh +script: bash -ex .travis-opam.sh env: - - OCAML_VERSION=4.01.0 OPAM_VERSION=1.1.0 + - OCAML_VERSION=latest PACKAGE=mirage-net-xen + - OCAML_VERSION=4.01 PACKAGE=mirage-net-xen diff --git a/CHANGES b/CHANGES index d02d378..065bd30 100644 --- a/CHANGES +++ b/CHANGES @@ -1,9 +1,13 @@ -* When waiting for space in the transmit queue, we would sometimes fail to notice when - space became available. -* Copy out-bound data into pre-shared pages for performance, security and simplicity. +1.3.0 (2015-01-24): +* When waiting for space in the transmit queue, we would sometimes fail + to notice when space became available. (#15) +* Copy out-bound data into pre-shared pages for performance, security + and simplicity. (#17) +* Use a centrally sourced Travis file and test OCaml 4.02+ as well. 1.2.0 (2014-12-17): -* Add profiling tracepoints and labels (#13). Introduces a dependency on `mirage-profile`. +* Add profiling tracepoints and labels (#13). + Introduces a dependency on `mirage-profile`. * New `opam` file present in source repository for OPAM 1.2 workflow. 1.1.3 (2014-08-08): diff --git a/_oasis b/_oasis index 87f9335..648c742 100644 --- a/_oasis +++ b/_oasis @@ -1,10 +1,10 @@ OASISFormat: 0.4 Name: mirage-net-xen -Version: 1.2.0 +Version: 1.3.0 Synopsis: Xen network frontend driver implementation Authors: Anil Madhavapeddy, David Scott License: ISC -Plugins: META (0.3), DevFiles (0.3) +Plugins: META (0.4), DevFiles (0.4) BuildTools: ocamlbuild Library "mirage-net-xen" @@ -12,4 +12,5 @@ Library "mirage-net-xen" Path: lib Findlibname: mirage-net-xen Modules: Netif - BuildDepends: lwt.syntax,cstruct, cstruct.syntax, ipaddr, mirage-xen, xen-evtchn, xen-gnt, mirage-profile + BuildDepends: lwt.syntax, cstruct, cstruct.syntax, ipaddr, mirage-xen, xen-evtchn, xen-gnt, mirage-profile + XMETARequires: lwt, cstruct, ipaddr, mirage-xen, xen-evtchn, xen-gnt, mirage-profile diff --git a/lib/META b/lib/META index fd63f83..0ce1d5a 100644 --- a/lib/META +++ b/lib/META @@ -1,9 +1,8 @@ # OASIS_START -# DO NOT EDIT (digest: 1f973501842c42b53f95c2b3f2186970) -version = "1.2.0" +# DO NOT EDIT (digest: 359ed9b327bc26524f3cee5aaa540534) +version = "1.3.0" description = "Xen network frontend driver implementation" -requires = -"lwt.syntax cstruct cstruct.syntax ipaddr mirage-xen xen-evtchn xen-gnt mirage-profile" +requires = "lwt cstruct ipaddr mirage-xen xen-evtchn xen-gnt mirage-profile" archive(byte) = "mirage-net-xen.cma" archive(byte, plugin) = "mirage-net-xen.cma" archive(native) = "mirage-net-xen.cmxa" diff --git a/lib/netif.ml b/lib/netif.ml index 241b8eb..1d28f11 100644 --- a/lib/netif.ml +++ b/lib/netif.ml @@ -391,12 +391,12 @@ let tx_poll nf = let poll_thread (nf: t) : unit Lwt.t = let rec loop from = - lwt () = refill_requests nf.t in rx_poll nf.t nf.receive_callback; + refill_requests nf.t >>= fun () -> tx_poll nf.t; - - lwt from = Activations.after nf.t.evtchn from in - loop from in + Activations.after nf.t.evtchn from >>= fun from -> + loop from + in loop Activations.program_start let connect id = diff --git a/setup.ml b/setup.ml index 50a4890..ee03e12 100644 --- a/setup.ml +++ b/setup.ml @@ -1,7 +1,7 @@ (* setup.ml generated for the first time by OASIS v0.4.1 *) (* OASIS_START *) -(* DO NOT EDIT (digest: 15b31a850ce53ebd316ce6dd0b501f31) *) +(* DO NOT EDIT (digest: fde7d63a140d350f6ba215f082781b14) *) (* Regenerated by OASIS v0.4.5 Visit http://oasis.forge.ocamlcore.org for more information and @@ -6673,7 +6673,7 @@ let setup_t = alpha_features = []; beta_features = []; name = "mirage-net-xen"; - version = "1.2.0"; + version = "1.3.0"; license = OASISLicense.DEP5License (OASISLicense.DEP5Unit @@ -6768,14 +6768,15 @@ let setup_t = }) ]; plugins = - [(`Extra, "META", Some "0.3"); (`Extra, "DevFiles", Some "0.3")]; + [(`Extra, "META", Some "0.4"); (`Extra, "DevFiles", Some "0.4")]; disable_oasis_section = []; schema_data = PropList.Data.create (); plugin_data = [] }; oasis_fn = Some "_oasis"; oasis_version = "0.4.5"; - oasis_digest = Some "\149HO>\172u\247\209\211\155\021\1354+\216\n"; + oasis_digest = + Some "\217\026\223\t\223\177\216\167\001\224\1553\205\238,,"; oasis_exec = None; oasis_setup_args = []; setup_update = false @@ -6783,6 +6784,6 @@ let setup_t = let setup () = BaseSetup.setup setup_t;; -# 6787 "setup.ml" +# 6788 "setup.ml" (* OASIS_STOP *) let () = setup ();;