Pony version 0.30.0 is now available. This is a high-priority bug fix release that contains a fix for a bug that could cause Pony programs to segfault. We recommend upgrading as soon as possible. Also note, this release does include a breaking API change (albeit small). Please note that, at this time, the update to Homebrew has yet to be merged, but should be within a day. All other release targets are completed.

Fix segfault due to Cycle Detector viewref inconsistency

Prior to this fix, the Cycle Detector could end up in a situation

where it would have an inconsistent viewref which would result

in a segfault with the cycle detector trying to send a message

to an actor that was already destroyed.

Make Map insertion functions total

Before this change, code that inserts into maps might look like:

try map. insert ( " key " , 1 )? end

try map. insert_if_absent ( " key " , 5 )? end

try map. upsert ( " key " , 1 , {(current, provided) => current + provided})? end

Af

ter this change, the question marks and the surrounding try expressions can be removed. Respectively, the above blocks become:

map. insert ( " key " , 1 )

map. insert_if_absent ( " key " , 5 )

map. upsert ( " key " , 1 , {(current, provided) => current + provided})

Remove glob from the standard library

The glob package is being removed from the standard library and

moved to a new home at https://github.com/ponylang/glob/ where it

will live on as an independent library.

It is being removed because it has a transitive dependency on an

external library libpcre and that dependency makes creating release

artifacts more difficult.

At the moment we have to deal with packaging up pcre for each Linux

distro etc and they all have their own methods to do so. This

lead us to do a lot of work on supporting distro specific packaging.

That has turned out to be too much work. We are moving to having

a single glibc Linux friendly .tar.gz that can be done to install

Pony.

To faciliate this move, we decided that we want to remove items from

the standard library that depend on external libraries like pcre.

Full conversation about the decision is available in the audio of

the Pony development sync July 9, 2019 audio that you can download

from: https://sync-recordings.ponylang.io/r/2019_07_09.m4a

Remove regex package from standard library

The regex package is being removed from the standard library and

moved to a new home at https://github.com/ponylang/regex/ where it

will live on as an independent library.

It is being removed because it has a dependency on an external

library libpcre and that dependency makes creating release artifacts

more difficult.

At the moment we have to deal with packaging up pcre for each Linux

distro etc and they all have their own methods to do so. This

lead us to do a lot of work on supporting distro specific packaging.

That has turned out to be too much work. We are moving to having

a single glibc Linux friendly .tar.gz that can be done to install

Pony.

To faciliate this move, we decided that we want to remove items from

the standard library that depend on external libraries like pcre.

Full conversation about the decision is available in the audio of

the Pony development sync July 9, 2019 audio that you can download

from: https://sync-recordings.ponylang.io/r/2019_07_09.m4a

Remove OpenSSL as a requirement for building Pony

The net/ssl and crypto packages are being removed from the standard library

and moved to a new home at https://github.com/ponylang/net-ssl/ and

https://github.com/ponylang/crypto respectively. Each will live on as an

independent library.

They are being removed because they have a transitive dependency on an

external library openssl and that dependency makes creating release

artifacts more difficult.

At the moment we have to deal with packaging up openssl for each Linux

distro etc and they all have their own methods to do so. This

lead us to do a lot of work on supporting distro specific packaging.

That has turned out to be too much work. We are moving to having

a single glibc Linux friendly .tar.gz that can be done to install

Pony.

To faciliate this move, we decided that we want to remove items from

the standard library that depend on external libraries like openssl.

Full conversation about the decision is available in the audio of

the Pony development sync July 9, 2019 audio that you can download

from: https://sync-recordings.ponylang.io/r/2019_07_09.m4a

Stop creating Buster Debian packages

When Buster graduated to a supported Debian version, they dropped LLVM 3.9.

We were relying on that LLVM 3.9 support. All our Debian packaging code assumes that

the LLVM version is used across distros. With Buster dropping LLVM 3.9, that is no longer the case.

We could spend time fixing that so that our releases work again, however, we are moving away from doing distro specific packaging.

Given that we don't want to continue doing distro specific releases, we are instead removing building Buster packages now. Expect to see a new release packaging system roll out over the next couple of months.

[0.30.0] - 2019-07-27

Fixed

Fix which dtrace path check (PR #3229)

path check (PR #3229) Fix segfault due to Cycle Detector viewref inconsistency (PR #3254)

Changed