I've mostly just been reviewing and finishing PRs recently.
Eio
I took Patrick's PR for improved directory reading and finished it off.
As well as providing incremental reads, this PR also gives you the entry's type with the name,
which is much faster than calling stat on each one.
I improved the performance of the eio_posix version and tidied things up a bit:
- Incremental directory reading #821.
After reviewing Anil's changes to Uring.Region.init
(#145),
we realised that it would be cleaner to move fixed-buffer regions to Eio:
- Add
Eio_linux.Low_level.Fixed#848.
Reviewing Anil's uring PR adding Linux specific errnos (#152), I realised that the code using them is probably unnecessary anyway and got rid of it:
- eio_linux: remove unused code #851.
I've found Eio's Path.open_dir function is confusingly named.
It's not about opening directories (that's just an implementation detail),
it's about restricting a path to a subtree.
I proposed a PR to rename it (discussion is on-going):
- Rename
Path.open_dirtoopen_subtree#853.
I'm still intending to revive Anil's socket options PR (#575), but as a first step I sorted out an encoding issue that was preventing the tests diff from being shown:
- Improve formatting of IP addresses in tests #847.
Since Eio's very first Git commit, the scheduler has been special-casing fixed-buffer IO operations. Moving it out simplified things nicely:
- eio_linux: move read/write retries out of scheduler #849.
The lintcstubs-arity package auto-generates C function declarations from OCaml code,
which avoids some common mistakes (like returning void instead of a value of Val_unit,
which has caused unpredictable segfaults in the past).
The package was previously only used if installed for some reason, so people often forget to run it:
- Add lintcstubs-arity as a test dependency #846.
It would be good to get the whole of lintcstubs working one day (currently it only works with old versions of OCaml).
Other PR reviews
-
Statx attribute supported check was inverted #142.
Which led us to revise the API forAttr.check. -
Add
shutdown,socket,renameatandsymlinkat#147. -
Fix debug messages in
ocaml_uring_unregister_buffers#146. -
caml_uring_wait_cqeshould have the same null cqe check that the timeout variant has #148. -
Add fallocate and ftruncate bindings #149.
-
Allow setting socket flags on socket creation #151.