Pony 0.28.1 is here! It includes a couple high-priority bug fixes. Updating as soon as possible is recommended. Please note, the Homebrew PR hasn't yet been merged so you can't update using Homebrew until that is done. All other supported platforms are good to go!

Fix cycle detector issue with checking for blocked actors

Fix issue #2975 where the cycle detector wasn't correctly reaping cycles of dead actors. Change cycle detector to use the maximum of 1000 or 10% of all actors currently alive for how many actors to query when the cycle detector periodically checks to see which actors are currently blocked. This is based on a suggestion by @plprofetes to ensure that the cycle detector is effective even for applications with a large number (millions) of temporary actors.

Add unchop to array and unchop, repeat_str and mul to string

Adds unchop to both array and string to allow the the original string or array to be recovered by combining the two pieces from a previous chop .

to both array and string to allow the the original string or array to be recovered by combining the two pieces from a previous . Adds repeat_str and mul to string to allow easy repeating of strings (such as 'abc' * 6 to get abcabcabcabcabcabc or 'abc'.repeat_str(6, ', ') to get abc, abc, abc, abc, abc, abc )

Several Improvements to the random package

Add XorOshiro128** and SplitMix64 PRNGs http://xoshiro.di.unimi.it/

Update XorOshiro128+ paramaters as noted in http://xoshiro.di.unimi.it/xoroshiro128plus.c

Add from_64bits constructor to 128 bit state PRNGs that uses SplitMix64 as suggested here: http://xoshiro.di.unimi.it/

constructor to 128 bit state PRNGs that uses SplitMix64 as suggested here: http://xoshiro.di.unimi.it/ Use fixed-point inversion for generating bounded random numbers using Random.int . But fall back to slower floating-point multiplication technique if no native 128 bit ops are supported.

. But fall back to slower floating-point multiplication technique if no native 128 bit ops are supported. Add Random.int_unbiased function for generating an unbiased bounded random number. For details see: http://www.pcg-random.org/posts/bounded-rands.html This one is slightly slower as Random.int .

function for generating an unbiased bounded random number. For details see: http://www.pcg-random.org/posts/bounded-rands.html This one is slightly slower as . Added tests and benchmarks

Don't turn off Epoll OneShot when resubscribing to OneShot events

Fixes the performance regression introduced in #2897

[0.28.1] - 2019-06-01

Fixed

Don't turn off Epoll OneShot when resubscribing to events (PR #3136)

Add unchop to array and unchop, repeat_str and mul to string (PR #3155)

Fix cycle detector issue with checking for blocked actors (PR #3154)

Wake up suspended scheduler threads if there is work for another one (PR #3153)

Added

Add Docker image based on Alpine (PR #3138)

Added XorOshiro128StarStar and SplitMix64 PRNGs. (PR #3135)

and PRNGs. (PR #3135) Added function Random.int_unbiased . (PR #3135)

. (PR #3135) Added from_u64 constructor to 128 bit state PRNGs. (PR #3135)

constructor to 128 bit state PRNGs. (PR #3135) Add unchop to array and unchop, repeat_str and mul to string (PR #3155)

Changed