Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lwt 4.0.0: promises and parallelized I/O #11708

Merged
merged 3 commits into from
Apr 10, 2018
Merged

Conversation

aantron
Copy link
Contributor

@aantron aantron commented Mar 30, 2018

This is a breaking release of Lwt, that mainly cleans up the Lwt packaging.

The Lwt PPX is also released with minor breaking changes. Lwt_react has a bugfix. Lwt_log 1.1.0 is the first release of Lwt_log with independent packaging. The pre-existing Lwt_log 1.0.0 release was a forward-compatibility alias for Lwt. That Lwt_log 1.0.0 release has been constrained to require Lwt < 4.0.0.


From the changelog:

Breaking

These changes were announced in Lwt 3.1.0 and Lwt 3.2.0. See ocsigen/lwt#453 about smooth upgrade paths.

Planned to break in 5.0.0

Bugs fixed

Miscellaneous

@hcarty
Copy link
Member

hcarty commented Mar 30, 2018

@aantron Failures in the Travis runs:

[lwt: jbuilder runtest] Command started
+ jbuilder "runtest" "-p" "lwt" (CWD=/Users/travis/.opam/system/build/lwt.4.0.0)
- Error: I couldn't find 'ocaml-migrate-parsetree.driver-main'.
- I need this library in order to use ppx rewriters.
- See the manual for details.
- Hint: opam install ocaml-migrate-parsetree
-         main alias test/core/runtest

Is there a missing dependency somewhere?

@aantron
Copy link
Contributor Author

aantron commented Mar 30, 2018

Thanks.

This looks to be due to opam's build-test mechanism, which we were formerly abusing in Lwt in AppVeyor. I removed the build-test commands from the opam file. Lwt's tests aren't well-separated by package, and expect the deps of Lwt, Lwt_ppx, and Lwt_react to all be installed for running the tests.

@aantron
Copy link
Contributor Author

aantron commented Mar 31, 2018

Working out constraints and notifications for the failed revdeps now. Interestingly, only arm64 builds seem to have run.

@aantron
Copy link
Contributor Author

aantron commented Apr 1, 2018

The last commit above adds the constraints I was able to find from the previous revdeps build. The latest build seems to be broken due to being unable to create the build container. In addition, it is still arm64-only, so several packages (notably minios) don't build.

Please let me know if the revdeps build can be fixed. Otherwise, I believe most of the value of the revdeps build has already been extracted, so I will notify maintainers of the packages constrained, and we can merge Lwt into the repo.

Travis CI passed for Lwt 4.0.0, but is broken now, with all the new constraints, because it is trying to build all those constrained packages without the proper environments that they require.

@avsm
Copy link
Member

avsm commented Apr 1, 2018

The x86 CI was down due to a machine failure; the service has now been restored.

@aantron
Copy link
Contributor Author

aantron commented Apr 1, 2018

Thank you :) already working on more constraints.

@aantron
Copy link
Contributor Author

aantron commented Apr 1, 2018

The revdeps builds are now failing with "depfail" because (I guess) the basic V2.0 Build is failing at docker build.

@aantron
Copy link
Contributor Author

aantron commented Apr 1, 2018

I excluded the constraints commits for now, so I can take a look at any extra constraints that will be found by the x86 build.

@hannesm
Copy link
Member

hannesm commented Apr 1, 2018

@aantron i think it makes sense to PR the constraints in another PR, maybe even chunk that up into smaller bits so that the CI can manage.

@aantron
Copy link
Contributor Author

aantron commented Apr 2, 2018

@hannesm That's a good idea. I propose a modified variant: I add the first, and largest, set of constraints in this PR (see above commit). This will break the CI build, but we are already pretty sure that most of these constraints are correct. We merge this PR. Even though the final CI build of this PR is broken due to the large number of packages affected, you can see that lwt and most of its reverse dependencies built by clicking on the CI status of the second-to-last commit. The last commit's build pointlessly tries to build constrained reverse dependencies as if they were the primary packages being added, which is a mistake, because they can't be broken by the new constraint, and because of the constraint, they should no longer be built at all in this PR. In other words, the failure is spurious. All it does is prevent me from iterating on the constraint set in this PR.

After merging this PR, I'll open a second dummy PR that twiddles only the new Lwt packages, just to trigger a new revdeps build. This will let us catch any more constraints we need to add. I'll constrain those in a third PR. The set should be much smaller here.

I don't want to chunk up the initial set of constraints into multiple PRs, because it will be a lot of human time spent for learning the same information we already learned from the original revdeps build in this PR.

If you agree, then I think this PR is ready for merging.

@hannesm
Copy link
Member

hannesm commented Apr 2, 2018

@aantron to minimise the breakage for random people on the internet, I'd like to first merge your added constraints (thanks for adding them) into the opam-repository, and only in a second step merge the lwt 4.0 release (after CI confirmed that revdeps are indeed good now). does this sound like a plan: (a) open a second PR with your last commit here, (b) rebase this PR on master once (a) is merged?

@aantron
Copy link
Contributor Author

aantron commented Apr 2, 2018

Yes, that sounds even better. I'll open the other PR in a couple hours when I'm back at the computer.

aantron added a commit to aantron/opam-repository-fork that referenced this pull request Apr 2, 2018
hannesm pushed a commit that referenced this pull request Apr 3, 2018
* Constrain packages for Lwt 4.0.0

See #11708.
@camelus
Copy link
Contributor

camelus commented Apr 3, 2018

❗ opam-lint warnings 5474ec4
  • lwt.4.0.0 has some warnings:

    • warning 41: Some packages are mentionned in package scripts of features, but there is no dependency or depopt toward them:
      "camlp4", "lwt_camlp4", "lwt_log", "lwt_ppx"
  • These packages passed lint tests: gdbprofiler.0.2, lwt_log.1.0.0, lwt_log.1.1.0, lwt_ppx.1.2.0, lwt_react.1.1.1, xenstore.1.2.0


✅ Installability check (8665 → 8669)
  • new installable packages (4): lwt.4.0.0 lwt_log.1.1.0 lwt_ppx.1.2.0 lwt_react.1.1.1

aantron added a commit to aantron/opam-repository-fork that referenced this pull request Apr 4, 2018
@aantron
Copy link
Contributor Author

aantron commented Apr 4, 2018

@avsm, I am gradually accumulating a list of packages for notifying maintainers. Each package is linked to its failing build log, some of which are in the arm64 CI, and the arm64 CI site is having certificate problems.

aantron added a commit to aantron/opam-repository-fork that referenced this pull request Apr 4, 2018
Also adds Lwt_ppx 1.2.0, Lwt_react 1.1.1, Lwt_log 1.1.0.
@hannesm
Copy link
Member

hannesm commented Apr 7, 2018

thanks @aantron for your work and constraining revdeps. I'm in favour of merging this rather sooner than later. what is the current status?

what the CI is missing out on are the revdeps which list lwt as depopt. I did some shell scripting (for x in $(find . -name opam); do echo -n $x ; opam-ed "get depopts" -f $x | tr -d '\n' ; echo ; done 2>&1 | grep '"lwt"' | sort) to find all packages which have lwt listed as depopt, and we may want to manually verify compatibility (or add conflicts) before merging 4.0.0!?
./amqp-client/amqp-client.1.0.1/opam ["async_unix" | "lwt"]
./amqp-client/amqp-client.1.0.2/opam ["async" "lwt"]
./amqp-client/amqp-client.1.0.3/opam ["async" "lwt"]
./amqp-client/amqp-client.1.0.4/opam ["async" "lwt"]
./amqp-client/amqp-client.1.0.5/opam ["async" "lwt"]
./amqp-client/amqp-client.1.0.6/opam ["async" "lwt"]
./amqp-client/amqp-client.1.1.0/opam ["async" "lwt"]
./amqp-client/amqp-client.1.1.1/opam ["async" "lwt"]
./amqp-client/amqp-client.1.1.2/opam ["async" "lwt"]
./amqp-client/amqp-client.1.1.3/opam ["async" "lwt"]
./amqp-client/amqp-client.1.1.4/opam ["async" "lwt"]
./angstrom/angstrom.0.1.0/opam ["async" "base-unix" "lwt"]
./angstrom/angstrom.0.1.1/opam ["async" "base-unix" "lwt"]
./angstrom/angstrom.0.2.0/opam ["async" "base-unix" "lwt"]
./angstrom/angstrom.0.3.0/opam ["async" "base-unix" "lwt"]
./angstrom/angstrom.0.4.0/opam ["async" "base-unix" "lwt"]
./angstrom/angstrom.0.5.0/opam ["async" "base-unix" "lwt"]
./angstrom/angstrom.0.5.1/opam ["async" "base-unix" "lwt"]
./anycache/anycache.0.6.0/opam ["lwt" "async"]
./arp/arp.0.1.1/opam ["mirage-types" "tcpip" "lwt"]
./arp/arp.0.2.0/opam [ "mirage-protocols-lwt" "mirage-time-lwt" "mirage-clock" "mirage-protocols" "tcpip" "lwt" "duration"]
./aws/aws.1.0.0/opam ["async" "async_ssl" "base-threads" "base-unix" "cohttp" "lwt" "ssl"]
./aws/aws.1.0.1/opam ["async" "async_ssl" "base-threads" "base-unix" "cohttp" "lwt" "ssl"]
./aws/aws.1.0.2/opam ["async" "async_ssl" "base-threads" "base-unix" "cohttp" "lwt" "ssl"]
./biocaml/biocaml.0.5.0/opam ["async" "core" "lwt" "ounit"]
./biocaml/biocaml.0.6.0/opam ["async" "core" "lwt" "ounit"]
./biocaml/biocaml.0.7.0/opam ["async" "core" "lwt" "ounit"]
./biocaml/biocaml.0.8.0/opam ["async" "core" "lwt"]
./bitcoin/bitcoin.1.1.1/opam ["lwt" "ocsigenserver"]
./bitcoin/bitcoin.1.1/opam ["lwt" "ocsigenserver"]
./bookaml/bookaml.2.0/opam ["lwt" "ocsigenserver"]
./bookaml/bookaml.2.1/opam ["lwt" "ocsigenserver"]
./bookaml/bookaml.3.0/opam ["lwt" "ocsigenserver"]
./bookaml/bookaml.3.1/opam ["lwt" "ocsigenserver"]
./bookaml/bookaml.4.0/opam ["lwt" "ocsigenserver"]
./cohttp/cohttp.0.10.0/opam ["async" "lwt" "ssl"]
./cohttp/cohttp.0.10.1/opam ["async" "async_ssl" "lwt" "ssl"]
./cohttp/cohttp.0.11.0/opam ["async" "lwt"]
./cohttp/cohttp.0.11.2/opam ["async" "lwt"]
./cohttp/cohttp.0.12.0/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.13.0/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.14.0/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.15.0/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.15.1/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.15.2/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.16.0/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.16.1/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.17.0/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.17.1/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.17.2/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.18.0/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.18.1/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.18.2/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.18.3/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.19.0/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.19.1/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.19.2/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.19.3/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.20.0/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.20.1/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.20.2/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.21.0/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.21.1/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.22.0/opam ["async" "lwt" "js_of_ocaml"]
./cohttp/cohttp.0.9.1/opam ["async" "lwt" "mirage-net"]
./cohttp/cohttp.0.9.10/opam ["async" "lwt" "mirage-net"]
./cohttp/cohttp.0.9.11/opam ["async" "lwt" "mirage-net"]
./cohttp/cohttp.0.9.12/opam ["async" "lwt" "mirage-net"]
./cohttp/cohttp.0.9.13/opam ["async" "lwt" "mirage-tcpip-unix" "mirage-tcpip-xen"]
./cohttp/cohttp.0.9.14/opam ["async" "lwt"]
./cohttp/cohttp.0.9.15/opam ["async" "lwt"]
./cohttp/cohttp.0.9.16/opam ["async" "lwt"]
./cohttp/cohttp.0.9.2/opam ["async" "lwt" "mirage-net" "ssl"]
./cohttp/cohttp.0.9.3/opam ["async" "lwt" "mirage-net"]
./cohttp/cohttp.0.9.4/opam ["async" "lwt" "mirage-net"]
./cohttp/cohttp.0.9.5/opam ["async" "lwt" "mirage-net"]
./cohttp/cohttp.0.9.6/opam ["async" "lwt" "mirage-net"]
./cohttp/cohttp.0.9.7/opam ["async" "lwt" "mirage-net"]
./cohttp/cohttp.0.9.8/opam ["async" "lwt" "mirage-net"]
./cohttp/cohttp.0.9.9/opam ["async" "lwt" "mirage-net"]
./conduit/conduit.0.10.0/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-types-lwt"]
./conduit/conduit.0.11.0/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-types-lwt"]
./conduit/conduit.0.12.0/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-types-lwt"]
./conduit/conduit.0.13.0/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-types-lwt"]
./conduit/conduit.0.14.0/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-flow-lwt"]
./conduit/conduit.0.14.1/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-flow-lwt"]
./conduit/conduit.0.14.2/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-flow-lwt"]
./conduit/conduit.0.14.3/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-flow-lwt"]
./conduit/conduit.0.14.4/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-types-lwt"]
./conduit/conduit.0.14.5/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-types-lwt"]
./conduit/conduit.0.15.0/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-types-lwt" "mirage-flow-lwt"]
./conduit/conduit.0.15.1/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-types-lwt" "mirage-flow-lwt"]
./conduit/conduit.0.15.2/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-types-lwt" "mirage-flow-lwt"]
./conduit/conduit.0.15.3/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-types-lwt" "mirage-flow-lwt"]
./conduit/conduit.0.15.4/opam [ "async" "lwt" "ssl" "async_ssl" "lwt_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-types-lwt" "mirage-flow-lwt"]
./conduit/conduit.0.5.0/opam ["async" "lwt" "ssl" "async_ssl"]
./conduit/conduit.0.5.1/opam ["async" "lwt" "ssl" "async_ssl"]
./conduit/conduit.0.6.0/opam ["async" "lwt" "ssl" "async_ssl" "mirage-types" "dns" "tcpip" "vchan"]
./conduit/conduit.0.6.1/opam ["async" "lwt" "ssl" "async_ssl" "mirage-types" "dns" "tcpip" "vchan"]
./conduit/conduit.0.7.0/opam [ "async" "lwt" "ssl" "async_ssl" "dns" "vchan" "tls" "tcpip" "mirage-types" "io-page"]
./conduit/conduit.0.7.1/opam [ "async" "lwt" "ssl" "async_ssl" "dns" "vchan" "tls" "tcpip" "mirage-types" "io-page"]
./conduit/conduit.0.7.2/opam [ "async" "lwt" "ssl" "async_ssl" "vchan" "tls" "mirage-types" "io-page" "dns" "tcpip"]
./conduit/conduit.0.8.0/opam [ "async" "lwt" "ssl" "async_ssl" "dns" "vchan" "tls" "mirage-types" "io-page" "tcpip"]
./conduit/conduit.0.8.1/opam [ "async" "lwt" "ssl" "async_ssl" "dns" "vchan" "tls" "mirage-types" "io-page" "tcpip"]
./conduit/conduit.0.8.2/opam [ "async" "lwt" "ssl" "async_ssl" "dns" "vchan" "tls" "mirage-types" "io-page" "tcpip"]
./conduit/conduit.0.8.4/opam [ "async" "lwt" "ssl" "async_ssl" "dns" "vchan" "tls" "mirage-types" "io-page"]
./conduit/conduit.0.8.5/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "tls" "mirage-types-lwt"]
./conduit/conduit.0.8.6/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "tls" "mirage-types-lwt"]
./conduit/conduit.0.8.7/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "tls" "mirage-types-lwt"]
./conduit/conduit.0.8.8/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "tls" "mirage-types-lwt"]
./conduit/conduit.0.9.0/opam [ "async" "lwt" "ssl" "async_ssl" "mirage-dns" "vchan" "launchd" "tls" "mirage-types-lwt"]
./containers/containers.0.10/opam ["lwt" "sequence" "base-bigarray" "base-unix" "base-threads"]
./containers/containers.0.11/opam ["lwt" "sequence" "base-bigarray" "base-unix" "base-threads"]
./containers/containers.0.12/opam ["lwt" "sequence" "base-bigarray" "base-unix" "base-threads"]
./containers/containers.0.6.1/opam ["lwt"]
./containers/containers.0.6/opam ["lwt"]
./containers/containers.0.7/opam ["lwt" "sequence" "base-bigarray"]
./containers/containers.0.8/opam ["lwt" "sequence" "base-bigarray"]
./containers/containers.0.9/opam ["lwt" "sequence" "base-bigarray"]
./cstruct/cstruct.0.7.0/opam ["async" "lwt"]
./cstruct/cstruct.0.7.1/opam ["async" "lwt"]
./cstruct/cstruct.0.8.0/opam ["async" "lwt"]
./cstruct/cstruct.0.8.1/opam ["async" "lwt"]
./cstruct/cstruct.1.0.0/opam ["async" "lwt"]
./cstruct/cstruct.1.0.1/opam ["async" "lwt"]
./cstruct/cstruct.1.1.0/opam ["async" "lwt"]
./cstruct/cstruct.1.2.0/opam ["async" "lwt"]
./cstruct/cstruct.1.3.0/opam ["async" "lwt"]
./cstruct/cstruct.1.3.1/opam ["async" "lwt"]
./cstruct/cstruct.1.4.0/opam ["async" "lwt"]
./cstruct/cstruct.1.5.0/opam ["camlp4" "async" "lwt"]
./cstruct/cstruct.1.6.0/opam ["camlp4" "async" "lwt" "base-unix"]
./cstruct/cstruct.1.7.0/opam ["camlp4" "async" "lwt" "base-unix"]
./cstruct/cstruct.1.7.1/opam ["camlp4" "async" "lwt" "base-unix"]
./cstruct/cstruct.1.8.0/opam ["camlp4" "ppx_tools" "async" "lwt" "base-unix"]
./cstruct/cstruct.1.9.0/opam ["camlp4" "ppx_tools" "async" "lwt" "base-unix"]
./cstruct/cstruct.2.0.0/opam ["ppx_tools" "async" "lwt" "base-unix"]
./cstruct/cstruct.2.1.0/opam ["ppx_tools" "async" "lwt" "base-unix"]
./cstruct/cstruct.2.2.0/opam ["ppx_tools" "async" "lwt" "base-unix"]
./cstruct/cstruct.2.3.0/opam ["ppx_tools" "async" "lwt" "base-unix"]
./cstruct/cstruct.2.3.1/opam ["ppx_tools" "async" "lwt" "base-unix"]
./cstruct/cstruct.2.3.2/opam ["ppx_tools" "async" "lwt" "base-unix"]
./cstruct/cstruct.2.4.1/opam ["async" "lwt" "base-unix"]
./csv/csv.1.6/opam ["lwt"]
./d3/d3.0.1.0/opam ["lwt" {build}]
./debian-formats/debian-formats.0.1.1/opam [ "archive" "base-threads" "camlbz2" "fileutils" "lwt" "lwt-android" "oasis" "oasis-mirage" "ocurl" "pcre"]
./dns/dns.0.19.1/opam [ "async" "lwt" "mirage-profile" "cmdliner" "mirage-stack-lwt" "mirage-kv-lwt" "mirage-time-lwt" "duration" "io-page"]
./dns/dns.0.20.0/opam [ "async" "lwt" "mirage-profile" "cmdliner" "mirage-stack-lwt" "mirage-kv-lwt" "mirage-time-lwt" "duration"]
./dns/dns.0.20.1/opam [ "async" "lwt" "mirage-profile" "cmdliner" "mirage-stack-lwt" "mirage-kv-lwt" "mirage-time-lwt" "duration"]
./dns/dns.0.5.0/opam ["lwt" "mirage-net"]
./dns/dns.0.5.1/opam ["lwt" "mirage-net"]
./dns/dns.0.6.0/opam ["lwt" "mirage-net"]
./dnscurve/dnscurve.0.1.0/opam ["lwt"]
./dnscurve/dnscurve.0.2.0/opam ["lwt"]
./dnscurve/dnscurve.0.3.0/opam ["lwt"]
./exenum/exenum.0.7/opam ["lwt" "camlp4"]
./exenum/exenum.0.82.0/opam "lwt"
./exenum/exenum.0.84/opam "lwt"
./ezjsonm/ezjsonm.0.2.0/opam ["lwt"]
./ezjsonm/ezjsonm.0.3.0/opam ["lwt"]
./ezjsonm/ezjsonm.0.3.1/opam "lwt"
./ezjsonm/ezjsonm.0.4.0/opam "lwt"
./ezjsonm/ezjsonm.0.4.1/opam "lwt"
./ezjsonm/ezjsonm.0.4.2/opam ["lwt"]
./ezjsonm/ezjsonm.0.4.3/opam ["lwt"]
./faraday/faraday.0.1.0/opam ["async" "base-unix" "lwt"]
./faraday/faraday.0.2.0/opam ["async" "base-unix" "lwt"]
./future/future.0.1.0/opam ["async" "lwt"]
./future/future.0.2.0/opam ["async" "lwt"]
./hardcaml/hardcaml.1.2.0/opam ["ctypes" "ctypes-foreign" "lwt"]
./imap/imap.0.20.0/opam ["ssl" "lwt"]
./inotify/inotify.2.0/opam ["lwt"]
./inotify/inotify.2.1/opam ["lwt"]
./inotify/inotify.2.2/opam ["lwt"]
./inotify/inotify.2.3/opam ["lwt"]
./irc-client/irc-client.0.1.1/opam ["lwt"]
./irc-client/irc-client.0.1.2/opam ["lwt"]
./irc-client/irc-client.0.2.0/opam ["lwt"]
./irc-client/irc-client.0.2.1/opam ["lwt"]
./irc-client/irc-client.0.3.0/opam ["lwt"]
./irc-client/irc-client.0.3.1/opam ["lwt"]
./irc-client/irc-client.0.3.2/opam ["lwt"]
./irc-client/irc-client.0.4.0/opam ["base-unix" "lwt" "tls"]
./irc-client/irc-client.0.5.0/opam ["base-unix" "lwt" "tls"]
./irc-client/irc-client.0.5.1/opam ["base-unix" "lwt" "tls"]
./irc-client/irc-client.0.5.2/opam ["base-unix" "lwt" "tls"]
./irc-client/irc-client.0.5.4/opam ["base-unix" "lwt" "tls"]
./kafka/kafka.0.2/opam ["lwt"]
./logs-syslog/logs-syslog.0.0.1/opam ["lwt" "x509" "tls" "mirage-types" "cstruct" "ipaddr" "io-page"]
./logs-syslog/logs-syslog.0.0.2/opam ["lwt" "x509" "tls" "mirage-types" "cstruct" "ipaddr" "io-page"]
./logs-syslog/logs-syslog.0.1.0/opam [ "lwt" "x509" "tls" "cstruct" "mirage-kv-lwt" "mirage-console-lwt" "mirage-clock" "mirage-stack-lwt" "ipaddr"]
./logs/logs.0.5.0/opam ["js_of_ocaml" "fmt" "cmdliner" "lwt"]
./logs/logs.0.6.0/opam ["js_of_ocaml" "fmt" "cmdliner" "lwt"]
./logs/logs.0.6.1/opam ["js_of_ocaml" "fmt" "cmdliner" "lwt"]
./logs/logs.0.6.2/opam ["js_of_ocaml" "fmt" "cmdliner" "lwt"]
./markup/markup.0.5/opam ["lwt"]
./markup/markup.0.6/opam ["lwt"]
./markup/markup.0.7.1/opam ["lwt"]
./markup/markup.0.7.2/opam ["lwt"]
./markup/markup.0.7.3/opam ["lwt"]
./markup/markup.0.7.4/opam ["lwt"]
./markup/markup.0.7.5/opam ["lwt"]
./markup/markup.0.7.6/opam ["lwt"]
./markup/markup.0.7/opam ["lwt"]
./mirage-types/mirage-types.1.1.0/opam ["lwt" "cstruct" "io-page" "ipaddr"]
./mirage-types/mirage-types.1.1.1/opam ["lwt" "cstruct" "io-page" "ipaddr"]
./mirage-types/mirage-types.1.1.2/opam ["lwt" "cstruct" "io-page" "ipaddr"]
./mirage-types/mirage-types.1.1.3/opam ["lwt" "cstruct" "io-page" "ipaddr"]
./mirage-types/mirage-types.1.2.0/opam ["lwt" "cstruct" "io-page" "ipaddr"]
./mirage-types/mirage-types.2.0.0/opam ["lwt" "cstruct" "io-page" "ipaddr"]
./mirage-types/mirage-types.2.0.1/opam ["lwt" "cstruct" "io-page" "ipaddr"]
./mirage-types/mirage-types.2.1.0/opam ["lwt" "cstruct" "io-page" "ipaddr"]
./mirage-types/mirage-types.2.1.1/opam ["lwt" "cstruct" "io-page" "ipaddr"]
./mirage-types/mirage-types.2.2.0/opam ["lwt" "cstruct" "io-page" "ipaddr"]
./mirage-types/mirage-types.2.3.0/opam ["lwt" "cstruct" "io-page" "ipaddr"]
./mirage-types/mirage-types.2.5.1/opam ["lwt" "cstruct" "io-page" "ipaddr"]
./mirage-types/mirage-types.2.6.0/opam ["lwt" "cstruct" "io-page" "ipaddr"]
./mirage-types/mirage-types.2.8.0/opam ["lwt" "cstruct" "io-page" "ipaddr"]
./mongo/mongo.0.67.0/opam ["lwt"]
./mongo/mongo.0.67.1/opam ["lwt"]
./mongo/mongo.0.67.2/opam ["lwt"]
./nanomsg/nanomsg.1.0/opam ["lwt" "ounit"]
./nocrypto/nocrypto.0.4.0/opam ["lwt"]
./nocrypto/nocrypto.0.5.0/opam ["lwt"]
./nocrypto/nocrypto.0.5.1/opam ["lwt"]
./nocrypto/nocrypto.0.5.2/opam ["lwt"]
./nocrypto/nocrypto.0.5.3/opam ["lwt"]
./notty/notty.0.1.0/opam ["lwt"]
./notty/notty.0.1.1/opam ["lwt"]
./notty/notty.0.2.0/opam ["lwt"]
./notty/notty.0.2.1/opam ["lwt"]
./ocurl/ocurl.0.7.0/opam ["lwt"]
./ocurl/ocurl.0.7.1/opam ["lwt"]
./ocurl/ocurl.0.7.10/opam ["lwt"]
./ocurl/ocurl.0.7.2/opam ["lwt"]
./ocurl/ocurl.0.7.5/opam ["lwt"]
./ocurl/ocurl.0.7.6/opam ["lwt"]
./ocurl/ocurl.0.7.7/opam ["lwt"]
./ocurl/ocurl.0.7.8/opam ["lwt"]
./ocurl/ocurl.0.7.9/opam ["lwt"]
./ocurl/ocurl.0.8.0/opam ["lwt"]
./ocurl/ocurl.0.8.1/opam ["lwt"]
./openflow/openflow.0.2.0/opam ["lwt" "quickcheck"]
./osc/osc.0.1.0/opam ["lwt"]
./osc/osc.0.1.1/opam ["lwt"]
./osc/osc.0.1.4/opam ["base-unix" "lwt"]
./osx-acl/osx-acl.0.1.0/opam "lwt"
./osx-attr/osx-attr.0.1.0/opam "lwt"
./osx-attr/osx-attr.0.1.1/opam "lwt"
./osx-attr/osx-attr.0.2.0/opam "lwt"
./osx-attr/osx-attr.0.3.0/opam "lwt"
./osx-cf/osx-cf.0.1.0/opam ["lwt" "base-threads"]
./osx-cf/osx-cf.0.1.1/opam ["lwt" "base-threads"]
./osx-fsevents/osx-fsevents.0.1.0/opam "lwt"
./osx-fsevents/osx-fsevents.0.1.1/opam "lwt"
./osx-fsevents/osx-fsevents.0.1.2/opam "lwt"
./osx-fsevents/osx-fsevents.0.2.0/opam "lwt"
./osx-membership/osx-membership.0.1.0/opam "lwt"
./osx-mount/osx-mount.0.1.0/opam "lwt"
./osx-mount/osx-mount.0.1.1/opam "lwt"
./osx-xattr/osx-xattr.0.1.0/opam "lwt"
./osx-xattr/osx-xattr.0.2.0/opam "lwt"
./osx-xattr/osx-xattr.0.3.0/opam "lwt"
./raygun4ocaml/raygun4ocaml.0.1.0/opam ["cohttp" "lwt"]
./rdf/rdf.0.10.0/opam ["mysql" "postgresql" "cohttp" "lwt"]
./rdf/rdf.0.11.0/opam ["mysql" "postgresql" "cohttp" "lwt"]
./rdf/rdf.0.9.0/opam ["mysql" "postgresql" "cohttp" "lwt"]
./redis/redis.0.2.0/opam ["lwt"]
./redis/redis.0.2.1/opam ["lwt"]
./redis/redis.0.2.2/opam ["lwt"]
./redis/redis.0.2.3/opam ["lwt"]
./redis/redis.0.3.0/opam "lwt"
./redis/redis.0.3.1/opam "lwt"
./redis/redis.0.3.2/opam "lwt"
./redis/redis.0.3.3/opam "lwt"
./sendmsg/sendmsg.0.0.2/opam ["lwt"]
./session/session.0.1.0/opam ["async" "base-threads" "cohttp" "lwt" "postgresql" "webmachine"]
./session/session.0.2.0/opam ["async" "base-threads" "cohttp" "lwt" "postgresql" "webmachine"]
./session/session.0.3.0/opam ["async" "base-threads" "cohttp" "lwt" "postgresql" "redis" "webmachine"]
./session/session.0.3.2/opam ["async" "base-threads" "cohttp" "postgresql" "lwt" "redis-lwt" "webmachine"]
./shcaml/shcaml.0.2.0/opam ["lwt" "base-unix"]
./shcaml/shcaml.0.2.1/opam ["lwt" "base-unix"]
./smtp/smtp.0.2/opam ["lwt" "base-unix"]
./smtp/smtp.0.3/opam ["lwt" "base-unix"]
./stog/stog.0.13.0/opam ["js_of_ocaml" "xmldiff" "lwt" "websocket" "cstruct" "crunch"]
./stog/stog.0.14.0/opam ["js_of_ocaml" "xmldiff" "lwt" "websocket" "cstruct" "crunch" "ojs-base"]
./stog/stog.0.15.0/opam ["js_of_ocaml" "xmldiff" "lwt" "websocket" "ojs-base" "sha"]
./tar-format/tar-format.0.2.0/opam ["lwt"]
./tar-format/tar-format.0.2.1/opam ["lwt"]
./tar-format/tar-format.0.3.0/opam ["lwt"]
./tar-format/tar-format.0.4.0/opam ["lwt" "mirage-types"]
./tar-format/tar-format.0.4.1/opam ["lwt" "mirage-types-lwt"]
./tar-format/tar-format.0.4.2/opam ["lwt" "mirage-types-lwt"]
./tar-format/tar-format.0.5.0/opam ["lwt" "mirage-types-lwt"]
./tar-format/tar-format.0.5.1/opam ["lwt" "mirage-types-lwt"]
./tar-format/tar-format.0.6.0/opam ["lwt" "mirage-types-lwt"]
./tar-format/tar-format.0.6.1/opam ["lwt" "mirage-types-lwt"]
./tar-format/tar-format.0.7.1/opam ["lwt" "mirage-types-lwt" "mirage-block" "mirage-block-lwt" "io-page"]
./tls/tls.0.1.0/opam ["lwt" "mirage-types-lwt"]
./tls/tls.0.2.0/opam ["lwt" "mirage-types-lwt"]
./tls/tls.0.3.0/opam ["lwt" "mirage-types-lwt"]
./tls/tls.0.4.0/opam ["lwt" "mirage-types-lwt"]
./tls/tls.0.5.0/opam ["lwt" "mirage-types-lwt"]
./tls/tls.0.6.0/opam ["lwt" "mirage-types-lwt"]
./tls/tls.0.7.0/opam ["lwt" "mirage-types-lwt"]
./tls/tls.0.7.1/opam ["lwt" "mirage-types-lwt"]
./tls/tls.0.8.0/opam ["lwt" "mirage-flow-lwt" "mirage-kv-lwt" "mirage-clock"]
./tls/tls.0.9.0/opam [ "lwt" "mirage-flow-lwt" "mirage-kv-lwt" "mirage-clock" "ptime" "astring" {test}]
./tls/tls.0.9.1/opam [ "lwt" "mirage-flow-lwt" "mirage-kv-lwt" "mirage-clock" "ptime" "astring" {test}]
./unix-dirent/unix-dirent.0.3.0/opam ["base-unix" "unix-type-representations" "ctypes" "unix-errno" "lwt"]
./unix-dirent/unix-dirent.0.3.1/opam ["base-unix" "unix-type-representations" "ctypes" "unix-errno" "lwt"]
./unix-dirent/unix-dirent.0.3.2/opam ["base-unix" "unix-type-representations" "ctypes" "unix-errno" "lwt"]
./unix-dirent/unix-dirent.0.3.3/opam ["base-unix" "unix-type-representations" "ctypes" "unix-errno" "lwt"]
./unix-dirent/unix-dirent.0.3.4/opam ["base-unix" "unix-type-representations" "ctypes" "unix-errno" "lwt"]
./unix-dirent/unix-dirent.0.3.5/opam ["base-unix" "unix-type-representations" "ctypes" "unix-errno" "lwt"]
./unix-fcntl/unix-fcntl.0.3.0/opam ["lwt" "base-threads"]
./unix-fcntl/unix-fcntl.0.3.1/opam ["lwt" "base-threads"]
./unix-fcntl/unix-fcntl.0.3.2/opam ["lwt" "base-threads"]
./unix-fcntl/unix-fcntl.0.3.3/opam ["lwt" "base-threads"]
./unix-fcntl/unix-fcntl.0.3.4/opam ["lwt" "base-threads"]
./unix-fcntl/unix-fcntl.0.3.5/opam ["lwt" "base-threads"]
./unix-sys-stat/unix-sys-stat.0.4.0/opam ["base-unix" "lwt"]
./unix-sys-stat/unix-sys-stat.0.5.0/opam ["base-unix" "lwt"]
./unix-sys-stat/unix-sys-stat.0.5.1/opam ["base-unix" "lwt"]
./unix-sys-stat/unix-sys-stat.0.5.2/opam ["base-unix" "lwt"]
./unix-unistd/unix-unistd.0.3.0/opam [ "ctypes" "lwt" "unix-type-representations" "posix-types" "unix-errno" "base-unix"]
./unix-unistd/unix-unistd.0.3.1/opam [ "ctypes" "lwt" "unix-type-representations" "posix-types" "unix-errno" "base-unix"]
./unix-unistd/unix-unistd.0.4.0/opam [ "ctypes" "lwt" "unix-type-representations" "posix-types" "unix-errno" "base-unix"]
./websocket/websocket.2.3/opam ["async" "async_ssl" "lwt" "nocrypto" "cryptokit"]
./websocket/websocket.2.4/opam ["async" "async_ssl" "lwt" "nocrypto" "cryptokit"]
./websocket/websocket.2.5/opam ["async" "async_ssl" "lwt" "nocrypto" "cryptokit"]
./websocket/websocket.2.6/opam ["async" "async_ssl" "lwt" "nocrypto" "cryptokit"]
./websocket/websocket.2.7/opam ["async" "async_ssl" "lwt" "nocrypto" "cryptokit"]
./websocket/websocket.2.8/opam ["async" "async_ssl" "lwt" "nocrypto" "cryptokit"]
./websocket/websocket.2.9/opam ["async" "async_ssl" "lwt" "nocrypto" "cryptokit"]

@kit-ty-kate
Copy link
Member

@hannesm fixed by avsm/mirage-ci#23 and running live on the ARM64 CI. Sorry for that.

@kit-ty-kate
Copy link
Member

Looks like ocurl, mongo, markup, logs-syslog, irc-client, inotify, faraday-lwt (?), exenum, csv, containers & biocaml need constraints as well (see arm64 ci for more details)

aantron added a commit to aantron/opam-repository-fork that referenced this pull request Apr 9, 2018
@aantron
Copy link
Contributor Author

aantron commented Apr 9, 2018

@kit-ty-kate Thanks for the depopts build, it is very useful :) I've added new constraints in #11741.

@kit-ty-kate
Copy link
Member

Revdeps are rebuilding on the ARM64 CI.

@aantron
Copy link
Contributor Author

aantron commented Apr 9, 2018

@kit-ty-kate Shouldn't I rebase this PR to pick everything up? Or it doesn't work that way?

@kit-ty-kate
Copy link
Member

No it's fine for the ARM64 CI as it merges automatically with master, and the x86_64 CI doesn't test the depopts.

@aantron
Copy link
Contributor Author

aantron commented Apr 9, 2018

Several builds seem to have failed with No space left on device, e.g. https://arm64.ci.ocamllabs.io/log/saved/docker-run-508421ae48926a3b4ffaedd669e6b5c4/cde7e0ce5e6dbb8040ee81d51486b40a764e60c7.

I think we already know that these packages are properly constrained from earlier builds, but I wanted to point it out.

@kit-ty-kate
Copy link
Member

oh god, not again! :( I'll try to fix it for good tomorrow. Thx for pointing it out. Good night \o

@aantron
Copy link
Contributor Author

aantron commented Apr 10, 2018

Okay, awaiting ping :)

@kit-ty-kate
Copy link
Member

Looks good. Most of the failures come from the fact that camlcity.org is down (ocamlnet cannot be download) so let's merge this. Thanks a lot !! :)

@kit-ty-kate kit-ty-kate merged commit 7c92e64 into ocaml:master Apr 10, 2018
@aantron
Copy link
Contributor Author

aantron commented Apr 10, 2018

Thank you!

@aantron
Copy link
Contributor Author

aantron commented Apr 10, 2018

Maintainers! You are ccd below because your opam package has been constrained with "lwt" < "4.0.0" due to an incompatibility with the latest Lwt release.

Please see below for details. All the fixes are trivial, and involve slightly changing dependency names due to the reorganization of Lwt.

Each incompatible package name is linked to a CI log displaying the error from building against Lwt 4.0.0.



The following packages depend on ocamlfind package lwt.ppx, which has been replaced by lwt_ppx, available from opam package also named lwt_ppx (ocsigen/lwt#338):

devkit
gdbprofiler
i3ipc
jupyter-kernel
multipart-form-data
qfs
rawlink
socket-daemon
sqlexpr

To fix, change lwt.ppx to lwt_ppx, and add a dependency on any version of lwt_ppx to your opam files. I constrained existing releases of the above packages with "lwt" < "4.0.0", but new releases that depend on lwt_ppx don't need any constraint.

cc @Armael @c-cube @copy @cyberhuman @emillon @haesbaert @mfp @ygrek @zoggy



The following packages depend on ocamlfind package lwt.log, which has been replaced by ocamlfind package lwt_log, which is available in opam package also named lwt_log (ocsigen/lwt#484):

amqp-client-lwt
caqti-lwt
flowtype

The easy fix is to exchange lwt.log for lwt_log, and add a dependency on any version of lwt_log to your opam files. I have constrained the existing releases of the above packages with "lwt" < "4.0.0", but new releases that depend on lwt_log don't need any constraint.

Since Lwt_log is deprecated, in the long term, it is recommended to use the logs library instead, which includes a module Logs_lwt.

cc @andersfugmann @gabelevi @paurkedal



The following packages expect Lwt_log to be in lwt.unix, but it is now only available from separate opam and ocamlfind package lwt_log (ocsigen/lwt#484):

cohttp-lwt-unix
kinetic-client
lambda-term
lwt-parallel
nbd
otetris
shared-block-ring
skkserv-lite
slacko

The easy fix is to add an opam dependency on any version of lwt_log to your opam file, and depend on lwt_log in jbuild or your other build files. I have constrained existing releases of the above packages with "lwt" < "4.0.0", but new releases that depend on lwt_log don't need any constraint.

cc @anyakichi @avsm @diml @djs55 @gaborigloi @ivg @Leonidas-from-XIV @rgrinberg @toolslive @vzaliva



The following packages depend on ocamlfind package lwt.preemptive, which is merged into lwt.unix since Lwt 3.2.0 (ocsigen/lwt#487):

0install
bistro
camltc
hvsock
jupyter-kernel
maki
ocsigenserver
ordma
pvem_lwt_unix
session-postgresql-lwt
unix-sys-stat
vhd-format-lwt

To fix this, replace lwt.preemptive by lwt.unix in the build system, or, where lwt.unix is already listed as a dependency, only delete lwt.preemptive. I have constrained existing releases of the above packages with "lwt" < "4.0.0". New releases that use Lwt_preemptive through lwt.unix should have "lwt" >= "3.2.0".

cc @c-cube @djs55 @dsheets @jonludlam @pveber @seliopou @smondet @talex5 @toolslive @vasilisp



The following packages use modules from lwt.unix, but tell their build system that they depend only on ocamlfind package lwt (ocsigen/lwt#482):

biocaml
exenum
faraday-lwt-unix
github-hooks
ipv6-multicast
logs-syslog
qcow-format
smtp
tube

Before Lwt 4.0.0, Lwt_unix and Lwt were installed in the same installation directory, so depending on lwt was sufficient for ocamlc/ocamlopt to be able to "accidentally" find the files of lwt.unix in some cases. This "hid" the incorrect dependency.

To fix this, add the missing lwt.unix dependency in the appropriate build file(s). I have constrained existing releases of the above packages with "lwt" < "4.0.0", but their new releases with the lwt.unix dependency do not need any constraint.

cc @agarwal @alinpopa @djs55 @dsheets @hannesm @lebotlan @pveber @samoht @seliopou @vbmithr

Leonidas-from-XIV added a commit to Leonidas-from-XIV/opam-repository that referenced this pull request Apr 10, 2018
According to the nice comment by @aantron in
ocaml#11708 (comment)
slacko fails because it expects lwt.log to exist without depending on
the lwt_log message.

This came to a surprise to me since Slacko does not do any logging at
all, so constraining it does not seem to be useful.

Looking in the CI log
https://ci.ocamllabs.io/log/saved/docker-run-e97b0a51ae9b04229ade4297103e6c79/e87df7e1b52e41541b179ab4024a538bfd0b1484
I can see that the error came from a module in "lwt/cohttp_lwt_unix.ml"
which happens when building cohttp.0.21.1.

Therefore I would like to correct the dependency here. If any version of
cohttp < 0.99 would be compatible with Lwt 4 (e.g. if someone does a
maintenance release), so would slacko.
@pveber
Copy link
Contributor

pveber commented Apr 11, 2018

Fixed for bistro and biocaml

@emillon
Copy link
Contributor

emillon commented Apr 11, 2018

Congrats on shipping! I just pushed a new version of multipart-form-data compatible with 4.0.0.

@vzaliva
Copy link
Contributor

vzaliva commented Apr 12, 2018 via email

@hannesm
Copy link
Member

hannesm commented Apr 13, 2018

it seems that js_of_ocaml also has a build failure with lwt 4.0.0 (see mirage-www travis output at https://travis-ci.org/mirage/mirage-www/jobs/365973861) //cc @hhugo

#=== ERROR while installing js_of_ocaml.2.8.4 =================================#
# opam-version 1.2.2
# os           linux
# command      make build WITH_ASYNC=NO WITH_PPX_DRIVER=NO
# path         /home/travis/.opam/4.04.2/build/js_of_ocaml.2.8.4
# compiler     4.04.2
# exit-code    2
# env-file     /home/travis/.opam/4.04.2/build/js_of_ocaml.2.8.4/js_of_ocaml-24121-38d54f.env
# stdout-file  /home/travis/.opam/4.04.2/build/js_of_ocaml.2.8.4/js_of_ocaml-24121-38d54f.out
# stderr-file  /home/travis/.opam/4.04.2/build/js_of_ocaml.2.8.4/js_of_ocaml-24121-38d54f.err
### stdout ###
# [...]
# (echo "#include <stdlib.h>"; \
# 	 echo "#include <stdio.h>"; \
# 	 echo "#define D(f) void f () { fprintf(stderr, \"Unimplemented Javascript primitive %s!\\\\n\", #f); exit(1); }"; \
# 	 (sed -n -e 's/.*external.*"\([^"%]*\)".*/D(\1)/p' js.ml dom.ml typed_array.ml dom_html.ml dom_svg.ml file.ml dom_events.ml firebug.ml lwt_js.ml sys_js.ml regexp.ml cSS.ml url.ml form.ml xmlHttpRequest.ml lwt_js_events.ml json.ml jsonp.ml webGL.ml webSockets.ml keycode.ml eventSource.ml geolocation.ml jstable.ml mutationObserver.ml worker.ml js_of_ocaml.ml | \
# 	  sort | uniq)) \
#         > stubs.c
# ocamlfind ocamlc     -w +A-4-7-9-37-38-41-44-45 -package lwt -c stubs.c
# ocamlmklib -o js_of_ocaml lib_version.cmo js.cmo dom.cmo typed_array.cmo dom_html.cmo dom_svg.cmo file.cmo dom_events.cmo firebug.cmo lwt_js.cmo sys_js.cmo regexp.cmo cSS.cmo url.cmo form.cmo xmlHttpRequest.cmo lwt_js_events.cmo json.cmo jsonp.cmo webGL.cmo webSockets.cmo keycode.cmo eventSource.cmo geolocation.cmo jstable.cmo mutationObserver.cmo worker.cmo js_of_ocaml.cmo stubs.o
# ocamlfind ocamlc     -w +A-4-7-9-37-38-41-44-45 -safe-string -package lwt,lwt.log -I . -I log log/lwt_log_js.mli -o log/lwt_log_js.cmi
# make[1]: Leaving directory `/home/travis/.opam/4.04.2/build/js_of_ocaml.2.8.4/lib'
### stderr ###
# [...]
# findlib: [WARNING] Interface topdirs.cmi occurs in several directories: /home/travis/.opam/4.04.2/lib/ocaml, /home/travis/.opam/4.04.2/lib/ocaml/compiler-libs
# findlib: [WARNING] Interface topdirs.cmi occurs in several directories: /home/travis/.opam/4.04.2/lib/ocaml, /home/travis/.opam/4.04.2/lib/ocaml/compiler-libs
# findlib: [WARNING] Interface topdirs.cmi occurs in several directories: /home/travis/.opam/4.04.2/lib/ocaml, /home/travis/.opam/4.04.2/lib/ocaml/compiler-libs
# findlib: [WARNING] Interface topdirs.cmi occurs in several directories: /home/travis/.opam/4.04.2/lib/ocaml, /home/travis/.opam/4.04.2/lib/ocaml/compiler-libs
# File "syntax/pa_js.ml", line 43, characters 7-23:
# Warning 3: deprecated: String.lowercase
# Use String.lowercase_ascii instead.
# ocamlfind: Package `lwt.log' not found
# make[1]: *** [log/lwt_log_js.cmi] Error 2
# make: *** [library] Error 2

@aantron
Copy link
Contributor Author

aantron commented Apr 13, 2018

@hhugo js_of_ocaml likely needs lwt.log replaced by lwt_log.core rather than just lwt_log.

@aantron
Copy link
Contributor Author

aantron commented Apr 13, 2018

I'll send a PR with the constraints for existing versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants