Conversation
6.1 changes engines which lwt_eio uses
because it uses a long-deprecated now-removed Lwt_main.enter_iter_hooks
because it uses long-deprecated now-removed Lwt_main.exit_hooks
notifications is now abstract type rather than int (in lwt<6)
notifications have abstract types ratehr than int (in lwt<6)
notifications have abstract type rather than int (in lwt<6)
|
broad categories of incompatibilities:
|
because of Lwt_main.enter_iter_hooks
because of Lwt_main.exit_hooks
because of Lwt_unix.notification (is not int anymore)
because Lwt_unix.run (use Lwt_main.run instead)
|
because tests use `Lwt_unix.retained` which is internals only and has been removed
|
idk what to do about eio: I think it's ok to use eio_lwt with lwt6, but the tests do fail so i'll think about what's the right thing to do |
packages/lwt_log/lwt_log.1.1.1/opam
Outdated
| "ocaml" {< "5.0"} | ||
| "dune" {>= "1.0"} | ||
| "lwt" {>= "4.0.0" & < "6~"} | ||
| "lwt" {>= "4.0.0" } |
There was a problem hiding this comment.
With lwt.6.1.1 there are 440 occurrences of this kind of error:
https://opam.ci.ocaml.org/github/ocaml/opam-repository/commit/3af7d0a25910b3d20c909e559efb484eb6a78128/variant/compilers,4.14,lambda-term.3.3.0
#=== ERROR while compiling lwt_log.1.1.1 ======================================#
# context 2.5.0 | linux/x86_64 | ocaml-base-compiler.4.14.2 | file:///home/opam/opam-repository
# path ~/.opam/4.14/.opam-switch/build/lwt_log.1.1.1
# command ~/.opam/opam-init/hooks/sandbox.sh build dune build -p lwt_log -j 71
# exit-code 1
# env-file ~/.opam/log/lwt_log-7-afc58f.env
# output-file ~/.opam/log/lwt_log-7-afc58f.out
### output ###
# (cd _build/default && /home/opam/.opam/4.14/bin/ocamlc.opt -w -40 -w +A -g -bin-annot -I src/unix/.lwt_log.objs/byte -I /home/opam/.opam/4.14/lib/bytes -I /home/opam/.opam/4.14/lib/lwt -I /home/opam/.opam/4.14/lib/lwt/unix -I /home/opam/.opam/4.14/lib/ocaml/threads -I /home/opam/.opam/4.14/lib/ocplib-endian -I /home/opam/.opam/4.14/lib/ocplib-endian/bigstring -I src/core/.lwt_log_core.objs/byte -intf-suffix .ml -no-alias-deps -o src/unix/.lwt_log.objs/byte/lwt_daemon.cmo -c -impl src/unix/lwt_daemon.ml)
# File "src/unix/lwt_daemon.ml", line 64, characters 49-68:
# 64 | Lwt_sequence.iter_node_l Lwt_sequence.remove Lwt_main.exit_hooks [@ocaml.warning "-3"];
# ^^^^^^^^^^^^^^^^^^^
# Error: Unbound value Lwt_main.exit_hooks
# (cd _build/default && /home/opam/.opam/4.14/bin/ocamlopt.opt -w -40 -w +A -g -I src/unix/.lwt_log.objs/byte -I src/unix/.lwt_log.objs/native -I /home/opam/.opam/4.14/lib/bytes -I /home/opam/.opam/4.14/lib/lwt -I /home/opam/.opam/4.14/lib/lwt/unix -I /home/opam/.opam/4.14/lib/ocaml/threads -I /home/opam/.opam/4.14/lib/ocplib-endian -I /home/opam/.opam/4.14/lib/ocplib-endian/bigstring -I src/core/.lwt_log_core.objs/byte -I src/core/.lwt_log_core.objs/native -intf-suffix .ml -no-alias-deps -o src/unix/.lwt_log.objs/native/lwt_daemon.cmx -c -impl src/unix/lwt_daemon.ml)
# File "src/unix/lwt_daemon.ml", line 64, characters 49-68:
# 64 | Lwt_sequence.iter_node_l Lwt_sequence.remove Lwt_main.exit_hooks [@ocaml.warning "-3"];
# ^^^^^^^^^^^^^^^^^^^
# Error: Unbound value Lwt_main.exit_hooks
Is it a good idea to lift this upper bound - or are extra conflicts needed? 🤔
|
note that to have a real sense of which packages actually need lwt5 vs not, you would need to temporarily modify the lwt.6.1.1 package to force its revdeps to build. Otherwise some package might still choose lwt5 based on other factors and you'll miss that data. |
|
but overall this is probably more of a job for opam-health-check-ng. I can help you set it up locally if you need. |
|
thanks for the help and the suggestions and all I'll use |
cram tests fail because scheduling has changed
|
in the case of the broken
i'll just remove the tests altogether methinks |
let the CI run, I'll add constraints if needs arises