0.23.0
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 asString val
:let line: String val = reader.line()? process_line(line)
-
consume
the variable upon usage, as it isiso
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
- RFC 56: Make buffered.reader.line return String iso^ (PR #2756)