Skip to content

Conversation

@raphael-proust
Copy link
Contributor

This pull-request concerns:

  • lwt.6.0.0-beta01: Promises and event-driven I/O
  • lwt_direct.6.0.0-beta01: Direct-style control-flow and await for Lwt
  • lwt_ppx.6.0.0-beta01: PPX syntax for Lwt, providing something similar to async/await from JavaScript
  • lwt_runtime_events.6.0.0-beta01: Emit runtime events to trace the execution of Lwt programs


🐫 Pull-request generated by opam-publish v2.5.1

@mseri
Copy link
Member

mseri commented Nov 23, 2025

There are new incompatibilities, for instance many failures in revdeps of the type of

# (cd _build/default && /home/opam/.opam/4.14/bin/ocamlopt.opt -w -40 -g -I src/debug_rpc/.debug_rpc.objs/byte -I src/debug_rpc/.debug_rpc.objs/native -I /home/opam/.opam/4.14/lib/angstrom -I /home/opam/.opam/4.14/lib/angstrom-lwt-unix -I /home/opam/.opam/4.14/lib/base -I /home/opam/.opam/4.14/lib/base/base_internalhash_types -I /home/opam/.opam/4.14/lib/base/caml -I /home/opam/.opam/4.14/lib/base/shadow_stdlib -I /home/opam/.opam/4.14/lib/bigstringaf -I /home/opam/.opam/4.14/lib/bytes -I /home/opam/.opam/4.14/lib/jane-street-headers -I /home/opam/.opam/4.14/lib/logs -I /home/opam/.opam/4.14/lib/logs/lwt -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 /home/opam/.opam/4.14/lib/ppx_compare/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_deriving/runtime -I /home/opam/.opam/4.14/lib/ppx_deriving_yojson/runtime -I /home/opam/.opam/4.14/lib/ppx_enumerate/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_expect/collector -I /home/opam/.opam/4.14/lib/ppx_expect/common -I /home/opam/.opam/4.14/lib/ppx_expect/config -I /home/opam/.opam/4.14/lib/ppx_expect/config_types -I /home/opam/.opam/4.14/lib/ppx_hash/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_here/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_inline_test/config -I /home/opam/.opam/4.14/lib/ppx_inline_test/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_sexp_conv/runtime-lib -I /home/opam/.opam/4.14/lib/react -I /home/opam/.opam/4.14/lib/sexplib0 -I /home/opam/.opam/4.14/lib/time_now -I /home/opam/.opam/4.14/lib/yojson -I src/debug_protocol/.debug_protocol.objs/byte -I src/debug_protocol/.debug_protocol.objs/native -intf-suffix .ml -no-alias-deps -o src/debug_rpc/.debug_rpc.objs/native/debug_rpc.cmx -c -impl src/debug_rpc/debug_rpc.pp.ml)
# File "src/debug_rpc/debug_rpc.ml", lines 30-35, characters 2-53:
# 30 | ..let%lwt () = Lwt_io.write rpc.out "Content-Length: " in
# 31 |   let%lwt () = Lwt_io.write rpc.out (string_of_int (String.length raw_msg)) in
# 32 |   let%lwt () = Lwt_io.write rpc.out "\r\n\r\n" in
# 33 |   let%lwt () = Lwt_io.write rpc.out raw_msg in
# 34 |   let%lwt () = Lwt_io.flush rpc.out in
# 35 |   Log.debug (fun m -> m "Message sent -- %s" raw_msg)
# Error: This expression should not be a function, the expected type is string

A failure in lwt-ppx itself, possibly related to some dependency

#=== ERROR while compiling lwt_ppx.6.0.0-beta01 ===============================#
# context              2.5.0~alpha1 | linux/x86_64 | ocaml-base-compiler.4.08.1 | pinned(https://github.com/ocsigen/lwt/archive/refs/tags/6.0.0-beta01.tar.gz)
# path                 ~/.opam/4.08/.opam-switch/build/lwt_ppx.6.0.0-beta01
# command              ~/.opam/opam-init/hooks/sandbox.sh build dune build -p lwt_ppx -j 71 @install @runtest
# exit-code            1
# env-file             ~/.opam/log/lwt_ppx-7-fec98b.env
# output-file          ~/.opam/log/lwt_ppx-7-fec98b.out
### output ###
# (cd _build/default && /home/opam/.opam/4.08/bin/ocamlopt.opt -w -40 -g -I test/ppx/.main.eobjs/byte -I test/ppx/.main.eobjs/native -I /home/opam/.opam/4.08/lib/bytes -I /home/opam/.opam/4.08/lib/lwt -I /home/opam/.opam/4.08/lib/lwt/unix -I /home/opam/.opam/4.08/lib/ocaml/threads -I /home/opam/.opam/4.08/lib/ocplib-endian -I /home/opam/.opam/4.08/lib/ocplib-endian/bigstring -I test/.lwttester.objs/byte -I test/.lwttester.objs/native -intf-suffix .ml -no-alias-deps -o test/ppx/.main.eobjs/native/dune__exe__Main.cmx -c -impl test/ppx/main.pp.ml)
# File "test/ppx/main.ml", line 18, characters 7-56:
# 18 | .......let%lwt x = return 3 in
# 19 |        return (x + 1 = 4)
# Error: This function has type
#          (exn -> exn) -> 'a Lwt.t -> ('a -> 'b Lwt.t) -> 'b Lwt.t
#        It is applied to too many arguments; maybe you forgot a `;'.

and some missing bounds, e.g. in the tests

File "src/zip.ml", lines 277-285, characters 6-9:
# 277 | ......let%lwt _unconsumed, result = Angstrom_lwt_unix.parse_many
# 278 |           (parser cb)
# 279 |           (fun x -> push x; Lwt.return_unit)
# 280 |           input_channel
# 281 |       in
# 282 |       begin match result with
# 283 |       | Ok () -> Lwt.return_unit
# 284 |       | Error err -> failwithf "Syntax Error: %s" err ()
# 285 |       end
# Error: This expression should not be a function, the expected type is string

@raphael-proust
Copy link
Contributor Author

pushed some constraints to attempts to fix points 1 and 2

will investigate point 3

@raphael-proust
Copy link
Contributor Author

There are a bunch of failures. Most seem to be stale pre-existing errors. I'm not going to fix those rn.

  • tezt is incompatible with lwt6 because of the change in the type of notifications, I pushed new bounds. ping @rbardou
  • moonpool-lwt is incompatible for the same reason, pushed bounds. ping @c-cube

some of the things I'm not sure about
for the ones i'm unsure i'll compare with health check (but can't seem to access it rn)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants