You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CHANGES:
New features / API changes:
- Replace objects with variants (@talex5@patricoferrisocaml-multicore/eio#553ocaml-multicore/eio#605ocaml-multicore/eio#608, reviewed by @avsm).
Some potential users found object types confusing, so we now use an alternative scheme for OS resources.
For users of the resources, the only thing that changes is the types:
- Instead of taking an argument of type `#foo`, you should now take `_ foo`.
- Instead of returning a value of type `foo`, you should now return `foo_ty Eio.Resource.t`.
To provide your own implementation of an interface, you now provide a module rather than an object.
For example, to provide your own source flow, use `Eio.Flow.Pi.source (module My_source)`.
If you want to define your own interfaces, see the `Eio.Resource` module documentation.
- Add `Eio.Pool` (@talex5@darrenldlocaml-multicore/eio#602, reviewed by @patricoferris).
A lock-free pool of resources. This is similar to `Lwt_pool`.
- Add `Eio.Lazy` (@talex5ocaml-multicore/eio#609, reviewed by @SGrondin).
If one fiber tries to force a lazy value while another is already doing it,
this will wait for the first one to finish rather than raising an exception (as `Stdlib.Lazy` does).
- Add `Eio.Path.native` (@talex5ocaml-multicore/eio#603, reviewed by @patricoferris).
This is useful when interacting with non-Eio libraries, for spawning sub-processes, and for displaying paths to users.
- Add `Flow.single_write` (@talex5ocaml-multicore/eio#598).
- Add `Eio.Flow.Pi.simple_copy` (@talex5ocaml-multicore/eio#611).
Provides an easy way to implement the `copy` operation when making your own sink.
- Eio_unix: add FD passing (@talex5ocaml-multicore/eio#522).
Allows opening a file and passing the handle over a Unix-domain socket.
- Add `Process.run ?is_success` to control definition of success (@SGrondinocaml-multicore/eio#586, reviewed by @talex5).
- Add `Eio_mock.Domain_manager` (@talex5ocaml-multicore/eio#610).
This mock domain manager runs everything in a single domain, allowing tests to remain deterministic.
- Add `Eio.Debug.with_trace_prefix` (@talex5ocaml-multicore/eio#610).
Allows prefixing all `traceln` output. The mock domain manager uses this to indicate which fake domain is running.
Bug fixes:
- Fork actions must not allocate (@talex5ocaml-multicore/eio#593).
When using multiple domains, child processes could get stuck if they forked while another domain held the malloc lock.
- eio_posix: ignore some errors writing to the wake-up pipe (@talex5ocaml-multicore/eio#600).
If the pipe is full or closed, the wake-up should simply be ignored.
Build/test fixes:
- Fix some MDX problems on Windows (@polytypicocaml-multicore/eio#597).
- The README depends on kcas (@talex5ocaml-multicore/eio#606).
- Clarify configuration for lib_eio_linux and enable tests on other arches (@dra27ocaml-multicore/eio#592).
- eio_linux tests: skip fixed buffer test if not available (@talex5ocaml-multicore/eio#604).
- eio_windows: update available line to win32 (@talex5ocaml-multicore/eio#588ocaml-multicore/eio#591).
0 commit comments