Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
e4a8ec0
commit b1f519b
Showing
1 changed file
with
72 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
+++ | ||
draft = false | ||
author = "seantallen" | ||
categories = [ | ||
"Release", | ||
] | ||
date = "2020-05-11T16:44:53-04:00" | ||
title = "0.35.0 released" | ||
+++ | ||
Pony version 0.35.0 is now available. If you are running Pony on an ARM based CPU, we recommend updating as soon as possible. | ||
<!--more--> | ||
|
||
Check it out! | ||
|
||
We've fixed a bug in the Pony runtime that would impact on ARM based CPUs and have undetermined, but definitely not good results. If you use Pony on ARM, update now. | ||
|
||
Otherwise, there's not a ton that's new in Pony 0.35.0. We've fixed a bug in the CommandParser package and introduced a breaking change to the ProcessMonitor package. Details are below... | ||
|
||
## Correctly report process exit status | ||
|
||
Processes spawned with `ProcessMonitor` that have been terminated by signals have been reported as exited with exit-code 0. Now `ProcessNotify.dispose` receives a `ProcessExitStatus`, which is either an instance of `Exited` containing the exit-code, if the process terminated _normally_, or an instance of `Signaled` containing the signal number which terminated the process e.g. `9` if it has been terminated by `KILL`. | ||
|
||
Before (ponyc <= 0.34.1): | ||
```pony | ||
class MyNewProcessNotify | ||
... | ||
fun ref dispose(process_monitor: ProcessMonitor ref, child_exit_code: I32) => | ||
if child_exit_code != 0 then | ||
out_stream.print("non-successful run, terminated normally with " + child_exit_code.string()) | ||
else | ||
out_stream.print( | ||
""" | ||
factually either all good, terminated normally with 0, | ||
or killed by signal, we simply dont know. | ||
""") | ||
end | ||
``` | ||
|
||
After (0.35.0 and onwards): | ||
|
||
```pony | ||
class MyNewProcessNotify | ||
... | ||
fun ref dispose(process_monitor: ProcessMonitor ref, child_exit_status: ProcessExitStatus) => | ||
match child_exit_status | ||
| let e: Exited if e.exit_code() != 0 => out_stream.print("terminated normally with " + e.exit_code().string()) | ||
| let s: Signaled => out_stream.print("killed by signal " + s.signal().string()) | ||
else | ||
out_stream.print("exited with 0, all good") | ||
end | ||
``` | ||
|
||
## Fix CommandParser incorrectly handling multiple end-of-option delimiters | ||
|
||
Fixed an issue where CommandParser was incorrectly handling cases when arguments contain multiple end-of-option delimiters. For example, `corral exec -- lldb ponyc -- $(ponyc) -V=0 -o ./build/`. | ||
|
||
## [0.35.0] - 2020-05-11 | ||
|
||
### Fixed | ||
|
||
- Fix CommandParser incorrectly handling multiple end-of-option delimiters ([PR #3541](https://github.com/ponylang/ponyc/pull/3541)) | ||
- Correctly report process termination status in ProcessNotify.dispose() ([PR #3419](https://github.com/ponylang/ponyc/pull/3419)) | ||
- Ensure non-blocking process wait and correctly report process exit status ([PR #3419](https://github.com/ponylang/ponyc/pull/3419)) | ||
- Fix atomics usage related to actor muting for ARM ([PR #3552](https://github.com/ponylang/ponyc/pull/3552)) | ||
|
||
### Added | ||
|
||
- Add Ubuntu18.04 builds ([PR #3545](https://github.com/ponylang/ponyc/pull/3545)) | ||
|
||
### Changed | ||
|
||
- Ensure that waiting on a child process when using ProcessMonitor is non-blocking ([PR #3419](https://github.com/ponylang/ponyc/pull/3419)) |