Pony 0.21.3 is a recommended upgrade. There are no breaking changes, but there are support changes you should be aware of.
Disable dynamic scheduler scaling
Dynamic scheduler scaling was added in Pony 0.21.1. Since that time, we’ve found that it has introduced a bug that will occasionally keep Pony programs from shutting down correctly. When the bug is triggered, the program will hang on exit. 0.21.3 turns off dynamic scheduling scaling by default until the source of the problem has been located.
Huge thanks to Dipin Hora for all his hard work on this feature. It’s going to be a considerable runtime improvement once all the kinks are worked out. Huge thanks to Wink for all his work helping Dipin test the “on shutdown it hangs” issue. If you see them in Zulip, let them know how much you appreciate their hard work.
Fix various memory leaks
I’m highlighting this one because, just looking at the PR title, it seems terrifying. It’s not, well, it’s not. There were a few minor memory leaks that wouldn’t impact a running Pony program that Benoit tracked down using Valgrind and fixed.
Disable -avx512f on LLVM < 5.0.0 to avoid LLVM bug 30542
Versions of LLVM before 5.0, contain a bug in loop vectorization that can lead to the Pony compiler either hanging or crashing on machines that support AVX 512f. This commit silently turns off that optimization given its problematic results.
Deprecate LLVM 3.7.1 and 3.8.1 support
We’ve officially stopped supporting LLVM 3.7.x and 3.8.x. What does that mean for you? Well, eventually they will stop working. For now, they work. However, are no longer running CI tests against 3.7 and 3.8 targets. You can continue to compile using them but will receive a warning they are no longer supported.
- Fix pthread condition variable usage for dynamic scheduler scaling (PR #2472)
- Fix various memory leaks (PR #2479)
- Fix double free in expr_typeref (PR #2467)
- Fix some spurious process manager test failures (PR #2452)
- Fix ANTLR definition for char escape sequences (PR #2440)
- Add the pony_try function to receive Pony errors in C code (PR #2457)