Skip to content

Commit ad7149d

Browse files
authored
Merge pull request #612 from talex5/release
Prepare release
2 parents 610b4c0 + 9d5aadc commit ad7149d

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

CHANGES.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,66 @@
1+
## v0.12
2+
3+
New features / API changes:
4+
5+
- Replace objects with variants (@talex5 @patricoferris #553 #605 #608, reviewed by @avsm).
6+
Some potential users found object types confusing, so we now use an alternative scheme for OS resources.
7+
For users of the resources, the only thing that changes is the types:
8+
9+
- Instead of taking an argument of type `#foo`, you should now take `_ foo`.
10+
- Instead of returning a value of type `foo`, you should now return `foo_ty Eio.Resource.t`.
11+
12+
To provide your own implementation of an interface, you now provide a module rather than an object.
13+
For example, to provide your own source flow, use `Eio.Flow.Pi.source (module My_source)`.
14+
15+
If you want to define your own interfaces, see the `Eio.Resource` module documentation.
16+
17+
- Add `Eio.Pool` (@talex5 @darrenldl #602, reviewed by @patricoferris).
18+
A lock-free pool of resources. This is similar to `Lwt_pool`.
19+
20+
- Add `Eio.Lazy` (@talex5 #609, reviewed by @SGrondin).
21+
If one fiber tries to force a lazy value while another is already doing it,
22+
this will wait for the first one to finish rather than raising an exception (as `Stdlib.Lazy` does).
23+
24+
- Add `Eio.Path.native` (@talex5 #603, reviewed by @patricoferris).
25+
This is useful when interacting with non-Eio libraries, for spawning sub-processes, and for displaying paths to users.
26+
27+
- Add `Flow.single_write` (@talex5 #598).
28+
29+
- Add `Eio.Flow.Pi.simple_copy` (@talex5 #611).
30+
Provides an easy way to implement the `copy` operation when making your own sink.
31+
32+
- Eio_unix: add FD passing (@talex5 #522).
33+
Allows opening a file and passing the handle over a Unix-domain socket.
34+
35+
- Add `Process.run ?is_success` to control definition of success (@SGrondin #586, reviewed by @talex5).
36+
37+
- Add `Eio_mock.Domain_manager` (@talex5 #610).
38+
This mock domain manager runs everything in a single domain, allowing tests to remain deterministic.
39+
40+
- Add `Eio.Debug.with_trace_prefix` (@talex5 #610).
41+
Allows prefixing all `traceln` output. The mock domain manager uses this to indicate which fake domain is running.
42+
43+
Bug fixes:
44+
45+
- Fork actions must not allocate (@talex5 #593).
46+
When using multiple domains, child processes could get stuck if they forked while another domain held the malloc lock.
47+
48+
- eio_posix: ignore some errors writing to the wake-up pipe (@talex5 #600).
49+
If the pipe is full or closed, the wake-up should simply be ignored.
50+
51+
Build/test fixes:
52+
53+
- Fix some MDX problems on Windows (@polytypic #597).
54+
55+
- The README depends on kcas (@talex5 #606).
56+
57+
- Clarify configuration for lib_eio_linux and enable tests on other arches (@dra27 #592).
58+
59+
- eio_linux tests: skip fixed buffer test if not available (@talex5 #604).
60+
61+
- eio_windows: update available line to win32 (@talex5 #588 #591).
62+
63+
164
## v0.11
265

366
New features / API changes:

0 commit comments

Comments
 (0)