github ponylang/ponyc 0.38.2

latest releases: 0.58.4, 0.58.3, 0.58.2...
3 years ago

Fix race conditions that can lead to a segfault

The 0.38.0 release introduced improvement to handling of short-lived actors. However, in the process it also introduced some race condition situations that could lead to segfaults. 0.38.1 introduced a fix that we hoped would address the problems, however, after that release we realized that it didn't fully address the situation. With this change, we've reworked the implementation of the short-lived actor improvements to avoid the trigger for the known race conditions entirely.

Fix compiler crash when an if block ends with an assignment that has no result value

This release fixes a compiler crash that used to occur when certain kinds of assignment expressions that have no logical result value were used as the last expression in an if block, and possibly other control flow constructs as well. Now the compiler makes sure that the code generation for those cases always bears a value, even though the type system guarantees that the value will never be used in such a case. This prevents generating invalid LLVM IR blocks that have no proper terminator instruction.

Fix link errors on macOS Big Sur

With the change from Catalina to Big Sur, Apple moved the location of the System library, which broke the linking phase of the compiler. This change fixes the problem by specifying the absolute path of the System library.

Fix unhandled null pointer that can lead to a segfault

Previously, the os_socket_listen and os_socket_connect internal functions would assume that calls to os_addrinfo_intern would never fail. The os_addrinfo_intern function returns a null pointer on failure, which could result in the callers attempting to free an invalid pointer, and causing a segfault. This change adds error handling on the socket functions, which fixes the problem.

[0.38.2] - 2020-12-26

Fixed

  • Fix race conditions that can lead to a segfault (PR #3667)
  • Fix compiler crash when an if block ends with an assignment that has no result value. (PR #3670)
  • Fix link errors on macOS Big Sur (PR #3686)
  • Fix unhandled null pointer returning from os_addrinfo_intern (PR #3687)

Don't miss a new ponyc release

NewReleases is sending notifications on new releases.