ocaml / opam

opam is a source-based package manager. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.
https://opam.ocaml.org
Other
1.24k stars 359 forks source link

opam wrongly prefers downgrade to an upgrade with aspcud #1516

Closed edwintorok closed 10 years ago

edwintorok commented 10 years ago

Trying to upgrade cstruct would cause a downgrade of tyxml (why?):

$ opam install cstruct.1.3.1
The following actions will be performed:
 - downgrade tyxml.3.1.1 to 3.0.0
 - upgrade cstruct.1.3.0 to 1.3.1
 - recompile ocsigenserver.2.4.0 [use tyxml]
 - recompile xenstore.1.2.5 [use cstruct]
 - recompile shared-memory-ring.1.0.0 [use cstruct]
 - recompile io-page.1.1.1 [use cstruct]
 - recompile xen-gnt.1.0.2 [use cstruct]
 - recompile mirage-types.1.2.0 [use cstruct]
 - recompile dns.0.9.0 [use cstruct]
 - recompile mirage-net-unix.1.1.1 [use cstruct]
 - recompile mirage-clock-xen.1.0.0 [use cstruct]
 - recompile mirage-clock-unix.1.0.0 [use cstruct]
 - recompile mirage.1.2.0 [use cstruct]
 - recompile mirage-xen.1.1.1 [use cstruct]
 - recompile mirage-unix.1.1.0 [use cstruct]
 - recompile mirage-net-xen.1.1.1 [use cstruct]
 - recompile mirage-console-xen.1.0.2 [use cstruct]
 - recompile mirage-console-unix.1.0.0 [use cstruct]
 - recompile tcpip.1.1.5 [use cstruct]
 - recompile mirage-http.1.1.0 [use cstruct]
0 to install | 18 to reinstall | 1 to upgrade | 1 to downgrade | 0 to remove
Do you want to continue ? [Y/n]

Trying to explicitly install both cstruct and tyxml:

$ opam install cstruct.1.3.1 tyxml.3.1.1
opam install cstruct.1.3.1 tyxml.3.1.1 
[NOTE] Package tyxml is already installed (current version is 3.1.1).
The following actions will be performed:
 - downgrade js_of_ocaml.2.2 to 2.0
 - upgrade cstruct.1.3.0 to 1.3.1
 - recompile iocamljs-kernel.0.4.4 [use js_of_ocaml]
 - recompile hardcaml.1.0.0 [use js_of_ocaml]
 - recompile xenstore.1.2.5 [use cstruct]
 - recompile shared-memory-ring.1.0.0 [use cstruct]
 - recompile io-page.1.1.1 [use cstruct]
 - recompile xen-gnt.1.0.2 [use cstruct]
 - recompile mirage-types.1.2.0 [use cstruct]
 - recompile dns.0.9.0 [use cstruct]
 - recompile mirage-net-unix.1.1.1 [use cstruct]
 - recompile mirage-clock-xen.1.0.0 [use cstruct]
 - recompile mirage-clock-unix.1.0.0 [use cstruct]
 - recompile mirage.1.2.0 [use cstruct]
 - recompile mirage-xen.1.1.1 [use cstruct]
 - recompile mirage-unix.1.1.0 [use cstruct]
 - recompile mirage-net-xen.1.1.1 [use cstruct]
 - recompile mirage-console-xen.1.0.2 [use cstruct]
 - recompile mirage-console-unix.1.0.0 [use cstruct]
 - recompile tcpip.1.1.5 [use cstruct]
 - recompile mirage-http.1.1.0 [use cstruct]

Trying all 3 now:

$ opam install cstruct.1.3.1 tyxml.3.1.1 js_of_ocaml.2.2
[NOTE] Package tyxml is already installed (current version is 3.1.1).
[NOTE] Package js_of_ocaml is already installed (current version is 2.2).
The following actions will be performed:
 - upgrade cstruct.1.3.0 to 1.3.1
 - recompile xenstore.1.2.5 [use cstruct]
 - recompile shared-memory-ring.1.0.0 [use cstruct]
 - recompile io-page.1.1.1 [use cstruct]
 - recompile xen-gnt.1.0.2 [use cstruct]
 - recompile mirage-types.1.2.0 [use cstruct]
 - recompile dns.0.9.0 [use cstruct]
 - recompile mirage-net-unix.1.1.1 [use cstruct]
 - recompile mirage-clock-xen.1.0.0 [use cstruct]
 - recompile mirage-clock-unix.1.0.0 [use cstruct]
 - recompile mirage.1.2.0 [use cstruct]
 - recompile mirage-xen.1.1.1 [use cstruct]
 - recompile mirage-unix.1.1.0 [use cstruct]
 - recompile mirage-net-xen.1.1.1 [use cstruct]
 - recompile mirage-console-xen.1.0.2 [use cstruct]
 - recompile mirage-console-unix.1.0.0 [use cstruct]
 - recompile tcpip.1.1.5 [use cstruct]
 - recompile mirage-http.1.1.0 [use cstruct]

Using the built-in solver instead of aspcud works too (but of course its much slower):

$ opam install --no-aspcud cstruct.1.3.1
The following actions will be performed:
 - upgrade cstruct.1.3.0 to 1.3.1
 - recompile xenstore.1.2.5 [use cstruct]
 - recompile shared-memory-ring.1.0.0 [use cstruct]
 - recompile io-page.1.1.1 [use cstruct]
 - recompile xen-gnt.1.0.2 [use cstruct]
 - recompile mirage-types.1.2.0 [use cstruct]
 - recompile dns.0.9.0 [use cstruct]
 - recompile mirage-net-unix.1.1.1 [use cstruct]
 - recompile mirage-clock-xen.1.0.0 [use cstruct]
 - recompile mirage-clock-unix.1.0.0 [use cstruct]
 - recompile mirage.1.2.0 [use cstruct]
 - recompile mirage-xen.1.1.1 [use cstruct]
 - recompile mirage-unix.1.1.0 [use cstruct]
 - recompile mirage-net-xen.1.1.1 [use cstruct]
 - recompile mirage-console-xen.1.0.2 [use cstruct]
 - recompile mirage-console-unix.1.0.0 [use cstruct]
 - recompile tcpip.1.1.5 [use cstruct]
 - recompile mirage-http.1.1.0 [use cstruct]
$ opam config report
# OPAM status report
# opam-version    1.1.1
# os              linux
# external-solver true
# jobs            9
# repositories    1
# pinned          0
# current-switch  system
# preinstalled    true
# last-update     2014-07-13 07:51
$ aspcud --version
aspcud version 1.9.0
[...]

Here is the debug output with default solver (aspcud):

00:00.001  027792  27792                           locking /home/edwin/.opam/lock
00:00.001  027792  FILE(config)                    Read ~/.opam/config in 0.000s
00:00.001  027792  SYSTEM                          unlocking /home/edwin/.opam/lock (27792)
00:00.001  027792  SYSTEM                          rm /home/edwin/.opam/lock
00:00.001  027792  STATE                           LOAD-STATE(switch-lock)
00:00.001  027792  FILE(config)                    Read ~/.opam/config in 0.000s
00:00.019  027792  STATE                           Loaded /home/edwin/.opam/state.cache in 0.020s
00:00.019  027792  FILE(aliases)                   Read ~/.opam/aliases in 0.000s
00:00.021  027792  FILE(repo-config)               Read ~/.opam/repo/default/config in 0.000s
00:00.037  027792  FILE(repo-index)                Read ~/.opam/repo/package-index in 0.016s
00:00.037  027792  FILE(repo-index)                Read ~/.opam/repo/compiler-index in 0.000s
00:00.037  027792  FILE(pinned)                    Read ~/.opam/system/pinned in 0.000s
00:00.037  027792  FILE(installed)                 Read ~/.opam/system/installed in 0.000s
00:00.037  027792  FILE(installed.roots)           Read ~/.opam/system/installed.roots in 0.000s
00:00.044  027792  FILE(reinstall)                 Cannot find /home/edwin/.opam/system/reinstall
00:00.044  027792  STATE                           ROOT      : /home/edwin/.opam
00:00.044  027792  STATE                           SWITCH    : system
00:00.044  027792  STATE                           COMPILER  : system
00:00.044  027792  STATE                           COMPILERS : { 3.11.2, 3.12.1, 4.00.0, 4.00.0+debug-runtime, 4.00.0+fp, 4.00.1, 4.00.1+BER, 4.00.1+alloc-profiling, 4.00.1+annot, 4.00.1+french, 4.00.1+mirage-unix, 4.00.1+mirage-xen, 4.00.1+open-types, 4.00.1+raspberrypi, 4.00.1+short-types, 4.01.0, 4.01.0+32bit, 4.01.0+BER, 4.01.0+PIC, 4.01.0+armv6-freebsd, 4.01.0+bin-ocp, 4.01.0+fp, 4.01.0+jocaml, 4.01.0+lsb, 4.01.0+musl, 4.01.0+musl+static, 4.01.0+open-types, 4.01.0beta1, 4.01.0beta1+no-camlp4, 4.01.0dev+extension-points, 4.01.0dev+fp, 4.01.0dev+trunk, 4.02.0+trunk, 4.03.0+fp, 4.03.0+pr36, 4.03.0+pr37, 4.03.0+pr42, 4.03.0+pr43, 4.03.0+pr46, 4.03.0+pr51, 4.03.0+pr53, 4.03.0+pr56, 4.03.0+pr57, 4.03.0+pr58, 4.03.0+pr61, 4.03.0+pr62, 4.03.0+pr63, 4.03.0+pr64, 4.03.0+pr65, 4.03.0+pr67, 4.03.0+pr68, 4.03.0+pr69, 4.03.0+pr71, 4.03.0+pr72, 4.03.0+pr73, 4.03.0+pr74, 4.03.0+pr75, 4.03.0+pr76, 4.03.0+pr77, 4.03.0+pr78, 4.03.0+pr79, 4.03.0+pr80, 4.03.0+pr81, 4.03.0+pr82, 4.03.0+trunk, system }
00:00.044  027792  STATE                           REPOS     : { default }
00:00.044  027792  STATE                           PACKAGES  : 2470 packages
00:00.044  027792  STATE                           INSTALLED : { agrep.1.0, alt-ergo.0.95.2, async.111.17.00, async_extra.111.17.00, async_kernel.111.17.00, async_ssl.111.08.00, async_unix.111.17.00, atd.1.1.2, atdgen.1.3.1, base-bigarray.base, base-bytes.legacy, base-threads.base, base-unix.base, batteries.2.2.0, bin_prot.111.03.00, biniou.1.0.9, calendar.2.03.2, camlimages.4.1.1, camlp4.4.01.0, camomile.0.8.5, cmdliner.0.9.5, cohttp.0.11.2, comparelib.109.60.00, conduit.0.5.0, conf-gmp.1, conf-gnomecanvas.2, conf-gtksourceview.2, conf-libpcre.1, config-file.1.2, core.111.17.00, core_bench.109.58.01, core_kernel.111.17.00, cow.0.10.0, cppo.0.9.4, crunch.1.3.0, cryptokit.1.9, cstruct.1.3.0, csv.1.3.3, ctypes.0.3.2, cudf.0.6.3, custom_printf.111.03.00, datalog.0.5.1, dns.0.9.0, dose.3.1.2, dyntype.0.9.0, easy-format.1.0.2, enumerate.111.08.00, estring.1.3, extlib.1.6.1, ezjsonm.0.2.0, fieldslib.109.20.03, fileutils.0.4.4, freetennis.0.4.8, hardcaml.1.0.0, headache.1.03, herelib.109.35.02, higlo.0.3, io-page.1.1.1, iocamljs-kernel.0.4.4, ipaddr.2.5.0, js_of_ocaml.2.2, jsonm.0.9.1, lablgl.20120306, lablgtk.2.16.0, lambda-term.1.6, lwt.2.4.5, menhir.20130912, mirage.1.2.0, mirage-clock-unix.1.0.0, mirage-clock-xen.1.0.0, mirage-console-unix.1.0.0, mirage-console-xen.1.0.2, mirage-http.1.1.0, mirage-net-unix.1.1.1, mirage-net-xen.1.1.1, mirage-types.1.2.0, mirage-unix.1.1.0, mirage-xen.1.1.1, oasis.0.4.4, ocaml-data-notation.0.0.11, ocaml-sqlexpr.0.5.5, ocamlclean.2.0, ocamlfind.1.5.1, ocamlgraph.1.8.5, ocamlify.0.0.1, ocamlmod.0.0.7, ocamlnet.3.7.4, ocamlsdl.0.9.1, ocp-build.1.99.6-beta, ocp-indent.1.4.1, ocp-index.1.0.2, ocplib-endian.0.7, ocsigenserver.2.4.0, ocurl.0.7.1, omake.0.9.8.6-0.rc1, omd.0.9.7, opam-doc.0.9.3, opam-lib.1.1.1, optcomp.1.6, ounit.2.0.0, pa_bench.109.55.02, pa_monad_custom.v6.0.0, pa_ounit.109.53.02, pa_test.111.08.00, pcre-ocaml.7.1.1, pgocaml.2.1, pipebang.110.01.00, re.1.2.2, react.1.1.0, sexplib.111.17.00, shared-memory-ring.1.0.0, sqlite3-ocaml.2.0.6, ssl.0.4.7, stringext.0.0.1, tcpip.1.1.5, textutils.111.06.00, tgls.0.8.1, tsdl.0.8.1, tuntap.1.0.0, type_conv.111.13.00, typerep.111.17.00, typerex.1.99.6-beta, tyxml.3.1.1, uint.1.1.1, ulex.1.1, uri.1.7.1, utop.1.14, uucd.2.0.0, uuidm.0.9.5, uunf.0.9.3, uutf.0.9.3, variantslib.109.15.03, websocket.0.8.1, why3.0.83, xen-evtchn.1.0.5, xen-gnt.1.0.2, xenstore.1.2.5, xmlm.1.2.0, xtmpl.0.9, yojson.1.1.8, zarith.1.2, zed.1.3 }
00:00.044  027792  STATE                           ROOTS     : { agrep.1.0, async.111.17.00, async_ssl.111.08.00, base-bigarray.base, base-threads.base, base-unix.base, core_bench.109.58.01, crunch.1.3.0, datalog.0.5.1, dns.0.9.0, freetennis.0.4.8, hardcaml.1.0.0, headache.1.03, mirage.1.2.0, mirage-clock-unix.1.0.0, mirage-clock-xen.1.0.0, mirage-console-unix.1.0.0, mirage-console-xen.1.0.2, mirage-http.1.1.0, mirage-net-unix.1.1.1, mirage-net-xen.1.1.1, mirage-types.1.2.0, mirage-unix.1.1.0, mirage-xen.1.1.1, oasis.0.4.4, ocaml-sqlexpr.0.5.5, ocamlclean.2.0, ocp-indent.1.4.1, ocp-index.1.0.2, ocsigenserver.2.4.0, opam-doc.0.9.3, opam-lib.1.1.1, pa_monad_custom.v6.0.0, pgocaml.2.1, tgls.0.8.1, tsdl.0.8.1, utop.1.14, uucd.2.0.0, uunf.0.9.3, why3.0.83 }
00:00.044  027792  STATE                           REINSTALL : {}
00:00.044  027792  STATE                           State switch-lock loaded in 0.044s
00:00.062  027792  SYSTEM                          [log-27792-5a61c5] (in 0.004s) ocamlc -version
00:00.062  027792  FILE(comp)                      Read ~/.opam/compilers/system/system/system.comp in 0.000s
00:00.062  027792  27792                           locking /home/edwin/.opam/system/lock
00:00.062  027792  STATE                           LOAD-STATE(install)
00:00.063  027792  FILE(config)                    Read ~/.opam/config in 0.000s
00:00.074  027792  STATE                           Loaded /home/edwin/.opam/state.cache in 0.008s
00:00.074  027792  FILE(aliases)                   Read ~/.opam/aliases in 0.000s
00:00.076  027792  FILE(repo-config)               Read ~/.opam/repo/default/config in 0.000s
00:00.094  027792  FILE(repo-index)                Read ~/.opam/repo/package-index in 0.020s
00:00.095  027792  FILE(repo-index)                Read ~/.opam/repo/compiler-index in 0.000s
00:00.095  027792  FILE(pinned)                    Read ~/.opam/system/pinned in 0.000s
00:00.095  027792  FILE(installed)                 Read ~/.opam/system/installed in 0.000s
00:00.095  027792  FILE(installed.roots)           Read ~/.opam/system/installed.roots in 0.000s
00:00.102  027792  FILE(reinstall)                 Cannot find /home/edwin/.opam/system/reinstall
00:00.102  027792  STATE                           ROOT      : /home/edwin/.opam
00:00.102  027792  STATE                           SWITCH    : system
00:00.102  027792  STATE                           COMPILER  : system
00:00.102  027792  STATE                           COMPILERS : { 3.11.2, 3.12.1, 4.00.0, 4.00.0+debug-runtime, 4.00.0+fp, 4.00.1, 4.00.1+BER, 4.00.1+alloc-profiling, 4.00.1+annot, 4.00.1+french, 4.00.1+mirage-unix, 4.00.1+mirage-xen, 4.00.1+open-types, 4.00.1+raspberrypi, 4.00.1+short-types, 4.01.0, 4.01.0+32bit, 4.01.0+BER, 4.01.0+PIC, 4.01.0+armv6-freebsd, 4.01.0+bin-ocp, 4.01.0+fp, 4.01.0+jocaml, 4.01.0+lsb, 4.01.0+musl, 4.01.0+musl+static, 4.01.0+open-types, 4.01.0beta1, 4.01.0beta1+no-camlp4, 4.01.0dev+extension-points, 4.01.0dev+fp, 4.01.0dev+trunk, 4.02.0+trunk, 4.03.0+fp, 4.03.0+pr36, 4.03.0+pr37, 4.03.0+pr42, 4.03.0+pr43, 4.03.0+pr46, 4.03.0+pr51, 4.03.0+pr53, 4.03.0+pr56, 4.03.0+pr57, 4.03.0+pr58, 4.03.0+pr61, 4.03.0+pr62, 4.03.0+pr63, 4.03.0+pr64, 4.03.0+pr65, 4.03.0+pr67, 4.03.0+pr68, 4.03.0+pr69, 4.03.0+pr71, 4.03.0+pr72, 4.03.0+pr73, 4.03.0+pr74, 4.03.0+pr75, 4.03.0+pr76, 4.03.0+pr77, 4.03.0+pr78, 4.03.0+pr79, 4.03.0+pr80, 4.03.0+pr81, 4.03.0+pr82, 4.03.0+trunk, system }
00:00.102  027792  STATE                           REPOS     : { default }
00:00.102  027792  STATE                           PACKAGES  : 2470 packages
00:00.102  027792  STATE                           INSTALLED : { agrep.1.0, alt-ergo.0.95.2, async.111.17.00, async_extra.111.17.00, async_kernel.111.17.00, async_ssl.111.08.00, async_unix.111.17.00, atd.1.1.2, atdgen.1.3.1, base-bigarray.base, base-bytes.legacy, base-threads.base, base-unix.base, batteries.2.2.0, bin_prot.111.03.00, biniou.1.0.9, calendar.2.03.2, camlimages.4.1.1, camlp4.4.01.0, camomile.0.8.5, cmdliner.0.9.5, cohttp.0.11.2, comparelib.109.60.00, conduit.0.5.0, conf-gmp.1, conf-gnomecanvas.2, conf-gtksourceview.2, conf-libpcre.1, config-file.1.2, core.111.17.00, core_bench.109.58.01, core_kernel.111.17.00, cow.0.10.0, cppo.0.9.4, crunch.1.3.0, cryptokit.1.9, cstruct.1.3.0, csv.1.3.3, ctypes.0.3.2, cudf.0.6.3, custom_printf.111.03.00, datalog.0.5.1, dns.0.9.0, dose.3.1.2, dyntype.0.9.0, easy-format.1.0.2, enumerate.111.08.00, estring.1.3, extlib.1.6.1, ezjsonm.0.2.0, fieldslib.109.20.03, fileutils.0.4.4, freetennis.0.4.8, hardcaml.1.0.0, headache.1.03, herelib.109.35.02, higlo.0.3, io-page.1.1.1, iocamljs-kernel.0.4.4, ipaddr.2.5.0, js_of_ocaml.2.2, jsonm.0.9.1, lablgl.20120306, lablgtk.2.16.0, lambda-term.1.6, lwt.2.4.5, menhir.20130912, mirage.1.2.0, mirage-clock-unix.1.0.0, mirage-clock-xen.1.0.0, mirage-console-unix.1.0.0, mirage-console-xen.1.0.2, mirage-http.1.1.0, mirage-net-unix.1.1.1, mirage-net-xen.1.1.1, mirage-types.1.2.0, mirage-unix.1.1.0, mirage-xen.1.1.1, oasis.0.4.4, ocaml-data-notation.0.0.11, ocaml-sqlexpr.0.5.5, ocamlclean.2.0, ocamlfind.1.5.1, ocamlgraph.1.8.5, ocamlify.0.0.1, ocamlmod.0.0.7, ocamlnet.3.7.4, ocamlsdl.0.9.1, ocp-build.1.99.6-beta, ocp-indent.1.4.1, ocp-index.1.0.2, ocplib-endian.0.7, ocsigenserver.2.4.0, ocurl.0.7.1, omake.0.9.8.6-0.rc1, omd.0.9.7, opam-doc.0.9.3, opam-lib.1.1.1, optcomp.1.6, ounit.2.0.0, pa_bench.109.55.02, pa_monad_custom.v6.0.0, pa_ounit.109.53.02, pa_test.111.08.00, pcre-ocaml.7.1.1, pgocaml.2.1, pipebang.110.01.00, re.1.2.2, react.1.1.0, sexplib.111.17.00, shared-memory-ring.1.0.0, sqlite3-ocaml.2.0.6, ssl.0.4.7, stringext.0.0.1, tcpip.1.1.5, textutils.111.06.00, tgls.0.8.1, tsdl.0.8.1, tuntap.1.0.0, type_conv.111.13.00, typerep.111.17.00, typerex.1.99.6-beta, tyxml.3.1.1, uint.1.1.1, ulex.1.1, uri.1.7.1, utop.1.14, uucd.2.0.0, uuidm.0.9.5, uunf.0.9.3, uutf.0.9.3, variantslib.109.15.03, websocket.0.8.1, why3.0.83, xen-evtchn.1.0.5, xen-gnt.1.0.2, xenstore.1.2.5, xmlm.1.2.0, xtmpl.0.9, yojson.1.1.8, zarith.1.2, zed.1.3 }
00:00.102  027792  STATE                           ROOTS     : { agrep.1.0, async.111.17.00, async_ssl.111.08.00, base-bigarray.base, base-threads.base, base-unix.base, core_bench.109.58.01, crunch.1.3.0, datalog.0.5.1, dns.0.9.0, freetennis.0.4.8, hardcaml.1.0.0, headache.1.03, mirage.1.2.0, mirage-clock-unix.1.0.0, mirage-clock-xen.1.0.0, mirage-console-unix.1.0.0, mirage-console-xen.1.0.2, mirage-http.1.1.0, mirage-net-unix.1.1.1, mirage-net-xen.1.1.1, mirage-types.1.2.0, mirage-unix.1.1.0, mirage-xen.1.1.1, oasis.0.4.4, ocaml-sqlexpr.0.5.5, ocamlclean.2.0, ocp-indent.1.4.1, ocp-index.1.0.2, ocsigenserver.2.4.0, opam-doc.0.9.3, opam-lib.1.1.1, pa_monad_custom.v6.0.0, pgocaml.2.1, tgls.0.8.1, tsdl.0.8.1, utop.1.14, uucd.2.0.0, uunf.0.9.3, why3.0.83 }
00:00.102  027792  STATE                           REINSTALL : {}
00:00.102  027792  STATE                           State install loaded in 0.040s
00:00.102  027792  FILE(comp)                      Read ~/.opam/compilers/system/system/system.comp in 0.000s
00:00.102  027792  FILE(export)                    Wrote ~/.opam/system/backup/state-20140613080945.export in 0.000s
00:00.102  027792  CLIENT                          INSTALL { cstruct.1.3.1 }
00:00.115  027792  SOLUTION                        The raw name "cstruct.1.3.1" not found, looking for package cstruct version 1.3.1
00:00.128  027792  FILE(.config)                   Read ~/.opam/system/config/global-config.config in 0.000s
00:00.134  027792  FILE(comp)                      Read ~/.opam/compilers/system/system/system.comp in 0.000s
00:00.134  027792  FILE(comp)                      Read ~/.opam/compilers/system/system/system.comp in 0.000s
00:00.134  027792  FILE(comp)                      Read ~/.opam/compilers/system/system/system.comp in 0.000s
00:00.134  027792  FILE(comp)                      Read ~/.opam/compilers/system/system/system.comp in 0.000s
00:00.173  027792  SYSTEM                          [log-27792-4bcc67] (in 0.004s) which aspcud
00:00.211  027792  SOLVER                          resolve request=install:(cstruct (= 1.3.1)) remove:() upgrade:()
00:00.322  027792  CUDF                            resolve request=install:(cstruct (= 204)) remove:() upgrade:()
00:01.529  027792  CUDF                            graph_of_actions root_actions={  - downgrade tyxml.334 to 328,  - upgrade cstruct.203 to 204 }
00:01.534  027792  SOLUTION                        apply
digraph G {
  " - recompile mirage-console-unix.1.0.0";
  " - recompile dns.0.9.0";
  " - recompile mirage-xen.1.1.1";
  " - recompile mirage-net-unix.1.1.1";
  " - recompile mirage-console-xen.1.0.2";
  " - recompile tcpip.1.1.5";
  " - recompile mirage-http.1.1.0";
  " - recompile mirage-types.1.2.0";
  " - recompile xen-gnt.1.0.2";
  " - recompile mirage-clock-unix.1.0.0";
  " - downgrade tyxml.3.1.1 to 3.0.0";
  " - recompile ocsigenserver.2.4.0";
  " - recompile mirage-unix.1.1.0";
  " - recompile io-page.1.1.1";
  " - recompile mirage.1.2.0";
  " - recompile xenstore.1.2.5";
  " - upgrade cstruct.1.3.0 to 1.3.1";
  " - recompile shared-memory-ring.1.0.0";
  " - recompile mirage-net-xen.1.1.1";
  " - recompile mirage-clock-xen.1.0.0";

  " - recompile mirage-console-unix.1.0.0" -> " - recompile tcpip.1.1.5";
  " - recompile mirage-xen.1.1.1" -> " - recompile mirage-console-xen.1.0.2";
  " - recompile mirage-xen.1.1.1" -> " - recompile mirage-net-xen.1.1.1";
  " - recompile mirage-net-unix.1.1.1" -> " - recompile tcpip.1.1.5";
  " - recompile tcpip.1.1.5" -> " - recompile mirage-http.1.1.0";
  " - recompile mirage-types.1.2.0" -> " - recompile mirage.1.2.0";
  " - recompile mirage-types.1.2.0" -> " - recompile mirage-clock-unix.1.0.0";
  " - recompile mirage-types.1.2.0" -> " - recompile mirage-clock-xen.1.0.0";
  " - recompile mirage-types.1.2.0" -> " - recompile mirage-console-unix.1.0.0";
  " - recompile mirage-types.1.2.0" -> " - recompile mirage-console-xen.1.0.2";
  " - recompile mirage-types.1.2.0" -> " - recompile mirage-net-unix.1.1.1";
  " - recompile mirage-types.1.2.0" -> " - recompile mirage-net-xen.1.1.1";
  " - recompile xen-gnt.1.0.2" -> " - recompile mirage-xen.1.1.1";
  " - recompile mirage-clock-unix.1.0.0" -> " - recompile mirage-unix.1.1.0";
  " - downgrade tyxml.3.1.1 to 3.0.0" -> " - recompile ocsigenserver.2.4.0";
  " - recompile mirage-unix.1.1.0" -> " - recompile mirage-console-unix.1.0.0";
  " - recompile io-page.1.1.1" -> " - recompile dns.0.9.0";
  " - recompile io-page.1.1.1" -> " - recompile mirage-types.1.2.0";
  " - recompile io-page.1.1.1" -> " - recompile mirage-unix.1.1.0";
  " - recompile io-page.1.1.1" -> " - recompile xen-gnt.1.0.2";
  " - recompile xenstore.1.2.5" -> " - recompile mirage-xen.1.1.1";
  " - upgrade cstruct.1.3.0 to 1.3.1" -> " - recompile io-page.1.1.1";
  " - upgrade cstruct.1.3.0 to 1.3.1" -> " - recompile shared-memory-ring.1.0.0";
  " - upgrade cstruct.1.3.0 to 1.3.1" -> " - recompile xenstore.1.2.5";
  " - recompile shared-memory-ring.1.0.0" -> " - recompile mirage-unix.1.1.0";
  " - recompile shared-memory-ring.1.0.0" -> " - recompile mirage-xen.1.1.1";
  " - recompile mirage-clock-xen.1.0.0" -> " - recompile mirage-xen.1.1.1";

  }The following actions will be performed:
 - downgrade tyxml.3.1.1 to 3.0.0
 - upgrade cstruct.1.3.0 to 1.3.1
 - recompile ocsigenserver.2.4.0 [use tyxml]
 - recompile xenstore.1.2.5 [use cstruct]
 - recompile shared-memory-ring.1.0.0 [use cstruct]
 - recompile io-page.1.1.1 [use cstruct]
 - recompile xen-gnt.1.0.2 [use cstruct]
 - recompile mirage-types.1.2.0 [use cstruct]
 - recompile dns.0.9.0 [use cstruct]
 - recompile mirage-net-unix.1.1.1 [use cstruct]
 - recompile mirage-clock-xen.1.0.0 [use cstruct]
 - recompile mirage-clock-unix.1.0.0 [use cstruct]
 - recompile mirage.1.2.0 [use cstruct]
 - recompile mirage-xen.1.1.1 [use cstruct]
 - recompile mirage-unix.1.1.0 [use cstruct]
 - recompile mirage-net-xen.1.1.1 [use cstruct]
 - recompile mirage-console-xen.1.0.2 [use cstruct]
 - recompile mirage-console-unix.1.0.0 [use cstruct]
 - recompile tcpip.1.1.5 [use cstruct]
 - recompile mirage-http.1.1.0 [use cstruct]
0 to install | 18 to reinstall | 1 to upgrade | 1 to downgrade | 0 to remove

With built-in solver:

00:00.001  027833  27833                           locking /home/edwin/.opam/lock
00:00.001  027833  FILE(config)                    Read ~/.opam/config in 0.000s
00:00.001  027833  SYSTEM                          unlocking /home/edwin/.opam/lock (27833)
00:00.001  027833  SYSTEM                          rm /home/edwin/.opam/lock
00:00.001  027833  STATE                           LOAD-STATE(switch-lock)
00:00.001  027833  FILE(config)                    Read ~/.opam/config in 0.000s
00:00.012  027833  STATE                           Loaded /home/edwin/.opam/state.cache in 0.012s
00:00.012  027833  FILE(aliases)                   Read ~/.opam/aliases in 0.000s
00:00.015  027833  FILE(repo-config)               Read ~/.opam/repo/default/config in 0.000s
00:00.030  027833  FILE(repo-index)                Read ~/.opam/repo/package-index in 0.016s
00:00.031  027833  FILE(repo-index)                Read ~/.opam/repo/compiler-index in 0.000s
00:00.031  027833  FILE(pinned)                    Read ~/.opam/system/pinned in 0.000s
00:00.031  027833  FILE(installed)                 Read ~/.opam/system/installed in 0.000s
00:00.031  027833  FILE(installed.roots)           Read ~/.opam/system/installed.roots in 0.000s
00:00.037  027833  FILE(reinstall)                 Cannot find /home/edwin/.opam/system/reinstall
00:00.037  027833  STATE                           ROOT      : /home/edwin/.opam
00:00.037  027833  STATE                           SWITCH    : system
00:00.037  027833  STATE                           COMPILER  : system
00:00.037  027833  STATE                           COMPILERS : { 3.11.2, 3.12.1, 4.00.0, 4.00.0+debug-runtime, 4.00.0+fp, 4.00.1, 4.00.1+BER, 4.00.1+alloc-profiling, 4.00.1+annot, 4.00.1+french, 4.00.1+mirage-unix, 4.00.1+mirage-xen, 4.00.1+open-types, 4.00.1+raspberrypi, 4.00.1+short-types, 4.01.0, 4.01.0+32bit, 4.01.0+BER, 4.01.0+PIC, 4.01.0+armv6-freebsd, 4.01.0+bin-ocp, 4.01.0+fp, 4.01.0+jocaml, 4.01.0+lsb, 4.01.0+musl, 4.01.0+musl+static, 4.01.0+open-types, 4.01.0beta1, 4.01.0beta1+no-camlp4, 4.01.0dev+extension-points, 4.01.0dev+fp, 4.01.0dev+trunk, 4.02.0+trunk, 4.03.0+fp, 4.03.0+pr36, 4.03.0+pr37, 4.03.0+pr42, 4.03.0+pr43, 4.03.0+pr46, 4.03.0+pr51, 4.03.0+pr53, 4.03.0+pr56, 4.03.0+pr57, 4.03.0+pr58, 4.03.0+pr61, 4.03.0+pr62, 4.03.0+pr63, 4.03.0+pr64, 4.03.0+pr65, 4.03.0+pr67, 4.03.0+pr68, 4.03.0+pr69, 4.03.0+pr71, 4.03.0+pr72, 4.03.0+pr73, 4.03.0+pr74, 4.03.0+pr75, 4.03.0+pr76, 4.03.0+pr77, 4.03.0+pr78, 4.03.0+pr79, 4.03.0+pr80, 4.03.0+pr81, 4.03.0+pr82, 4.03.0+trunk, system }
00:00.037  027833  STATE                           REPOS     : { default }
00:00.037  027833  STATE                           PACKAGES  : 2470 packages
00:00.038  027833  STATE                           INSTALLED : { agrep.1.0, alt-ergo.0.95.2, async.111.17.00, async_extra.111.17.00, async_kernel.111.17.00, async_ssl.111.08.00, async_unix.111.17.00, atd.1.1.2, atdgen.1.3.1, base-bigarray.base, base-bytes.legacy, base-threads.base, base-unix.base, batteries.2.2.0, bin_prot.111.03.00, biniou.1.0.9, calendar.2.03.2, camlimages.4.1.1, camlp4.4.01.0, camomile.0.8.5, cmdliner.0.9.5, cohttp.0.11.2, comparelib.109.60.00, conduit.0.5.0, conf-gmp.1, conf-gnomecanvas.2, conf-gtksourceview.2, conf-libpcre.1, config-file.1.2, core.111.17.00, core_bench.109.58.01, core_kernel.111.17.00, cow.0.10.0, cppo.0.9.4, crunch.1.3.0, cryptokit.1.9, cstruct.1.3.0, csv.1.3.3, ctypes.0.3.2, cudf.0.6.3, custom_printf.111.03.00, datalog.0.5.1, dns.0.9.0, dose.3.1.2, dyntype.0.9.0, easy-format.1.0.2, enumerate.111.08.00, estring.1.3, extlib.1.6.1, ezjsonm.0.2.0, fieldslib.109.20.03, fileutils.0.4.4, freetennis.0.4.8, hardcaml.1.0.0, headache.1.03, herelib.109.35.02, higlo.0.3, io-page.1.1.1, iocamljs-kernel.0.4.4, ipaddr.2.5.0, js_of_ocaml.2.2, jsonm.0.9.1, lablgl.20120306, lablgtk.2.16.0, lambda-term.1.6, lwt.2.4.5, menhir.20130912, mirage.1.2.0, mirage-clock-unix.1.0.0, mirage-clock-xen.1.0.0, mirage-console-unix.1.0.0, mirage-console-xen.1.0.2, mirage-http.1.1.0, mirage-net-unix.1.1.1, mirage-net-xen.1.1.1, mirage-types.1.2.0, mirage-unix.1.1.0, mirage-xen.1.1.1, oasis.0.4.4, ocaml-data-notation.0.0.11, ocaml-sqlexpr.0.5.5, ocamlclean.2.0, ocamlfind.1.5.1, ocamlgraph.1.8.5, ocamlify.0.0.1, ocamlmod.0.0.7, ocamlnet.3.7.4, ocamlsdl.0.9.1, ocp-build.1.99.6-beta, ocp-indent.1.4.1, ocp-index.1.0.2, ocplib-endian.0.7, ocsigenserver.2.4.0, ocurl.0.7.1, omake.0.9.8.6-0.rc1, omd.0.9.7, opam-doc.0.9.3, opam-lib.1.1.1, optcomp.1.6, ounit.2.0.0, pa_bench.109.55.02, pa_monad_custom.v6.0.0, pa_ounit.109.53.02, pa_test.111.08.00, pcre-ocaml.7.1.1, pgocaml.2.1, pipebang.110.01.00, re.1.2.2, react.1.1.0, sexplib.111.17.00, shared-memory-ring.1.0.0, sqlite3-ocaml.2.0.6, ssl.0.4.7, stringext.0.0.1, tcpip.1.1.5, textutils.111.06.00, tgls.0.8.1, tsdl.0.8.1, tuntap.1.0.0, type_conv.111.13.00, typerep.111.17.00, typerex.1.99.6-beta, tyxml.3.1.1, uint.1.1.1, ulex.1.1, uri.1.7.1, utop.1.14, uucd.2.0.0, uuidm.0.9.5, uunf.0.9.3, uutf.0.9.3, variantslib.109.15.03, websocket.0.8.1, why3.0.83, xen-evtchn.1.0.5, xen-gnt.1.0.2, xenstore.1.2.5, xmlm.1.2.0, xtmpl.0.9, yojson.1.1.8, zarith.1.2, zed.1.3 }
00:00.038  027833  STATE                           ROOTS     : { agrep.1.0, async.111.17.00, async_ssl.111.08.00, base-bigarray.base, base-threads.base, base-unix.base, core_bench.109.58.01, crunch.1.3.0, datalog.0.5.1, dns.0.9.0, freetennis.0.4.8, hardcaml.1.0.0, headache.1.03, mirage.1.2.0, mirage-clock-unix.1.0.0, mirage-clock-xen.1.0.0, mirage-console-unix.1.0.0, mirage-console-xen.1.0.2, mirage-http.1.1.0, mirage-net-unix.1.1.1, mirage-net-xen.1.1.1, mirage-types.1.2.0, mirage-unix.1.1.0, mirage-xen.1.1.1, oasis.0.4.4, ocaml-sqlexpr.0.5.5, ocamlclean.2.0, ocp-indent.1.4.1, ocp-index.1.0.2, ocsigenserver.2.4.0, opam-doc.0.9.3, opam-lib.1.1.1, pa_monad_custom.v6.0.0, pgocaml.2.1, tgls.0.8.1, tsdl.0.8.1, utop.1.14, uucd.2.0.0, uunf.0.9.3, why3.0.83 }
00:00.038  027833  STATE                           REINSTALL : {}
00:00.038  027833  STATE                           State switch-lock loaded in 0.036s
00:00.056  027833  SYSTEM                          [log-27833-5a61c5] (in 0.004s) ocamlc -version
00:00.056  027833  FILE(comp)                      Read ~/.opam/compilers/system/system/system.comp in 0.000s
00:00.056  027833  27833                           locking /home/edwin/.opam/system/lock
00:00.057  027833  STATE                           LOAD-STATE(install)
00:00.057  027833  FILE(config)                    Read ~/.opam/config in 0.000s
00:00.063  027833  STATE                           Loaded /home/edwin/.opam/state.cache in 0.004s
00:00.063  027833  FILE(aliases)                   Read ~/.opam/aliases in 0.000s
00:00.065  027833  FILE(repo-config)               Read ~/.opam/repo/default/config in 0.000s
00:00.091  027833  FILE(repo-index)                Read ~/.opam/repo/package-index in 0.028s
00:00.091  027833  FILE(repo-index)                Read ~/.opam/repo/compiler-index in 0.000s
00:00.091  027833  FILE(pinned)                    Read ~/.opam/system/pinned in 0.000s
00:00.091  027833  FILE(installed)                 Read ~/.opam/system/installed in 0.000s
00:00.091  027833  FILE(installed.roots)           Read ~/.opam/system/installed.roots in 0.000s
00:00.098  027833  FILE(reinstall)                 Cannot find /home/edwin/.opam/system/reinstall
00:00.098  027833  STATE                           ROOT      : /home/edwin/.opam
00:00.098  027833  STATE                           SWITCH    : system
00:00.098  027833  STATE                           COMPILER  : system
00:00.098  027833  STATE                           COMPILERS : { 3.11.2, 3.12.1, 4.00.0, 4.00.0+debug-runtime, 4.00.0+fp, 4.00.1, 4.00.1+BER, 4.00.1+alloc-profiling, 4.00.1+annot, 4.00.1+french, 4.00.1+mirage-unix, 4.00.1+mirage-xen, 4.00.1+open-types, 4.00.1+raspberrypi, 4.00.1+short-types, 4.01.0, 4.01.0+32bit, 4.01.0+BER, 4.01.0+PIC, 4.01.0+armv6-freebsd, 4.01.0+bin-ocp, 4.01.0+fp, 4.01.0+jocaml, 4.01.0+lsb, 4.01.0+musl, 4.01.0+musl+static, 4.01.0+open-types, 4.01.0beta1, 4.01.0beta1+no-camlp4, 4.01.0dev+extension-points, 4.01.0dev+fp, 4.01.0dev+trunk, 4.02.0+trunk, 4.03.0+fp, 4.03.0+pr36, 4.03.0+pr37, 4.03.0+pr42, 4.03.0+pr43, 4.03.0+pr46, 4.03.0+pr51, 4.03.0+pr53, 4.03.0+pr56, 4.03.0+pr57, 4.03.0+pr58, 4.03.0+pr61, 4.03.0+pr62, 4.03.0+pr63, 4.03.0+pr64, 4.03.0+pr65, 4.03.0+pr67, 4.03.0+pr68, 4.03.0+pr69, 4.03.0+pr71, 4.03.0+pr72, 4.03.0+pr73, 4.03.0+pr74, 4.03.0+pr75, 4.03.0+pr76, 4.03.0+pr77, 4.03.0+pr78, 4.03.0+pr79, 4.03.0+pr80, 4.03.0+pr81, 4.03.0+pr82, 4.03.0+trunk, system }
00:00.098  027833  STATE                           REPOS     : { default }
00:00.098  027833  STATE                           PACKAGES  : 2470 packages
00:00.098  027833  STATE                           INSTALLED : { agrep.1.0, alt-ergo.0.95.2, async.111.17.00, async_extra.111.17.00, async_kernel.111.17.00, async_ssl.111.08.00, async_unix.111.17.00, atd.1.1.2, atdgen.1.3.1, base-bigarray.base, base-bytes.legacy, base-threads.base, base-unix.base, batteries.2.2.0, bin_prot.111.03.00, biniou.1.0.9, calendar.2.03.2, camlimages.4.1.1, camlp4.4.01.0, camomile.0.8.5, cmdliner.0.9.5, cohttp.0.11.2, comparelib.109.60.00, conduit.0.5.0, conf-gmp.1, conf-gnomecanvas.2, conf-gtksourceview.2, conf-libpcre.1, config-file.1.2, core.111.17.00, core_bench.109.58.01, core_kernel.111.17.00, cow.0.10.0, cppo.0.9.4, crunch.1.3.0, cryptokit.1.9, cstruct.1.3.0, csv.1.3.3, ctypes.0.3.2, cudf.0.6.3, custom_printf.111.03.00, datalog.0.5.1, dns.0.9.0, dose.3.1.2, dyntype.0.9.0, easy-format.1.0.2, enumerate.111.08.00, estring.1.3, extlib.1.6.1, ezjsonm.0.2.0, fieldslib.109.20.03, fileutils.0.4.4, freetennis.0.4.8, hardcaml.1.0.0, headache.1.03, herelib.109.35.02, higlo.0.3, io-page.1.1.1, iocamljs-kernel.0.4.4, ipaddr.2.5.0, js_of_ocaml.2.2, jsonm.0.9.1, lablgl.20120306, lablgtk.2.16.0, lambda-term.1.6, lwt.2.4.5, menhir.20130912, mirage.1.2.0, mirage-clock-unix.1.0.0, mirage-clock-xen.1.0.0, mirage-console-unix.1.0.0, mirage-console-xen.1.0.2, mirage-http.1.1.0, mirage-net-unix.1.1.1, mirage-net-xen.1.1.1, mirage-types.1.2.0, mirage-unix.1.1.0, mirage-xen.1.1.1, oasis.0.4.4, ocaml-data-notation.0.0.11, ocaml-sqlexpr.0.5.5, ocamlclean.2.0, ocamlfind.1.5.1, ocamlgraph.1.8.5, ocamlify.0.0.1, ocamlmod.0.0.7, ocamlnet.3.7.4, ocamlsdl.0.9.1, ocp-build.1.99.6-beta, ocp-indent.1.4.1, ocp-index.1.0.2, ocplib-endian.0.7, ocsigenserver.2.4.0, ocurl.0.7.1, omake.0.9.8.6-0.rc1, omd.0.9.7, opam-doc.0.9.3, opam-lib.1.1.1, optcomp.1.6, ounit.2.0.0, pa_bench.109.55.02, pa_monad_custom.v6.0.0, pa_ounit.109.53.02, pa_test.111.08.00, pcre-ocaml.7.1.1, pgocaml.2.1, pipebang.110.01.00, re.1.2.2, react.1.1.0, sexplib.111.17.00, shared-memory-ring.1.0.0, sqlite3-ocaml.2.0.6, ssl.0.4.7, stringext.0.0.1, tcpip.1.1.5, textutils.111.06.00, tgls.0.8.1, tsdl.0.8.1, tuntap.1.0.0, type_conv.111.13.00, typerep.111.17.00, typerex.1.99.6-beta, tyxml.3.1.1, uint.1.1.1, ulex.1.1, uri.1.7.1, utop.1.14, uucd.2.0.0, uuidm.0.9.5, uunf.0.9.3, uutf.0.9.3, variantslib.109.15.03, websocket.0.8.1, why3.0.83, xen-evtchn.1.0.5, xen-gnt.1.0.2, xenstore.1.2.5, xmlm.1.2.0, xtmpl.0.9, yojson.1.1.8, zarith.1.2, zed.1.3 }
00:00.099  027833  STATE                           ROOTS     : { agrep.1.0, async.111.17.00, async_ssl.111.08.00, base-bigarray.base, base-threads.base, base-unix.base, core_bench.109.58.01, crunch.1.3.0, datalog.0.5.1, dns.0.9.0, freetennis.0.4.8, hardcaml.1.0.0, headache.1.03, mirage.1.2.0, mirage-clock-unix.1.0.0, mirage-clock-xen.1.0.0, mirage-console-unix.1.0.0, mirage-console-xen.1.0.2, mirage-http.1.1.0, mirage-net-unix.1.1.1, mirage-net-xen.1.1.1, mirage-types.1.2.0, mirage-unix.1.1.0, mirage-xen.1.1.1, oasis.0.4.4, ocaml-sqlexpr.0.5.5, ocamlclean.2.0, ocp-indent.1.4.1, ocp-index.1.0.2, ocsigenserver.2.4.0, opam-doc.0.9.3, opam-lib.1.1.1, pa_monad_custom.v6.0.0, pgocaml.2.1, tgls.0.8.1, tsdl.0.8.1, utop.1.14, uucd.2.0.0, uunf.0.9.3, why3.0.83 }
00:00.099  027833  STATE                           REINSTALL : {}
00:00.099  027833  STATE                           State install loaded in 0.044s
00:00.099  027833  FILE(comp)                      Read ~/.opam/compilers/system/system/system.comp in 0.000s
00:00.099  027833  FILE(export)                    Wrote ~/.opam/system/backup/state-20140613081053.export in 0.000s
00:00.099  027833  CLIENT                          INSTALL { cstruct.1.3.1 }
00:00.112  027833  SOLUTION                        The raw name "cstruct.1.3.1" not found, looking for package cstruct version 1.3.1
00:00.125  027833  FILE(.config)                   Read ~/.opam/system/config/global-config.config in 0.000s
00:00.131  027833  FILE(comp)                      Read ~/.opam/compilers/system/system/system.comp in 0.000s
00:00.131  027833  FILE(comp)                      Read ~/.opam/compilers/system/system/system.comp in 0.000s
00:00.132  027833  FILE(comp)                      Read ~/.opam/compilers/system/system/system.comp in 0.000s
00:00.132  027833  FILE(comp)                      Read ~/.opam/compilers/system/system/system.comp in 0.000s
00:00.199  027833  SOLVER                          resolve request=install:(agrep & async & async_ssl & base-bigarray & base-threads & base-unix & core_bench & crunch & datalog & dns & freetennis & hardcaml & headache & mirage & mirage-clock-unix & mirage-clock-xen & mirage-console-unix & mirage-console-xen & mirage-http & mirage-net-unix & mirage-net-xen & mirage-types & mirage-unix & mirage-xen & oasis & ocaml-sqlexpr & ocamlclean & ocp-indent & ocp-index & ocsigenserver & opam-doc & opam-lib & pa_monad_custom & pgocaml & tgls & tsdl & utop & uucd & uunf & why3) remove:() upgrade:(cstruct (= 1.3.1))
00:02.688  027833  HEURISTIC                       implicit-installed: { lablgl.490(installed), pa%5ftest.479(installed), lablgtk.320(installed), bin%5fprot.476(installed), optcomp.230(installed), pipebang.475(installed), ocamlfind.226(installed), ounit.283(installed), ocplib-endian.83(installed), herelib.450(installed), async%5fextra.484(installed), conf-gtksourceview.281(installed), base-bytes.508(installed), typerep.484(installed), async.484(installed), pa%5founit.465(installed), async%5funix.484(installed), react.185(installed), camlp4.371(installed), base-unix.507(installed), conf-gnomecanvas.281(installed), type%5fconv.483(installed), base-threads.507(installed), sexplib.484(installed), fieldslib.431(installed), enumerate.479(installed), variantslib.424(installed), pa%5fbench.468(installed), core%5fkernel.484(installed), core.484(installed), ssl.58(installed), comparelib.473(installed), async%5fkernel.484(installed), lwt.314(installed), custom%5fprintf.476(installed) }
00:02.688  027833  HEURISTIC                       implicit-not-installed: res, zero and async%5fcore
00:02.688  027833  HEURISTIC                       state_of_request
00:02.697  027833  SYSTEM                          [log-27833-4bcc67] (in 0.000s) which aspcud
00:04.492  027833  HEURISTIC                       explore
00:04.492  027833  HEURISTIC                       brute-force
00:04.574  027833  HEURISTIC                       STATE(0) { cstruct.204(installed) }
00:04.574  027833  HEURISTIC                       refine request:install:(why3 & uunf & uucd & utop & tsdl & tgls & pgocaml & pa%5fmonad%5fcustom & opam-lib & opam-doc & ocsigenserver & ocp-index & ocp-indent & ocamlclean & ocaml-sqlexpr & oasis & mirage-xen & mirage-unix & mirage-types & mirage-net-xen & mirage-net-unix & mirage-http & mirage-console-xen & mirage-console-unix & mirage-clock-xen & mirage-clock-unix & mirage & headache & hardcaml & freetennis & dns & datalog & crunch & core%5fbench & base-unix & base-threads & base-bigarray & async%5fssl & async & agrep) remove:() upgrade:(cstruct (= 204)) state:{ cstruct.204(installed) }
00:04.574  027833  HEURISTIC                       installed-first lablgl
00:04.629  027833  HEURISTIC                       keep lablgl with the same version
00:04.629  027833  HEURISTIC                       installed-first pa%5ftest
00:04.714  027833  HEURISTIC                       keep pa%5ftest with the same version
00:04.714  027833  HEURISTIC                       installed-first lablgtk
00:04.761  027833  HEURISTIC                       keep lablgtk with the same version
00:04.762  027833  HEURISTIC                       installed-first bin%5fprot
00:04.850  027833  HEURISTIC                       keep bin%5fprot with the same version
00:04.850  027833  HEURISTIC                       installed-first optcomp
00:04.897  027833  HEURISTIC                       keep optcomp with the same version
00:04.897  027833  HEURISTIC                       installed-first pipebang
00:04.985  027833  HEURISTIC                       keep pipebang with the same version
00:04.986  027833  HEURISTIC                       installed-first ocamlfind
00:05.033  027833  HEURISTIC                       keep ocamlfind with the same version
00:05.033  027833  HEURISTIC                       installed-first ounit
00:05.121  027833  HEURISTIC                       keep ounit with the same version
00:05.121  027833  HEURISTIC                       installed-first ocplib-endian
00:05.170  027833  HEURISTIC                       keep ocplib-endian with the same version
00:05.170  027833  HEURISTIC                       installed-first herelib
00:05.258  027833  HEURISTIC                       keep herelib with the same version
00:05.258  027833  HEURISTIC                       installed-first async%5fextra
00:05.305  027833  HEURISTIC                       keep async%5fextra with the same version
00:05.306  027833  HEURISTIC                       installed-first conf-gtksourceview
00:05.394  027833  HEURISTIC                       keep conf-gtksourceview with the same version
00:05.394  027833  HEURISTIC                       installed-first base-bytes
00:05.442  027833  HEURISTIC                       keep base-bytes with the same version
00:05.442  027833  HEURISTIC                       installed-first typerep
00:05.530  027833  HEURISTIC                       keep typerep with the same version
00:05.530  027833  HEURISTIC                       installed-first async
00:05.579  027833  HEURISTIC                       keep async with the same version
00:05.579  027833  HEURISTIC                       installed-first pa%5founit
00:05.667  027833  HEURISTIC                       keep pa%5founit with the same version
00:05.667  027833  HEURISTIC                       installed-first async%5funix
00:05.716  027833  HEURISTIC                       keep async%5funix with the same version
00:05.716  027833  HEURISTIC                       installed-first react
00:05.805  027833  HEURISTIC                       keep react with the same version
00:05.805  027833  HEURISTIC                       installed-first camlp4
00:05.854  027833  HEURISTIC                       keep camlp4 with the same version
00:05.854  027833  HEURISTIC                       installed-first base-unix
00:05.943  027833  HEURISTIC                       keep base-unix with the same version
00:05.943  027833  HEURISTIC                       installed-first conf-gnomecanvas
00:05.991  027833  HEURISTIC                       keep conf-gnomecanvas with the same version
00:05.991  027833  HEURISTIC                       installed-first type%5fconv
00:06.081  027833  HEURISTIC                       keep type%5fconv with the same version
00:06.081  027833  HEURISTIC                       installed-first base-threads
00:06.129  027833  HEURISTIC                       keep base-threads with the same version
00:06.129  027833  HEURISTIC                       installed-first sexplib
00:06.219  027833  HEURISTIC                       keep sexplib with the same version
00:06.219  027833  HEURISTIC                       installed-first fieldslib
00:06.268  027833  HEURISTIC                       keep fieldslib with the same version
00:06.268  027833  HEURISTIC                       installed-first enumerate
00:06.358  027833  HEURISTIC                       keep enumerate with the same version
00:06.358  027833  HEURISTIC                       installed-first variantslib
00:06.406  027833  HEURISTIC                       keep variantslib with the same version
00:06.406  027833  HEURISTIC                       installed-first pa%5fbench
00:06.496  027833  HEURISTIC                       keep pa%5fbench with the same version
00:06.496  027833  HEURISTIC                       installed-first core%5fkernel
00:06.548  027833  HEURISTIC                       keep core%5fkernel with the same version
00:06.548  027833  HEURISTIC                       installed-first core
00:06.638  027833  HEURISTIC                       keep core with the same version
00:06.638  027833  HEURISTIC                       installed-first ssl
00:06.688  027833  HEURISTIC                       keep ssl with the same version
00:06.688  027833  HEURISTIC                       installed-first comparelib
00:06.778  027833  HEURISTIC                       keep comparelib with the same version
00:06.778  027833  HEURISTIC                       installed-first async%5fkernel
00:06.829  027833  HEURISTIC                       keep async%5fkernel with the same version
00:06.829  027833  HEURISTIC                       installed-first lwt
00:06.920  027833  HEURISTIC                       keep lwt with the same version
00:06.920  027833  HEURISTIC                       installed-first custom%5fprintf
00:06.970  027833  HEURISTIC                       keep custom%5fprintf with the same version
00:06.971  027833  HEURISTIC                       STATE(1) { custom%5fprintf.476(installed), lwt.314(installed), async%5fkernel.484(installed), comparelib.473(installed), ssl.58(installed), core.484(installed), core%5fkernel.484(installed), pa%5fbench.468(installed), variantslib.424(installed), enumerate.479(installed), fieldslib.431(installed), sexplib.484(installed), base-threads.507(installed), type%5fconv.483(installed), conf-gnomecanvas.281(installed), base-unix.507(installed), camlp4.371(installed), react.185(installed), async%5funix.484(installed), pa%5founit.465(installed), async.484(installed), typerep.484(installed), base-bytes.508(installed), conf-gtksourceview.281(installed), async%5fextra.484(installed), herelib.450(installed), ocplib-endian.83(installed), ounit.283(installed), ocamlfind.226(installed), pipebang.475(installed), optcomp.230(installed), bin%5fprot.476(installed), lablgtk.320(installed), pa%5ftest.479(installed), lablgl.490(installed), cstruct.204(installed) }
00:07.065  027833  HEURISTIC                       res is not necessary ({ custom%5fprintf.476(installed), lwt.314(installed), async%5fkernel.484(installed), comparelib.473(installed), ssl.58(installed), core.484(installed), core%5fkernel.484(installed), pa%5fbench.468(installed), variantslib.424(installed), enumerate.479(installed), fieldslib.431(installed), sexplib.484(installed), base-threads.507(installed), type%5fconv.483(installed), conf-gnomecanvas.281(installed), base-unix.507(installed), camlp4.371(installed), react.185(installed), async%5funix.484(installed), pa%5founit.465(installed), async.484(installed), typerep.484(installed), base-bytes.508(installed), conf-gtksourceview.281(installed), async%5fextra.484(installed), herelib.450(installed), ocplib-endian.83(installed), ounit.283(installed), ocamlfind.226(installed), pipebang.475(installed), optcomp.230(installed), bin%5fprot.476(installed), lablgtk.320(installed), pa%5ftest.479(installed), lablgl.490(installed), cstruct.204(installed) })
00:07.117  027833  HEURISTIC                       zero is not necessary ({ custom%5fprintf.476(installed), lwt.314(installed), async%5fkernel.484(installed), comparelib.473(installed), ssl.58(installed), core.484(installed), core%5fkernel.484(installed), pa%5fbench.468(installed), variantslib.424(installed), enumerate.479(installed), fieldslib.431(installed), sexplib.484(installed), base-threads.507(installed), type%5fconv.483(installed), conf-gnomecanvas.281(installed), base-unix.507(installed), camlp4.371(installed), react.185(installed), async%5funix.484(installed), pa%5founit.465(installed), async.484(installed), typerep.484(installed), base-bytes.508(installed), conf-gtksourceview.281(installed), async%5fextra.484(installed), herelib.450(installed), ocplib-endian.83(installed), ounit.283(installed), ocamlfind.226(installed), pipebang.475(installed), optcomp.230(installed), bin%5fprot.476(installed), lablgtk.320(installed), pa%5ftest.479(installed), lablgl.490(installed), cstruct.204(installed) })
00:07.210  027833  HEURISTIC                       async%5fcore is not necessary ({ custom%5fprintf.476(installed), lwt.314(installed), async%5fkernel.484(installed), comparelib.473(installed), ssl.58(installed), core.484(installed), core%5fkernel.484(installed), pa%5fbench.468(installed), variantslib.424(installed), enumerate.479(installed), fieldslib.431(installed), sexplib.484(installed), base-threads.507(installed), type%5fconv.483(installed), conf-gnomecanvas.281(installed), base-unix.507(installed), camlp4.371(installed), react.185(installed), async%5funix.484(installed), pa%5founit.465(installed), async.484(installed), typerep.484(installed), base-bytes.508(installed), conf-gtksourceview.281(installed), async%5fextra.484(installed), herelib.450(installed), ocplib-endian.83(installed), ounit.283(installed), ocamlfind.226(installed), pipebang.475(installed), optcomp.230(installed), bin%5fprot.476(installed), lablgtk.320(installed), pa%5ftest.479(installed), lablgl.490(installed), cstruct.204(installed) })
00:07.210  027833  HEURISTIC                       installed-first ocurl
00:07.260  027833  HEURISTIC                       keep ocurl with the same version
00:07.260  027833  HEURISTIC                       installed-first cohttp
00:07.353  027833  HEURISTIC                       keep cohttp with the same version
00:07.353  027833  HEURISTIC                       installed-first websocket
00:07.406  027833  HEURISTIC                       keep websocket with the same version
00:07.406  027833  HEURISTIC                       installed-first stringext
00:07.501  027833  HEURISTIC                       keep stringext with the same version
00:07.501  027833  HEURISTIC                       installed-first mirage-clock-unix
00:07.555  027833  HEURISTIC                       keep mirage-clock-unix with the same version
00:07.555  027833  HEURISTIC                       installed-first omake
00:07.653  027833  HEURISTIC                       keep omake with the same version
00:07.653  027833  HEURISTIC                       installed-first mirage-clock-xen
00:07.707  027833  HEURISTIC                       keep mirage-clock-xen with the same version
00:07.707  027833  HEURISTIC                       installed-first atd
00:07.805  027833  HEURISTIC                       keep atd with the same version
00:07.805  027833  HEURISTIC                       installed-first easy-format
00:07.861  027833  HEURISTIC                       keep easy-format with the same version
00:07.861  027833  HEURISTIC                       installed-first textutils
00:07.959  027833  HEURISTIC                       keep textutils with the same version
00:07.959  027833  HEURISTIC                       installed-first camomile
00:08.014  027833  HEURISTIC                       keep camomile with the same version
00:08.014  027833  HEURISTIC                       installed-first ocamlify
00:08.111  027833  HEURISTIC                       keep ocamlify with the same version
00:08.111  027833  HEURISTIC                       installed-first ocp-indent
00:08.165  027833  HEURISTIC                       keep ocp-indent with the same version
00:08.165  027833  HEURISTIC                       installed-first ocamlnet
00:08.263  027833  HEURISTIC                       keep ocamlnet with the same version
00:08.263  027833  HEURISTIC                       installed-first opam-lib
00:08.319  027833  HEURISTIC                       keep opam-lib with the same version
00:08.319  027833  HEURISTIC                       installed-first pa%5fmonad%5fcustom
00:08.419  027833  HEURISTIC                       keep pa%5fmonad%5fcustom with the same version
00:08.419  027833  HEURISTIC                       installed-first utop
00:08.475  027833  HEURISTIC                       keep utop with the same version
00:08.475  027833  HEURISTIC                       installed-first zed
00:08.574  027833  HEURISTIC                       keep zed with the same version
00:08.574  027833  HEURISTIC                       installed-first calendar
00:08.631  027833  HEURISTIC                       keep calendar with the same version
00:08.631  027833  HEURISTIC                       installed-first alt-ergo
00:08.731  027833  HEURISTIC                       keep alt-ergo with the same version
00:08.731  027833  HEURISTIC                       installed-first jsonm
00:08.789  027833  HEURISTIC                       keep jsonm with the same version
00:08.789  027833  HEURISTIC                       installed-first lambda-term
00:08.889  027833  HEURISTIC                       keep lambda-term with the same version
00:08.889  027833  HEURISTIC                       installed-first ctypes
00:08.945  027833  HEURISTIC                       keep ctypes with the same version
00:08.945  027833  HEURISTIC                       installed-first tuntap
00:09.046  027833  HEURISTIC                       keep tuntap with the same version
00:09.046  027833  HEURISTIC                       installed-first ocamlgraph
00:09.103  027833  HEURISTIC                       keep ocamlgraph with the same version
00:09.103  027833  HEURISTIC                       installed-first tyxml
00:09.204  027833  HEURISTIC                       keep tyxml with the same version
00:09.204  027833  HEURISTIC                       installed-first uunf
00:09.262  027833  HEURISTIC                       keep uunf with the same version
00:09.262  027833  HEURISTIC                       installed-first tgls
00:09.362  027833  HEURISTIC                       keep tgls with the same version
00:09.362  027833  HEURISTIC                       installed-first dose
00:09.419  027833  HEURISTIC                       keep dose with the same version
00:09.419  027833  HEURISTIC                       installed-first xen-evtchn
00:09.520  027833  HEURISTIC                       keep xen-evtchn with the same version
00:09.520  027833  HEURISTIC                       installed-first mirage-http
00:09.579  027833  HEURISTIC                       keep mirage-http with the same version
00:09.579  027833  HEURISTIC                       installed-first ocaml-data-notation
00:09.682  027833  HEURISTIC                       keep ocaml-data-notation with the same version
00:09.682  027833  HEURISTIC                       installed-first biniou
00:09.742  027833  HEURISTIC                       keep biniou with the same version
00:09.742  027833  HEURISTIC                       installed-first csv
00:09.846  027833  HEURISTIC                       keep csv with the same version
00:09.846  027833  HEURISTIC                       installed-first xenstore
00:09.906  027833  HEURISTIC                       keep xenstore with the same version
00:09.906  027833  HEURISTIC                       installed-first menhir
00:10.010  027833  HEURISTIC                       keep menhir with the same version
00:10.010  027833  HEURISTIC                       installed-first typerex
00:10.071  027833  HEURISTIC                       keep typerex with the same version
00:10.071  027833  HEURISTIC                       installed-first cryptokit
00:10.175  027833  HEURISTIC                       keep cryptokit with the same version
00:10.175  027833  HEURISTIC                       installed-first ocsigenserver
00:10.238  027833  HEURISTIC                       keep ocsigenserver with the same version
00:10.238  027833  HEURISTIC                       installed-first iocamljs-kernel
00:10.344  027833  HEURISTIC                       keep iocamljs-kernel with the same version
00:10.344  027833  HEURISTIC                       installed-first zarith
00:10.406  027833  HEURISTIC                       keep zarith with the same version
00:10.406  027833  HEURISTIC                       installed-first dns
00:10.513  027833  HEURISTIC                       keep dns with the same version
00:10.513  027833  HEURISTIC                       installed-first yojson
00:10.576  027833  HEURISTIC                       keep yojson with the same version
00:10.576  027833  HEURISTIC                       installed-first cudf
00:10.683  027833  HEURISTIC                       keep cudf with the same version
00:10.683  027833  HEURISTIC                       installed-first tcpip
00:10.746  027833  HEURISTIC                       keep tcpip with the same version
00:10.746  027833  HEURISTIC                       installed-first estring
00:10.852  027833  HEURISTIC                       keep estring with the same version
00:10.852  027833  HEURISTIC                       installed-first camlimages
00:10.918  027833  HEURISTIC                       keep camlimages with the same version
00:10.918  027833  HEURISTIC                       installed-first uri
00:11.026  027833  HEURISTIC                       keep uri with the same version
00:11.026  027833  HEURISTIC                       installed-first ezjsonm
00:11.090  027833  HEURISTIC                       keep ezjsonm with the same version
00:11.090  027833  HEURISTIC                       installed-first mirage-xen
00:11.198  027833  HEURISTIC                       keep mirage-xen with the same version
00:11.198  027833  HEURISTIC                       installed-first mirage-unix
00:11.263  027833  HEURISTIC                       keep mirage-unix with the same version
00:11.263  027833  HEURISTIC                       installed-first ocamlsdl
00:11.371  027833  HEURISTIC                       keep ocamlsdl with the same version
00:11.371  027833  HEURISTIC                       installed-first io-page
00:11.436  027833  HEURISTIC                       keep io-page with the same version
00:11.436  027833  HEURISTIC                       installed-first mirage
00:11.545  027833  HEURISTIC                       keep mirage with the same version
00:11.545  027833  HEURISTIC                       installed-first js%5fof%5focaml
00:11.613  027833  HEURISTIC                       keep js%5fof%5focaml with the same version
00:11.613  027833  HEURISTIC                       installed-first crunch
00:11.724  027833  HEURISTIC                       keep crunch with the same version
00:11.724  027833  HEURISTIC                       installed-first mirage-types
00:11.791  027833  HEURISTIC                       keep mirage-types with the same version
00:11.791  027833  HEURISTIC                       installed-first core%5fbench
00:11.903  027833  HEURISTIC                       keep core%5fbench with the same version
00:11.903  027833  HEURISTIC                       installed-first mirage-net-unix
00:11.972  027833  HEURISTIC                       keep mirage-net-unix with the same version
00:11.972  027833  HEURISTIC                       installed-first hardcaml
00:12.082  027833  HEURISTIC                       keep hardcaml with the same version
00:12.082  027833  HEURISTIC                       installed-first xen-gnt
00:12.149  027833  HEURISTIC                       keep xen-gnt with the same version
00:12.149  027833  HEURISTIC                       installed-first pcre-ocaml
00:12.260  027833  HEURISTIC                       keep pcre-ocaml with the same version
00:12.260  027833  HEURISTIC                       installed-first mirage-console-xen
00:12.328  027833  HEURISTIC                       keep mirage-console-xen with the same version
00:12.328  027833  HEURISTIC                       installed-first mirage-console-unix
00:12.440  027833  HEURISTIC                       keep mirage-console-unix with the same version
00:12.440  027833  HEURISTIC                       installed-first headache
00:12.509  027833  HEURISTIC                       keep headache with the same version
00:12.509  027833  HEURISTIC                       installed-first why3
00:12.621  027833  HEURISTIC                       keep why3 with the same version
00:12.621  027833  HEURISTIC                       installed-first ocaml-sqlexpr
00:12.689  027833  HEURISTIC                       keep ocaml-sqlexpr with the same version
00:12.689  027833  HEURISTIC                       installed-first async%5fssl
00:12.803  027833  HEURISTIC                       keep async%5fssl with the same version
00:12.803  027833  HEURISTIC                       installed-first extlib
00:12.872  027833  HEURISTIC                       keep extlib with the same version
00:12.872  027833  HEURISTIC                       installed-first freetennis
00:12.985  027833  HEURISTIC                       keep freetennis with the same version
00:12.985  027833  HEURISTIC                       installed-first uucd
00:13.055  027833  HEURISTIC                       keep uucd with the same version
00:13.055  027833  HEURISTIC                       installed-first conduit
00:13.169  027833  HEURISTIC                       keep conduit with the same version
00:13.169  027833  HEURISTIC                       installed-first ocamlmod
00:13.238  027833  HEURISTIC                       keep ocamlmod with the same version
00:13.238  027833  HEURISTIC                       installed-first mirage-net-xen
00:13.352  027833  HEURISTIC                       keep mirage-net-xen with the same version
00:13.352  027833  HEURISTIC                       installed-first ulex
00:13.421  027833  HEURISTIC                       keep ulex with the same version
00:13.421  027833  HEURISTIC                       installed-first ocp-build
00:13.534  027833  HEURISTIC                       keep ocp-build with the same version
00:13.534  027833  HEURISTIC                       installed-first fileutils
00:13.603  027833  HEURISTIC                       keep fileutils with the same version
00:13.603  027833  HEURISTIC                       installed-first conf-gmp
00:13.715  027833  HEURISTIC                       keep conf-gmp with the same version
00:13.715  027833  HEURISTIC                       installed-first omd
00:13.784  027833  HEURISTIC                       keep omd with the same version
00:13.784  027833  HEURISTIC                       installed-first config-file
00:13.896  027833  HEURISTIC                       keep config-file with the same version
00:13.896  027833  HEURISTIC                       installed-first ipaddr
00:13.967  027833  HEURISTIC                       keep ipaddr with the same version
00:13.967  027833  HEURISTIC                       installed-first datalog
00:14.079  027833  HEURISTIC                       keep datalog with the same version
00:14.079  027833  HEURISTIC                       installed-first ocamlclean
00:14.149  027833  HEURISTIC                       keep ocamlclean with the same version
00:14.149  027833  HEURISTIC                       installed-first conf-libpcre
00:14.262  027833  HEURISTIC                       keep conf-libpcre with the same version
00:14.262  027833  HEURISTIC                       installed-first xmlm
00:14.334  027833  HEURISTIC                       keep xmlm with the same version
00:14.335  027833  HEURISTIC                       installed-first tsdl
00:14.448  027833  HEURISTIC                       keep tsdl with the same version
00:14.448  027833  HEURISTIC                       installed-first agrep
00:14.519  027833  HEURISTIC                       keep agrep with the same version
00:14.519  027833  HEURISTIC                       installed-first uint
00:14.632  027833  HEURISTIC                       keep uint with the same version
00:14.632  027833  HEURISTIC                       installed-first uutf
00:14.702  027833  HEURISTIC                       keep uutf with the same version
00:14.702  027833  HEURISTIC                       installed-first ocp-index
00:14.816  027833  HEURISTIC                       keep ocp-index with the same version
00:14.817  027833  HEURISTIC                       installed-first sqlite3-ocaml
00:14.887  027833  HEURISTIC                       keep sqlite3-ocaml with the same version
00:14.887  027833  HEURISTIC                       installed-first base-bigarray
00:15.000  027833  HEURISTIC                       keep base-bigarray with the same version
00:15.000  027833  HEURISTIC                       installed-first re
00:15.071  027833  HEURISTIC                       keep re with the same version
00:15.071  027833  HEURISTIC                       installed-first uuidm
00:15.185  027833  HEURISTIC                       keep uuidm with the same version
00:15.185  027833  HEURISTIC                       installed-first cmdliner
00:15.256  027833  HEURISTIC                       keep cmdliner with the same version
00:15.256  027833  HEURISTIC                       installed-first higlo
00:15.369  027833  HEURISTIC                       keep higlo with the same version
00:15.369  027833  HEURISTIC                       installed-first cow
00:15.494  027833  HEURISTIC                       keep cow with the same version
00:15.494  027833  HEURISTIC                       installed-first batteries
00:15.574  027833  HEURISTIC                       keep batteries with the same version
00:15.574  027833  HEURISTIC                       installed-first opam-doc
00:15.695  027833  HEURISTIC                       keep opam-doc with the same version
00:15.695  027833  HEURISTIC                       installed-first atdgen
00:15.810  027833  HEURISTIC                       keep atdgen with the same version
00:15.810  027833  HEURISTIC                       installed-first dyntype
00:15.893  027833  HEURISTIC                       keep dyntype with the same version
00:15.893  027833  HEURISTIC                       installed-first xtmpl
00:16.013  027833  HEURISTIC                       keep xtmpl with the same version
00:16.013  027833  HEURISTIC                       installed-first shared-memory-ring
00:16.131  027833  HEURISTIC                       keep shared-memory-ring with the same version
00:16.131  027833  HEURISTIC                       installed-first oasis
00:16.214  027833  HEURISTIC                       keep oasis with the same version
00:16.214  027833  HEURISTIC                       installed-first pgocaml
00:16.338  027833  HEURISTIC                       keep pgocaml with the same version
00:16.338  027833  HEURISTIC                       installed-first cppo
00:16.456  027833  HEURISTIC                       keep cppo with the same version
00:16.457  027833  HEURISTIC                       STATE(2) { cppo.106(installed), pgocaml.293(installed), oasis.54(installed), shared-memory-ring.174(installed), xtmpl.101(installed), dyntype.102(installed), atdgen.204(installed), opam-doc.105(installed), batteries.300(installed), cow.122(installed), higlo.36(installed), cmdliner.108(installed), uuidm.108(installed), re.197(installed), base-bigarray.507(installed), sqlite3-ocaml.290(installed), ocp-index.177(installed), uutf.105(installed), uint.187(installed), agrep.166(installed), tsdl.94(installed), xmlm.195(installed), conf-libpcre.165(installed), ocamlclean.282(installed), datalog.65(installed), ipaddr.315(installed), config-file.194(installed), omd.111(installed), conf-gmp.165(installed), fileutils.54(installed), ocp-build.280(installed), ulex.184(installed), mirage-net-xen.187(installed), ocamlmod.10(installed), conduit.64(installed), uucd.283(installed), freetennis.59(installed), extlib.232(installed), async%5fssl.479(installed), ocaml-sqlexpr.69(installed), why3.156(installed), headache.202(installed), mirage-console-unix.174(installed), mirage-console-xen.177(installed), pcre-ocaml.400(installed), xen-gnt.177(installed), hardcaml.174(installed), mirage-net-unix.187(installed), core%5fbench.472(installed), mirage-types.195(installed), crunch.203(installed), js%5fof%5focaml.299(installed), mirage.195(installed), io-page.187(installed), ocamlsdl.103(installed), mirage-unix.185(installed), mirage-xen.187(installed), ezjsonm.27(installed), uri.239(installed), camlimages.373(installed), estring.202(installed), tcpip.191(installed), cudf.79(installed), yojson.193(installed), dns.102(installed), zarith.194(installed), iocamljs-kernel.54(installed), ocsigenserver.309(installed), cryptokit.249(installed), typerex.280(installed), menhir.502(installed), xenstore.200(installed), csv.207(installed), biniou.183(installed), ocaml-data-notation.13(installed), mirage-http.185(installed), xen-evtchn.180(installed), dose.335(installed), tgls.94(installed), uunf.105(installed), tyxml.334(installed), ocamlgraph.247(installed), tuntap.174(installed), ctypes.41(installed), lambda-term.230(installed), jsonm.103(installed), alt-ergo.164(installed), calendar.307(installed), zed.202(installed), utop.261(installed), pa%5fmonad%5fcustom.509(installed), opam-lib.187(installed), ocamlnet.352(installed), ocp-indent.219(installed), ocamlify.4(installed), camomile.98(installed), textutils.478(installed), easy-format.177(installed), atd.188(installed), mirage-clock-xen.174(installed), omake.113(installed), mirage-clock-unix.174(installed), stringext.4(installed), websocket.94(installed), cohttp.127(installed), ocurl.85(installed), custom%5fprintf.476(installed), lwt.314(installed), async%5fkernel.484(installed), comparelib.473(installed), ssl.58(installed), core.484(installed), core%5fkernel.484(installed), pa%5fbench.468(installed), variantslib.424(installed), enumerate.479(installed), fieldslib.431(installed), sexplib.484(installed), base-threads.507(installed), type%5fconv.483(installed), conf-gnomecanvas.281(installed), base-unix.507(installed), camlp4.371(installed), react.185(installed), async%5funix.484(installed), pa%5founit.465(installed), async.484(installed), typerep.484(installed), base-bytes.508(installed), conf-gtksourceview.281(installed), async%5fextra.484(installed), herelib.450(installed), ocplib-endian.83(installed), ounit.283(installed), ocamlfind.226(installed), pipebang.475(installed), optcomp.230(installed), bin%5fprot.476(installed), lablgtk.320(installed), pa%5ftest.479(installed), lablgl.490(installed), cstruct.204(installed) }
00:16.457  027833  HEURISTIC                       actions_of_state { cppo.106(installed), pgocaml.293(installed), oasis.54(installed), shared-memory-ring.174(installed), xtmpl.101(installed), dyntype.102(installed), atdgen.204(installed), opam-doc.105(installed), batteries.300(installed), cow.122(installed), higlo.36(installed), cmdliner.108(installed), uuidm.108(installed), re.197(installed), base-bigarray.507(installed), sqlite3-ocaml.290(installed), ocp-index.177(installed), uutf.105(installed), uint.187(installed), agrep.166(installed), tsdl.94(installed), xmlm.195(installed), conf-libpcre.165(installed), ocamlclean.282(installed), datalog.65(installed), ipaddr.315(installed), config-file.194(installed), omd.111(installed), conf-gmp.165(installed), fileutils.54(installed), ocp-build.280(installed), ulex.184(installed), mirage-net-xen.187(installed), ocamlmod.10(installed), conduit.64(installed), uucd.283(installed), freetennis.59(installed), extlib.232(installed), async%5fssl.479(installed), ocaml-sqlexpr.69(installed), why3.156(installed), headache.202(installed), mirage-console-unix.174(installed), mirage-console-xen.177(installed), pcre-ocaml.400(installed), xen-gnt.177(installed), hardcaml.174(installed), mirage-net-unix.187(installed), core%5fbench.472(installed), mirage-types.195(installed), crunch.203(installed), js%5fof%5focaml.299(installed), mirage.195(installed), io-page.187(installed), ocamlsdl.103(installed), mirage-unix.185(installed), mirage-xen.187(installed), ezjsonm.27(installed), uri.239(installed), camlimages.373(installed), estring.202(installed), tcpip.191(installed), cudf.79(installed), yojson.193(installed), dns.102(installed), zarith.194(installed), iocamljs-kernel.54(installed), ocsigenserver.309(installed), cryptokit.249(installed), typerex.280(installed), menhir.502(installed), xenstore.200(installed), csv.207(installed), biniou.183(installed), ocaml-data-notation.13(installed), mirage-http.185(installed), xen-evtchn.180(installed), dose.335(installed), tgls.94(installed), uunf.105(installed), tyxml.334(installed), ocamlgraph.247(installed), tuntap.174(installed), ctypes.41(installed), lambda-term.230(installed), jsonm.103(installed), alt-ergo.164(installed), calendar.307(installed), zed.202(installed), utop.261(installed), pa%5fmonad%5fcustom.509(installed), opam-lib.187(installed), ocamlnet.352(installed), ocp-indent.219(installed), ocamlify.4(installed), camomile.98(installed), textutils.478(installed), easy-format.177(installed), atd.188(installed), mirage-clock-xen.174(installed), omake.113(installed), mirage-clock-unix.174(installed), stringext.4(installed), websocket.94(installed), cohttp.127(installed), ocurl.85(installed), custom%5fprintf.476(installed), lwt.314(installed), async%5fkernel.484(installed), comparelib.473(installed), ssl.58(installed), core.484(installed), core%5fkernel.484(installed), pa%5fbench.468(installed), variantslib.424(installed), enumerate.479(installed), fieldslib.431(installed), sexplib.484(installed), base-threads.507(installed), type%5fconv.483(installed), conf-gnomecanvas.281(installed), base-unix.507(installed), camlp4.371(installed), react.185(installed), async%5funix.484(installed), pa%5founit.465(installed), async.484(installed), typerep.484(installed), base-bytes.508(installed), conf-gtksourceview.281(installed), async%5fextra.484(installed), herelib.450(installed), ocplib-endian.83(installed), ounit.283(installed), ocamlfind.226(installed), pipebang.475(installed), optcomp.230(installed), bin%5fprot.476(installed), lablgtk.320(installed), pa%5ftest.479(installed), lablgl.490(installed), cstruct.204(installed) }
00:16.659  027833  CUDF                            graph_of_actions root_actions={  - upgrade cstruct.203 to 204 }
00:16.663  027833  SOLUTION                        apply
digraph G {
  " - recompile mirage-console-unix.1.0.0";
  " - recompile dns.0.9.0";
  " - recompile mirage-xen.1.1.1";
  " - recompile mirage-net-unix.1.1.1";
  " - recompile mirage-console-xen.1.0.2";
  " - recompile tcpip.1.1.5";
  " - recompile mirage-http.1.1.0";
  " - recompile mirage-types.1.2.0";
  " - recompile xen-gnt.1.0.2";
  " - recompile mirage-clock-unix.1.0.0";
  " - recompile mirage-unix.1.1.0";
  " - recompile io-page.1.1.1";
  " - recompile mirage.1.2.0";
  " - recompile xenstore.1.2.5";
  " - upgrade cstruct.1.3.0 to 1.3.1";
  " - recompile shared-memory-ring.1.0.0";
  " - recompile mirage-net-xen.1.1.1";
  " - recompile mirage-clock-xen.1.0.0";

  " - recompile mirage-console-unix.1.0.0" -> " - recompile tcpip.1.1.5";
  " - recompile mirage-xen.1.1.1" -> " - recompile mirage-console-xen.1.0.2";
  " - recompile mirage-xen.1.1.1" -> " - recompile mirage-net-xen.1.1.1";
  " - recompile mirage-net-unix.1.1.1" -> " - recompile tcpip.1.1.5";
  " - recompile tcpip.1.1.5" -> " - recompile mirage-http.1.1.0";
  " - recompile mirage-types.1.2.0" -> " - recompile mirage.1.2.0";
  " - recompile mirage-types.1.2.0" -> " - recompile mirage-clock-unix.1.0.0";
  " - recompile mirage-types.1.2.0" -> " - recompile mirage-clock-xen.1.0.0";
  " - recompile mirage-types.1.2.0" -> " - recompile mirage-console-unix.1.0.0";
  " - recompile mirage-types.1.2.0" -> " - recompile mirage-console-xen.1.0.2";
  " - recompile mirage-types.1.2.0" -> " - recompile mirage-net-unix.1.1.1";
  " - recompile mirage-types.1.2.0" -> " - recompile mirage-net-xen.1.1.1";
  " - recompile xen-gnt.1.0.2" -> " - recompile mirage-xen.1.1.1";
  " - recompile mirage-clock-unix.1.0.0" -> " - recompile mirage-unix.1.1.0";
  " - recompile mirage-unix.1.1.0" -> " - recompile mirage-console-unix.1.0.0";
  " - recompile io-page.1.1.1" -> " - recompile dns.0.9.0";
  " - recompile io-page.1.1.1" -> " - recompile mirage-types.1.2.0";
  " - recompile io-page.1.1.1" -> " - recompile mirage-unix.1.1.0";
  " - recompile io-page.1.1.1" -> " - recompile xen-gnt.1.0.2";
  " - recompile xenstore.1.2.5" -> " - recompile mirage-xen.1.1.1";
  " - upgrade cstruct.1.3.0 to 1.3.1" -> " - recompile io-page.1.1.1";
  " - upgrade cstruct.1.3.0 to 1.3.1" -> " - recompile shared-memory-ring.1.0.0";
  " - upgrade cstruct.1.3.0 to 1.3.1" -> " - recompile xenstore.1.2.5";
  " - recompile shared-memory-ring.1.0.0" -> " - recompile mirage-unix.1.1.0";
  " - recompile shared-memory-ring.1.0.0" -> " - recompile mirage-xen.1.1.1";
  " - recompile mirage-clock-xen.1.0.0" -> " - recompile mirage-xen.1.1.1";

  }The following actions will be performed:
 - upgrade cstruct.1.3.0 to 1.3.1
 - recompile xenstore.1.2.5 [use cstruct]
 - recompile shared-memory-ring.1.0.0 [use cstruct]
 - recompile io-page.1.1.1 [use cstruct]
 - recompile xen-gnt.1.0.2 [use cstruct]
 - recompile mirage-types.1.2.0 [use cstruct]
 - recompile dns.0.9.0 [use cstruct]
 - recompile mirage-net-unix.1.1.1 [use cstruct]
 - recompile mirage-clock-xen.1.0.0 [use cstruct]
 - recompile mirage-clock-unix.1.0.0 [use cstruct]
 - recompile mirage.1.2.0 [use cstruct]
 - recompile mirage-xen.1.1.1 [use cstruct]
 - recompile mirage-unix.1.1.0 [use cstruct]
 - recompile mirage-net-xen.1.1.1 [use cstruct]
 - recompile mirage-console-xen.1.0.2 [use cstruct]
 - recompile mirage-console-unix.1.0.0 [use cstruct]
 - recompile tcpip.1.1.5 [use cstruct]
 - recompile mirage-http.1.1.0 [use cstruct]
0 to install | 17 to reinstall | 1 to upgrade | 0 to downgrade | 0 to remove
Do you want to continue ? [Y/n] 
edwintorok commented 10 years ago

Here is the cudf file created by 'opam install --cudf=foo cstruct.1.3.1': https://gist.githubusercontent.com/edwintorok/7b1e8997461dcdff72d7/raw/c406c311410217eef34d6144de675a3361ec8971/gistfile1.txt

rdicosmo commented 10 years ago

[if you are looking for a quick solution, just skip to the end of the message :-)]

What is going wrong

Thanks for providing the cudf file: it made it easy to spot the issue here, which is in the preference expression used as default in older versions of opam, "-removed,-notuptodate,-new"; you can see it looking at the first line of the cudf file:

!/usr/bin/aspcud $in $out $pref -removed,-notuptodate,-new

With this preference expression, downgrades may slip in: indeed, we are asking the solver to minimise package removal, then maximise packages that are at their latest version, and then minimise packages that were not there before. If one package cannot be installed at the latest version, and is not new, then nothing is specified, and the solver may very well provide a solution with a downgrade.

The current version of opam in trunk has a different default value, which is -removed,-notuptodate,-changed ^^^^^^^^ which, on your particular case, provides a satisfactory solution preventing the downgrade.

Actually, the best preference expression for installations should be something like

-count(removed),-notuptodate(request),-count(down),-count(changed)

but this extended preference language requires to have aspcud 1.9 or lated installed, or to use the solver farm at cudf-solvers.irill.org and since this is not the case for everybody out there (yet), we could not put this in the code as a default.

How to fix it

If you do not want/need to upgrade to a more recent opam, just run opam with the --criteria option, as in

opam install ... --criteria="-removed,-notuptodate,-changed"

And if you have aspcud 1.9 or later installed, use the more refined preference expression below

-count(removed),-notuptodate(request),-count(down),-count(changed)

References

For more info on the preference language and its use, see

http://www.slideshare.net/robertodicosmo3/leveraging-solver-preferences-to-tame-your-package-manager http://www.dicosmo.org/Articles/usercriteria.pdf

On Sun, Jul 13, 2014 at 01:16:52AM -0700, Török Edwin wrote:

Here is the cudf file created by 'opam install --cudf=foo cstruct.1.3.1': https://gist.githubusercontent.com/edwintorok/7b1e8997461dcdff72d7/raw/ c406c311410217eef34d6144de675a3361ec8971/gistfile1.txt

— Reply to this email directly or view it on GitHub.*

Roberto Di Cosmo


Professeur En delegation a l'INRIA PPS E-mail: roberto@dicosmo.org Universite Paris Diderot WWW : http://www.dicosmo.org Case 7014 Tel : ++33-(0)1-57 27 92 20 5, Rue Thomas Mann
F-75205 Paris Cedex 13 Identica: http://identi.ca/rdicosmo

FRANCE. Twitter: http://twitter.com/rdicosmo

Attachments: MIME accepted, Word deprecated

http://www.gnu.org/philosophy/no-word-attachments.html

Office location:

Bureau 3020 (3rd floor) Batiment Sophie Germain Avenue de France

Metro Bibliotheque Francois Mitterrand, ligne 14/RER C

GPG fingerprint 2931 20CE 3A5A 5390 98EC 8BFC FCCA C3BE 39CB 12D3

edwintorok commented 10 years ago

Thanks. There is no --criteria flag in opam 1.1.1, but I set $OPAMCRITERIA in .bashrc: export OPAMCRITERIA='-count(removed),-notuptodate(request),-count(down),-count(changed)'

Apparently I needed to escape the paranthesis:

$ echo $OPAMCRITERIA
-count\(removed\),-notuptodate\(request\),-count\(down\),-count\(changed\)
rdicosmo commented 10 years ago

Indeed, the environment variable is a way to go for old opam.

Notice though that this will set the preferences for all opam commands, including upgrades, but for upgrades you really want another criterion

-count(down),-count(removed),-notuptodate(solution),-count(new)

In opam 1.2 you have two different environment variables, OPAMCRITERIA and OPAMUPGRADECRITERIA

Roberto

On Sun, Jul 13, 2014 at 03:10:36AM -0700, Török Edwin wrote:

Thanks. There is no --criteria flag in opam 1.1.1, but I set $OPAMCRITERIA in .bashrc: export OPAMCRITERIA='-count(removed),-notuptodate(request),-count(down),-count (changed)'

Apparently I needed to escape the paranthesis:

$ echo $OPAMCRITERIA -count(removed),-notuptodate(request),-count(down),-count(changed)

— Reply to this email directly or view it on GitHub.*

edwintorok commented 10 years ago

Thanks, I added some aliases to my bashrc for now:

alias opaminstall="OPAMCRITERIA='-count\(removed\),-notuptodate\(request\),-count\(down\),-count\(changed\)' opam install"
alias opamupgrade="OPAMCRITERIA='-count\(down\),-count\(removed\),-notuptodate\(solution\),-count\(new\)' opam upgrade"
rdicosmo commented 10 years ago

You are welcome! This should be much simpler in opam 1.2, and I'm really looking forward to having recent external solvers becoming the standard, so the default values for the preferences will be able to go into the real code.

On Sun, Jul 13, 2014 at 04:55:26AM -0700, Török Edwin wrote:

Thanks, I added some aliases to my bashrc for now:

alias opaminstall="OPAMCRITERIA='-count(removed),-notuptodate(request),-count(down),-count(changed)' opam install" alias opamupgrade="OPAMCRITERIA='-count(down),-count(removed),-notuptodate(solution),-count(new)' opam upgrade"

— Reply to this email directly or view it on GitHub.*

Roberto

dsheets commented 10 years ago

Is it reasonable to do version detection on aspcud in opam 1.2 so that if a recent external solver is present, opam 1.2 users will get good solution criteria without effort? This might be helpful in 9 months when most users are on opam 1.2 and aspcud 1.9+ is more widespread...

rdicosmo commented 10 years ago

It would be surely a plus to be able to support different versions of the request language, and different external solvers (that may have slightly different command line interfaces): for example, packup is invoked with a few extra options w.r.t. apscud.

But this means adding an extra layer of complexity to the opam code: in particular, in solver/opamCudf.ml one should not rely, as today, on a single "external_solver_command", but use a structure detailing the different solvers known, the values of their default preferences, the method to detect them, etc.

If somebody volunteers to do this, I'll be happy to provide support with knowledge on the solvers...

Roberto Le 13 juil. 2014 16:03, "David Sheets" notifications@github.com a écrit :

Is it reasonable to do version detection on aspcud in opam 1.2 so that if a recent external solver is present, opam 1.2 users will get good solution criteria without effort? This might be helpful in 9 months when most users are on opam 1.2 and aspcud 1.9+ is more widespread...

— Reply to this email directly or view it on GitHub https://github.com/ocaml/opam/issues/1516#issuecomment-48841347.

dsheets commented 10 years ago

I've opened #1518 to track this. I may take a look at implementing this next weekend. Thanks for your support, Roberto!

rdicosmo commented 10 years ago

You are welcome, I'll add some info on #1518

On Sun, Jul 13, 2014 at 08:28:33AM -0700, David Sheets wrote:

I've opened #1518 to track this. I may take a look at implementing this next weekend. Thanks for your support, Roberto!

— Reply to this email directly or view it on GitHub.*

Roberto Di Cosmo


Professeur En delegation a l'INRIA PPS E-mail: roberto@dicosmo.org Universite Paris Diderot WWW : http://www.dicosmo.org Case 7014 Tel : ++33-(0)1-57 27 92 20 5, Rue Thomas Mann
F-75205 Paris Cedex 13 Identica: http://identi.ca/rdicosmo

FRANCE. Twitter: http://twitter.com/rdicosmo

Attachments: MIME accepted, Word deprecated

http://www.gnu.org/philosophy/no-word-attachments.html

Office location:

Bureau 3020 (3rd floor) Batiment Sophie Germain Avenue de France

Metro Bibliotheque Francois Mitterrand, ligne 14/RER C

GPG fingerprint 2931 20CE 3A5A 5390 98EC 8BFC FCCA C3BE 39CB 12D3