-
Notifications
You must be signed in to change notification settings - Fork 172
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 should depend on conf-libev #871
Comments
Several services have failed due to Lwt using `select` by default. Ideally this should be fixed in Lwt (see ocsigen/lwt#871), but for now at least fix it for all OCurrent pipelines.
I'm in favour of making this change as it's been an extremely common source of errors in using Lwt_unix in production over the years. @raphael-proust ? |
I completely agree with your opinions. Let's do it. |
The main issue I see with that is for project using Lwt without Unix. Basically, the projects using js_of_ocaml will have this additional enforced dependency that they don't need.
We could also ignore this and assume that everyone can install libev even if they don't intend to use it, but I don't know that it's the best course of action. |
Why would |
Oh yes, I didnt meant these names literally and @aantron Do you know the historical reason why Lwt has an optional As an interesting data-point, the set |
Lwt was historically a single opam package with many depopts, most of which I factored out into their own repositories or at least packages when I was maintaining Lwt. AFAIK there is no good reason for this, it's just how things were done "back in the day" (and way before I started working on Lwt). It's likely a holdover from the "./configure" style of installation that was around before opam. I assume that many packages will break if this is changed, especially if the "bigger" package is the one that gets renamed as @talex5 suggests. The safer way to do this is to essentially factor the core out of The libev issue might be made obsolete by libuv port, though there is no progress on that yet. |
When next I work on Lwt, I will attempt to remove the optional dependency. I will probably attempt to have
I will also attempt to have
This would be to ease transition and it would be intended to either be removed or more likely made to depend on both |
Lwt defaults to using
select
, which eventually fails on most systems with:This tends to result in services that pass their tests, but fail unpredictably in production, once FDs over
FD_SETSIZE
start being used.Can we just put
"conf-libev" {os != "win32"}
in Lwt's opam file to fix this everywhere?/cc @avsm
The text was updated successfully, but these errors were encountered: