Skip to content

v0.9.0

Compare
Choose a tag to compare
@talex5 talex5 released this 28 Dec 12:06
· 146 commits to master since this release
48ab696

CHANGES:

  • Add connection progress indicator (@talex5 #220).
    Clients can now use Capnp_rpc_unix.with_cap_exn to show a progress indicator while waiting to connect.
    It will use the log if enabled.
    If not, but stderr is a tty, it shows a message while connecting and then erases it (if connecting takes longer than 0.5s).
    If stderr is not a tty, it just prints a message there.

  • Use Mirage_crypto_rng_lwt.initialize instead of Mirage_crypto_rng_unix.initialize (@hannesm #217).
    The former periodically feeds entropy to the RNG, while the latter seeds the RNG only once.

  • Set TCP_KEEPIDLE=60 if possible (@talex5 #214).
    Cap'n Proto connections tend to be long lived and we therefore turn on the SO_KEEPALIVE option.
    However, the default keepalive timeout of 2 hours is much too long for some networks.
    In particular, Docker's libnetwork silently drops idle connections after about 10 minutes.

Windows support:

  • Prevent crash if ExtUnix wasn't built with sockopt (@MisterDA #218).
    If ExtUnix isn't built with sockopt then the symbol have_sockopt_int isn't available and an exception is raised.
    This may be the case on some environments (e.g., ExtUnix built with mingw-w64).
    It is a workaround until support for TCP_KEEPIDLE is added for these environments (e.g., using Winsock instead).

  • There is no SIGPIPE on Windows (@dra27 #212).

  • Switch from "capnpc" to "capnp compile" (@talex5 #213).
    capnpc seems to be the old name, and isn't present on Windows.

Build changes: