Skip to content

Conversation

raphael-proust
Copy link
Collaborator

No description provided.

c-cube and others added 24 commits July 11, 2025 22:07
* simon/lwt-direct:
  rename `run` to `spawn`
* domains:
  ocaml.4.14 compat (via domain_shims)
  remove test-only primitive
  more refs become atomics
  restore some unix tests
  some fixes and some deactivate tests
  don't double register implicitly
  replace `run_in_main` with `run_in_domain` (and misc imporvements)
  make storage a domain-local thing, allow cross domain cancel
  a bit mroe doc
  don't auto-init domains on main.run
  bump dependency to 5.3
  tests: terser output, relevant exit codes
  better domainworker test
  multidomain tests moving promises and resolvers across domains
  addiiotnal multidomain test
  shorter basic multidomain test output
  allow multiple schduler to run in parallel
known bug: one of the direct-style test does not terminate, hangs on
`Lwt_io.close`
* master: (26 commits)
  import recent CHANGES
  dune-project fixes from 5.[89].1
  make fPIC/pthread flags unix-specific
  workflow needs only to not really be only
  fix typo in dummy package name
  warning suppression that's supported by more compiler versions
  suppress warning
  fix unix compilation
  restore lwt_ppx compatible with ocaml4
  improve maintainability of github action
  only do ppx with 5.1+
  Bump actions/checkout from 4 to 5
  changes go into 5.10
  trying to force the CI's hand installing the right version of let_ppx
  changelog
  add doc for set_tcp_nodelay in Lwt_io
  rollback some cosmetic-only changes
  more docs
  Update src/unix/lwt_io.mli
  _
  ...
@raphael-proust
Copy link
Collaborator Author

Compatibility issues:

  • Lwt_preemptive.run_in_main replaced by Lwt_preemptive.run_in_domain.

    • Should we still provide a run_in_main which makes assumption about a default domain? The main purpose would be to allow old applications to keep working in a single-domain way. And for that it'd make sense. Although it's worrying that some code written for multi-domain Lwt specifically might be using run_in_main accidentally. Maybe a runtime check that crashes run_in_main if there are more than one scheduler running or some other such condition.
  • Lwt_unix.*notification* now take an additional Domain.id parameter. Same suggestion as Lwt_preemptive.run.

    • Should we offer automatic migration (ocamlmig or other) to add Domain.self as a parameter?
  • Lwt_unix.run removal: it's been deprecated for a long time in favour of Lwt_main.run (it can't be kept because it'd create circular dependencies.

    • Should we offer automatic migration?
  • Lwt_engine.fake_event removal: ACTUALLY LETS RESTORE IT

  • Lwt_main.*hooks* removal: deprecated, exposed inernal implementation detail which is incompatible with new implementation. Should be replaced by uses of corresponding submodules.

    • Should we offer automatic migration?

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.

2 participants