-
Notifications
You must be signed in to change notification settings - Fork 176
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
Add a initial engine based on luv #811
Conversation
1b761a6
to
d451ba7
Compare
d451ba7
to
ffabbd0
Compare
I'm outside of my comfort zone with the |
I should probably restore that code to Luv, as it has use outside Lwt for those that want to use Luv together with some |
It looks like the code is using some internal code that is not exposed outside of |
It might be more work-efficient, however, to simply not support Windows during this PR. We will merge the PR in a non-intrusive way (as an optional package in this repo), so the lack of Windows support won't affect anyone. Then, I'll restore the It looks like the Luv test cases will also benefit from the conversions: (* Until https://github.com/libuv/libuv/pull/1498. This implementation will not
work on Windows. One can be provided, but hopefully the PR lands first. *)
let unix_fd_to_file : Unix.file_descr -> Luv.File.t =
Obj.magic The Luv tester also shows that there is precedent for getting away with |
So focusing on Unix only, at the moment, for me locally, the Unix tester passes, but the React and PPX testers hang. In Travis, I see errors like this:
and similar errors for React. |
So I think I addressed your comments now. The next step is to break it out of lwt-unix so that not everyone needs to depend on Luv at this point (even if I think they should 😉). How do you want me to do that? |
👍
Create a new directory, say, Then create Line 100 in 1157930
...insert something like Copying |
Also we probably won't ever release |
I think I did the breakout correctly, I don't have my opam drivers license yet so might have missed something there. |
I think the most important missing thing is triggering the new |
b752048
to
5677415
Compare
Just letting you know I'm still working on this. I'm currently trying to debug the Linux failure/running forever. |
There are still failing tests but I think the major stuff works now and I'm not sure it's worth it to fix the rest until we swap the rest out |
This is in my queue for reviewing for merge. Should have time soon. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Want to link again to this failure :) https://travis-ci.com/github/ocsigen/lwt/jobs/439876055#L414
Merging this, despite Travis CI not running at all. It (mostly) works locally on my system.
We will go from here as described in #813 "A Roadmap for Porting lwt.unix to libuv." Thank @ulrikstrid and reviewers! |
This is meant to be a conversation starter above all else. The code is pretty naive at this point.
It creates a new engine that is based on
luv
(lovingly called the luv engine).This could be a nice migration path to move the whole unix module to be using
libuv
which is very well maintained and tested since it's been used by node for years.Locally I have the same test failures I have with the
libev
engine.