981 Commits

Author SHA1 Message Date
Thomas Leonard
ce83e85327 Use Fmt.Dump.signal to format signals
Also, make the message clearer and avoid "signaled" vs "signalled"
confusion.
2023-06-02 15:11:47 +01:00
Thomas Leonard
85adab31bc
Merge pull request #541 from talex5/release
Update documentation for Eio 0.10
2023-06-02 13:50:23 +01:00
Thomas Leonard
081e7549ba Update documentation for Eio 0.10 2023-06-02 12:08:43 +01:00
Thomas Leonard
687ebf99a6
Merge pull request #540 from talex5/release
Prepare release
v0.10
2023-06-02 11:55:58 +01:00
Thomas Leonard
1437b238a6 Prepare release 2023-06-02 11:23:52 +01:00
Thomas Leonard
73ce323948
Merge pull request #509 from patricoferris/fs-windows
Fs implementation for windows
2023-06-02 11:20:05 +01:00
Patrick Ferris
9cf5f35063 eio_windows: initial filesystem implementation 2023-06-02 09:41:00 +01:00
Thomas Leonard
bd77643795
Merge pull request #532 from patricoferris/windows-no-pins
Remove pins for windows
2023-06-02 09:40:46 +01:00
Patrick Ferris
75ce40e26b Remove pins for windows 2023-06-02 09:25:57 +01:00
Thomas Leonard
0325b6742c
Merge pull request #539 from talex5/fix-flush
Buf_write: fix flush returning too early
2023-06-02 09:25:49 +01:00
Thomas Leonard
d47d5779b3 Buf_write: fix flush returning too early
`flush` previously only waited until the data had been taken out of the
buffer (i.e. received by the underlying flow), but did not wait for it
to be transmitted.

See https://github.com/ocaml-multicore/eio/issues/527.
2023-06-02 09:16:34 +01:00
Thomas Leonard
ac99f3162c
Merge pull request #533 from avsm/ignore-notconn
ignore ENOTCONN errors on socket shutdown
2023-06-02 09:15:05 +01:00
Anil Madhavapeddy
0453510d5a Ignore ENOTCONN errors on socket shutdown
macOS can return ENOTCONN occasionally even if the other side did
a graceful shutdown.  This changes all the backends to ignore
ENOTCONN; even though it's unlikely to show up on Linux, there's
still not much point throwing the exception from a shutdown on any
of the platforms.

Fixes #521
2023-06-01 09:55:52 +01:00
Thomas Leonard
c0b2cd0c4c
Merge pull request #537 from talex5/fix-socket-close
Remove close from socket type
2023-06-01 08:55:43 +01:00
Thomas Leonard
ccf147474e Remove close from socket type
Sockets created by `accept_fork` can't be closed manually currently, so
revert the part of #516 that said they could.

We might want to revisit this later, but for now put things back how
they were.

Reported by Anil Madhavapeddy.
2023-06-01 06:51:04 +01:00
Thomas Leonard
739cb87f97
Merge pull request #538 from talex5/changelog
Update changelog
2023-05-31 15:45:20 +01:00
Thomas Leonard
349a41c716 Update changelog 2023-05-31 14:35:14 +01:00
Thomas Leonard
b879f87b84
Merge pull request #500 from ocaml-multicore/current-bench
Run benchmarks with current-bench
2023-05-31 13:21:24 +01:00
Sudha Parimala
8fa37d51f5 More benchmarks to current-bench
Co-authored-by: Thomas Leonard <talex5@gmail.com>
2023-05-31 10:54:51 +01:00
Anil Madhavapeddy
bf25e24f9d
Merge pull request #530 from patricoferris/windows-vendor-stubs
Windows vendor stubs
2023-05-28 17:27:19 +01:00
Patrick Ferris
81325ebae7 Tidy GHA for windows 2023-05-27 23:40:26 +01:00
Patrick Ferris
9793ae03f7 Vendor cstruct stubs and remove pins 2023-05-27 23:34:06 +01:00
Patrick Ferris
bce6a871b8 Pin ocamlbuild 2023-05-27 23:33:51 +01:00
Patrick Ferris
92c16d9405 Add dscheck to windows test CI deps 2023-05-27 15:45:56 +01:00
Patrick Ferris
bc8bd22f39 Allow windows users to run dune build 2023-05-27 15:01:49 +01:00
Thomas Leonard
0b18c3c060
Merge pull request #524 from talex5/linux-fork
eio_linux: fallback to fork if clone3 is unavailable
2023-05-26 16:46:54 +01:00
Thomas Leonard
3d96450533 eio_linux: fallback to fork if clone3 is unavailable
`clone3` is blocked by Docker's default security policy.

Also, use `(uintptr_t)` when storing a pointer in a `uint64_t` field,
otherwise it doesn't work on 32-bit systems.
2023-05-25 12:04:08 +01:00
Thomas Leonard
1cd01b5218
Merge pull request #526 from talex5/fix-5.1-tests
Fix MDX tests on OCaml 5.1
2023-05-25 11:51:19 +01:00
Thomas Leonard
188dc9ae6d Fix MDX tests on OCaml 5.1
Using `Fmt.unit` causes blank lines to appear in the output!
See: https://github.com/realworldocaml/mdx/issues/429
2023-05-25 11:16:31 +01:00
Thomas Leonard
addef140c3
Merge pull request #523 from talex5/windows-stdenv
eio_windows: use Eio_unix.Stdenv.base type
2023-05-24 12:30:42 +01:00
Thomas Leonard
f959c72504 eio_windows: use Eio_unix.Stdenv.base type
Otherwise, it can't be used with `Eio_main.run`.

Also, get CI to test an example using `Eio_main`.
2023-05-24 11:49:44 +01:00
Thomas Leonard
a407535606
Merge pull request #516 from talex5/unix-net
Add Eio_unix.Net module
2023-05-23 10:44:27 +01:00
Thomas Leonard
41c3a2baa4 Add Eio_unix.Net and fix stream/datagram confusion
- Add `Eio_unix.Net` module and move network-related items from
  `Eio_unix` to there.
- Replace `Eio_unix.socketpair` with
  `Eio_unix.Net.socketpair_{stream,datagram}`. Previously, it took a
  type argument (stream or datagram), but always returned a `stream_socket`.
- Add `Eio_unix.Net.import_socket_datagram`.
- Move sockaddr conversions to `eio.unix` so they can be shared.
- Implement `getnameinfo` in `eio.unix` to share it by default.
- `Eio_linux.Low_level.send_msg` no longer throws away the number of
  bytes sent.
- Add `close` to all socket types.
- The destination in `send` is now optional.
- `send` now takes a iovec, not just a single buffer.
  The stream API allows this and we tested it for datagrams using
  that API due to the previous type confusion.
- Allow `Unix` socket paths as datagram addresses too.
- Add `send_msg` and `recv_msg` stubs to Eio_posix.
  This avoids converting to bytes, and will be useful to add FD passing
  later.
2023-05-22 20:14:25 +01:00
Thomas Leonard
21c6a54200
Merge pull request #520 from talex5/cancel-not-error
Don't call `accept_fork`'s error handler on cancellation
2023-05-18 14:25:39 +01:00
Thomas Leonard
7c984b7f0a Don't call accept_fork's error handler on cancellation
This typically happens when the server is shutting down and wants to
stop all connection handlers. There is no need to have each connection
fiber log this; they just need to stop.
2023-05-18 10:11:02 +01:00
Thomas Leonard
c1e3acabe1
Merge pull request #519 from talex5/stress-proc
Add stress test for spawning processes
2023-05-18 10:09:21 +01:00
Thomas Leonard
d3068fedc9 Add stress test for spawning processes 2023-05-17 11:42:52 +01:00
Thomas Leonard
7e9c4c038b
Merge pull request #518 from talex5/fix-pp-status
Eio.Process.pp_status should be polymorphic
2023-05-16 15:07:08 +01:00
Thomas Leonard
55b71cb28a Eio.Process.pp_status should be polymorphic
Otherwise, you can't print an exit status.
2023-05-16 13:20:39 +01:00
Sudha Parimala
42ea36b8ea
Merge pull request #515 from talex5/link-meeting
Link to developer meetings information
2023-05-12 16:50:34 +05:30
Thomas Leonard
1cf3f2c733 Link to developer meetings document 2023-05-12 11:28:31 +01:00
Thomas Leonard
950b1a881e
Merge pull request #511 from talex5/fix-build
Don't run Windows discover script on other platforms
2023-05-08 19:04:01 +01:00
Thomas Leonard
702299d956 Don't run Windows discover script on other platforms
Otherwise, `dune build` will try to run it.
2023-05-08 17:58:03 +01:00
Thomas Leonard
439e53862a
Merge pull request #497 from patricoferris/posix-windows
Posix-based windows implementation
2023-05-08 17:52:53 +01:00
Patrick Ferris
cab124d5e0 Don't allocate OCaml exceptions in Windows fork actions 2023-05-08 16:09:37 +01:00
Thomas Leonard
b5b5de777f
Merge pull request #508 from talex5/cleanup
Deprecation cleanups
2023-05-05 14:31:40 +01:00
Thomas Leonard
bc16038285 Fix Process link in README
Link to the mli, not the ml file.
2023-05-05 14:05:49 +01:00
Thomas Leonard
357a8f7169 Deprecate Fiber.fork_sub
Originally, you needed the parent switch to create the child one, but
that happens automatically now, so we don't need a special function for
this.
2023-05-05 14:05:49 +01:00
Patrick Ferris
393ec686e3
Add kcas 2023-05-05 13:04:11 +01:00
Patrick Ferris
9a9c02ba08 Support DLA on Windows 2023-05-05 12:44:42 +01:00