Pony 0.23.0 is primarily a bug fix release but does also include some additional changes. Upgrading is recommended. There is a single breaking change caused by the implementation of RFC 56.

RFC 56: Make buffered.reader.line return String iso^

buffered.Reader.line() has been changed to return a String iso^ instead of a String val . This is more powerful as it allows you to mutate the lines returned in place, which was impossible with String val . Nonetheless this is a breaking change. It will break code that relies on type inference, avoiding stating the type for the variable the line is assigned to:

let line = reader. line ()? process_line (line)

These code bases need to adapt in one of two ways:

mark the line variable explicitly as String val : let line: String val = reader. line ()? process_line (line)

consume the variable upon usage, as it is iso now: let line = reader. line ()? process_line ( consume line)

[0.23.0] - 2018-06-10

Fixed

Fix File.writev and File.flush in cases where the IO vector exceeds IOV_MAX. (PR #2771)

Fix incorrect tuple handling (PR #2763)

Fix Promise bug where join() element's reject doesn't reject the entire join (PR #2770)

Added

Add Integer.bit_reverse, exposing the llvm.bitreverse intrinsic. (PR #2710)

Changed